jrMandel is a command-line, parallel Mandelbrot set fractal renderer.
I wrote jrMandel in order to evaluate the performance of different distributed process scheduling algorithms during my Master's graduate work. The tools currently used to generate synthetic processing load were too simple and limited, and I wanted something that better reassembled a real parallel task, and with good randomness about the scheduling needs.
jrMandel is written in C++, and it's design is completely object-oriented. The tool is modularized into fractals (currently only mandelbrot is available), generators (standalone, threaded and pvm are available) and output-writers (pgm and null are currently available). It was designed to be easy to add more fractals, generators or output writers in future versions.
Currently, the only options for output are Portable Graymap (PGM) or null output (fractal is only rendered in memory, and then discarded). The output in pgm mode is simple enough to our needs, and since it is an uncompressed and non-interlaced format, it has the advantage of directly assembling the file from the various pieces that arrive unordered from the distributed system. The result is a grayscale image, but you can use ImageMagick's convert tool to colorize and convert the result.
~$ jrMandel -w 0.348,-0.644:0.359,-0.652 -s 1024,768
-G pvm --show-divs --divs=2,2 jrMandel-example2.pgm
~$ convert jrMandel-example2.pgm -fx 'sin(2.5*pi*u)'
-resize 640x480 jrMandel-example2.png
~$ jrMandel -w -0.15,-0.60:0.15,-0.80 -s 640,480 jrMandel-example1.pgm
~$ convert jrMandel-example1.pgm
-channel r -fx 'sin(3*pi*u)'
-channel g -fx 'sin(5*pi*u)'
-channel b -fx 'sin(8*pi*u)' jrMandel-example1.png
· Boost 1.33.1 or higher
· PVM 3.4.0 or higher