next up previous contents
Next: Irregular Grid Algorithms Up: SIMD Algorithms Previous: SIMD Algorithms

SIMD Implementation

The algorithm described here was design and implemented by Peter Schröder and James Salem [26] from Thinking Machines Corporation. The algorithm works by transforming the volume such that one of its coordinate axes is aligned with the rays (Figure 9), and then composites the data. Compositing the data after the transformation is simple because all the nodes are connected along the axes. So one in time proportional to the depth of the volume one can accumulate the final pixel value for that ray of the image.

In order to transform the dataset during a rotation, the algorithm uses rotation by shears. The idea is illustrated in Figure 10. By using a set of shears, the algorithm is able to avoid general communication at every step. This idea is implemented by assigning to each processor a voxel gif. Each processor will have all the data for that voxel, the color, opatity and location. During each shear the location of that voxel may change, requiring communication among the processors, this communication is avoided by only updating the locations and keeping pointers to the new neighbors. After the shears have been done, a general communication phase is performed to realign all the data.

As seen in Figure 10, in order to rotate in 2D, one needs a set of three shears, that would mean nine shears in 3D. By cleverly reducing shears on the same axes and organizing the operations so the last two shears can be performed on the image plane, one is left with the following five shears to be performed on the volume:

x,y,z are point locations, are constants that depend on the rotation angle.

As each shear is applied, each processor keeps track of its neighbors and when the all the shear are done global communication takes place. At this moment the rendering of the volume is performed. Several options for rendering were implemented being the fastest to project for each rays the maximum value. On the Connection Machine this operation is extremely efficient since the routers can be programmed to selectively take messages out of the network, and in this case at every step the smallest of every two element in a ray can be taken off, potentially reducing the number of messages in half at every step and being able to finish rendering in a logarithmic number of steps.

  
Figure 9: Rotate the object instead of the image plane

  
Figure 10: Rotation by shears.

The performance measures were done on a 64K CM-2. One can rotate, a dataset at 2 Hz and render with new parameters faster than 11Hz. A similar work done by Vezina et al. [50] on a MasPar MP-1, their algorithm was a bit slower but it could handle perspective projection.



next up previous contents
Next: Irregular Grid Algorithms Up: SIMD Algorithms Previous: SIMD Algorithms



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