Figure 4: T3D mandel module in AVS network.
The mandel module we developed has one output port which returns the computed mandelbrot set as an AVS byte image. The module can be connected into an AVS network as shown in Figure 4. The generate colormap and colorizer modules are used to assign a colormap to the image generated by mandel and displayed using the display image module.
Figure 5: Control panel for T3D mandel module.
The control panel for the mandel module is shown in
Figure 5. The slider widgets set the value of c in
the center of the image where c = x + iy . The size of the
image in the complex plane is controlled by the zoom widget. The
zoom factor causes the mandelbrot set to be magnified by , where
M is the zoom factor. For M = 0, each side of the image is
2 units in the complex plane.
Figure 6: Image from mandel module on T3D.
An image of the mandelbrot set produced by the mandel module is shown in Figure 6. This 512x512 pixel image requires that the iteration be performed on each of the 256K pixels in the image for a total operations count of slightly more than 1 billion floating point operations.
Figure 7: Execution output from T3D mandel module using 8 PEs.
Figure 7 shows the execution output from the mandel module using 8PEs. The output shows the input parameters that are passed to each PE, followed by the completion messages from each PE including the number of floating point operations (FLOPS) performed by each PE, the execution time and the resulting MFLOPS per second. For this run, the mandelbrot computation required 3.9 seconds, which gives 265 MFLOPS per second, or 33 MFLOPS per second per PE.
Note that the processor loads in Figure 7 are balanced almost perfectly through the use of MPP Fortran data and work sharing in this implementation. Since there is essentially no interprocessor communication, the run time scales linearly with the number of PEs. Using 32 PEs, the execution time can be reduced to less than one second, which equates to a speed of just over 1 GFLOPS per second. The details of the mandel module implementation are discussed in the following two sections.