[Beowulf] Developing software for MPICH clusters?

Robert G. Brown rgb at phy.duke.edu
Thu Dec 11 05:33:45 PST 2008

On Wed, 10 Dec 2008, Dr Cool Santa wrote:

> Till now I have only created Beowulf clusters for my mother who is a
> theoretical chemist. She needed clusters to run applications and study
> chemical aspects of various substances to help in her research.
> I being a programmer found it quite exciting. I sometimes have had
> programmed software to automate my work, however sometimes that work is too
> much for my computer to handle that it takes hours and days. I was thinking
> if someone could tell me how I could convert it into MPI based code.
> Basically my aim is to divide the work among the computers that are on the
> cluster. The cluster is comprised of 4 dual core machines so you can
> understand how much powerful they would be compare to my computer. Also I
> generally program in C or C++ but I have a vast range of languages to
> program in.
> I can explain the main features of such programs with an example. They would
> compute results of consecutive numbers and store them in some file or
> database so it doesn't have to compute them again later or something
> similar. This is just an example my work is more complicates.
> Basically what I wanted to tell was that the work in itself isn't difficult
> but the quantity is a lot and so it needs to be divided.

It sounds like you already have a collection of systems running
linux in a "beowulf" (cluster) configuration, so I'll focus on just the
MPI aspect.

Pick an MPI.  There are at least three or four to choose from, and I
have no particular religious bias towards any of them and expect that
all of them would work for your problem.  For example, lam is often a
"yum install" or "apt get" away, as is openmpi.  IIRC mpich(2) has to be
built, but it is EASY to build with e.g. src rpms ready to fire up.

Look in the following places for mpi examples, in order:

   * Online, e.g. in articles on www.clustermonkey.net.  I think you
could very likely find a complete set of tutorials there alone that
would take you through your first few programs and out to where you
could write/run YOUR code in MPI.

   * In the source or documentation trees.  There are almost always
simple example programs there that serve as templates for more
complicated parallel programs (they e.g. compute pi or evaluate chunks
of the mandelbrot set).

   * Books.  There are some decent books on MPI programming available
that should suffice to at least get you started, as before.

I think C will do just fine.

Good luck.


Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb at phy.duke.edu

More information about the Beowulf mailing list