There are three types of parallel visualization to consider. Task parallelism uses separate processes to complete separate kinds of tasks. The tasks must coordinate to ensure they execute in the correct order so that, for instance, one doesn't try to calculate isosurfaces for data before the file has been read.

Timesteps
12345
Processes1Read file 1Isosurface 1Cut plane 1
2 Read file 2Streamlines 2Render
3Read file 3Triangulate 3Decimate 3Glyph 3

With pipeline parallelism, each process performs only one kind of task and then sends the resulting data to the next process. It's like a factory production line. In the example below, using parallel processes helps to increase frame rate because the three processes are working on three frames simultaneously.

Timesteps
12345
Processes1Read file 1Read file 2Read file 3
2Isosurface 1 Isosurface 2Isosurface 3
3Render 1Render 2Render 3

For data parallelism, the data set is partitioned among the processes, and all processes execute the same operations on their data partition. This scales well as long as the data and operations can be decomposed. The more that operations need to communicate in order to process the data, the poorer it will scale.

Timesteps
1 2 3
Processes 1 Read partition 1 Isosurface partition 1 Render partition 1
2 Read partition 2Isosurface partition 2Render partition 2
3 Read partition 3Isosurface partition 3Render partition 3
 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement