next up previous contents
Next: Distributed Memory Algorithms Up: Volume Rendering on Previous: Raycasting Method

Splatting

Splatting is implemented without a general coordinator. In the beginning of the algorithm a work queue is generated and each processor tries to work as soon as there is work available. Because of the nature of the splatting algorithm, such a work queue is actually a partial order assigned to the voxels to ensure that a voxel is only processed after all of its ocludding voxels (the ones that are in front of it) have been processed.

This simple implementation requires global synchronization because of the use of a single queue of work. It also generates several hot spots in global memory, such as the list of partial occludding information. Let n be the number of processors, t be the average time a single processor needs to complete work for a single queue element and T be the time it takes a processor to get work from the queue. If t < nT then we are guaranteed to have idle processors that only contributed to slowing down the algorithm, that is more processors are going to be useless. The speedups for this algorithm is shown in Figure 4.

  
Figure 4: speedup in splatting on the BBN TC2000



Claudio Silva
Thu Apr 20 16:03:37 EDT 1995