Ok, this should be something quite familiar. As an exercise for task-based parallel processing and SIMD programming I wrote a Mandelbrot and Julia fractal viewer. It comes with sources too!

Image

This is a good application for parallel processing because processing threads can iterate over separate pixels independently. As expected, the speed increase is very near to 2x when run on my dualcore laptop.

Image Image 

You can see a video of the proram in action below: (If you're on Opera+Vista 64-bit, you might need this to watch it)

To try it out yourself, download the executable: 2006-12-29.Win32.SSE2.OpenMP.Mandelbrot.bin.src.zip.

The zip package contains several forms of executables (with and without SSE2 or OpenMP) and also the source code. Unfortunately you can't compile the code directly, since it depends heavily on a framework library I'm using. Also, if you only have Visual Studio Express you need to remove the OpenMP stuff from it as well, as Express doesn't support OpenMP.

Image Image

If you're interested in the performance viewpoint (as I am), you'll find these links useful:

Performance Optimization of 64-bit Windows Applications for AMD Athlon™ 64 and AMD Opteron™ Processors using Microsoft Visual Studio 2005 (AMD).

Mandelbrot on Geforce 6 GPU (nVidia).

Unfortunately mine doesn't run on the GPU, and probably never will, but there's something really cool that I'm doing on the GPU and it's FAST. Now if I can make it look something more interesting than a bunch of numbers on the screen, I'll probably get back to it. 

Image Image 

Last Updated (Saturday, 17 May 2008 08:27)