MP Volume Rendering
An MP volume renderer which uses MPI as the parallel coding environment was built which is capable of rendering very large datasets on an MP machine, and delivers images to the desktop.
The basic idea behind the algorithm is to divide the volume up into groups, each of which has an approximately equal number of slices of volume data. Each group, or "slice cluster," is distributed to a PE. Each PE performs a shear-warp operation on each slice within it's cluster, compositing in back-to-front order while progressing through each slice within the cluster. When all PE's are done processing their respective clusters, intermediate images from all PE's are composited together in back-to-front order using what is essentially a user-defined data reduction operation, achieving cluster compositing in logarithmic time. The final image is then submitted to the user.
The algorithm was developed on an MP solaris machine (an SMP), but tested on a variety of architectures, including an Onyx2 (SMP) and a Cray T3E (distributed memory architecture).
Portions of this code were adopted by the CCSE group at LBNL/NERSC for use in their visualization tool.
This paper was submitted to the Late Breaking Hot Topics session of Visualization '98.