gmandel

Gmandel

What is gmandel?

Gmandel is a program for exploring intricate and beautiful details of the Mandelbrot set, the classic fractal image. It begins with the common graphic of the mandelbrot set, from which you can select portions with click-and-drag for enhancement. You can set the number of colors per iteration, and the iteration limit. And since it is a threaded version, you can set the number of threads to use. This makes it run much faster, especially on SMP machines. And if you have more than one computer and a network, you can use gmandel_pvm or gmandel_mpi to use the combined processing power in a computer cluster.

Gmandel takes advantage of both POSIX threads and message passing techniques, so that clusters of SMP boxes are used to maximum capacity.

Do you need a cluster to run gmandel? No. Several programs are generated. "gmandel" is a plain threaded version: your best bet on single or multiple processor machines. If you want to step into the big leagues, the use of a cluster is desireable. For that you have the programs "gmandel_pvm" and "gmandel_mpi".

New:More detail can be examined in fractals since now operations are done in quad-precision. New:You can now generate general Julia Set fractals with gmandel as well.

To run gmandel

Gmandel uses GTK+2 by default, but it also will work with GTK+1.2 if you compile it yourself. (Please note that if you choose to use GTK+1.2, you *must* specify --with-gtk-prefix=PFX to whereever you have GTK+1.2 installed on your system, usually /usr). The rpm distribution is configured to search for the gmandel programs in /usr/local/bin, so that you must either share that directory between all the machines in your cluster, or install gmandel in every box.

Also note that if you are to use PVM or MPI support, only the server node requires GTK+. The programs that will be spawned on the clients are mandel_pvm_a and mandel_mpi_a, which do not require any GTK.

For PVM, the PVM_PATH environment variable (which should be defined in .bashrc) should point to the directory where gmandel is installed.

For the threaded gmandel, just execute it as you would any other program. This will open the graphic window to begin exploring the Mandelbrot set.

For the PVM version, first get PVM installed. Then configure the number of PVM boxes to participate in the cluster (it will work with a single box too). Then use the pvm spawn command to start gmandel_pvm:

pvm> spawn -> -localhost.localnet gmandel_pvm

For the MPI version, first get MPI installed (I used lam-mpi). Then configure the number of LAM boxes to participate in the cluster (it will work with a single box too). Then use the mpirun command to start gmandel_mpi:

$ mpirun -c 1 /usr/local/bin/gmandel_mpi

For MPI, make sure the first MPI node is your localhost.localnet.

The number of processes which will run under PVM and MPI is configurable at run time from the gmandel graphic panel.

A textbox on the lower right corner will inform you of the time and MFLOP results for each image generation.

Compiling gmandel

If /usr/local/bin is not adecuate for your system, or you want GTK+1.2, just recompile the source, after executing ./configure --prefix=PFX, where PFX is a shared directory between al clustered boxes. This will install gmandel into PFX/bin.

Other useful options for configuration are:

--with-gtk12 (this will use GTK+12 instead of GTK+2.0. Please note that if you use this option, you should also use the --with-gtk-prefix option.). )

--with-gtk-prefix=PFX (this will look for the gtkconfig files at PFX, which is usually /usr)

--target=ARCH (this will specify the target box, like i386, i686, athlon)

Why use a cluster?

Using a cluster increases manyfold the speed of image generation. You can also use gmandel to benchmark your cluster. You might not have access to a very fast machine, but you do have access to many average boxes. Add them all together and you got supercomputing power. Gmandel was tested on a 250 processor cluster comprised of 125 dual pentium III boxes at 1 GHz, and reached peak performances over 58 GFLOPS! This allows for exploration into never seen before aspects of the Mandelbrot set.

Just look at the difference between the two images below, which represent the same area, but applying more computing power to the second (click on images for enlargement).

Gmandel Benchmarking

If you are interested in looking at some benchmarks obtained with gmandel of the 250 processor Linux cluster located at the IMP (Mexican Petroleum Institute), and which is being used with the same techniques of combining POSIX threads with message passing for research calculations in the oil industry, click below. Please note the although PVM benchmarks were tabulated up to 200 processors, MPI maxed out at 80 processors. This is probably because our lam-mpi was not properly configured.Also, the system had at least three other CPU intensive processes running at all times on every cluster node. (That's why we used so many threads, because this way the operating system gives us a greater slice of time over processes that are not thread enabled.)

benchmarks

Download

CVS is available at cvs.gmandel.sf.net.
RPM and tar.gz is available here.

Author

Edscott Wilson García, who can be reached for comments, patches, suggestions at edscott @ users.sourceforge.net

About this document ...

This document was generated using the LaTeX2HTML translator Version 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers /tmp/lyx_tmpdir4290X5OfCG/lyx_tmpbuf0/gmandel.tex

The translation was initiated by on 2002-08-02


2002-08-02
SourceForge.net Logo