|
mpich for OS X 10.2 and Pooch (12 MB download)
a modified version of mpich 1.2.4 that operates with Pooch
mpich is an open-source implementation of the MPI standard, and its original distribution is available from
Argonne National Laboratory at
http://www-unix.mcs.anl.gov/mpi/mpich/.
mpich is commonly used on
Linux-based clusters. In 2002, its port to Mac OS X 10.1 was complete.
In order to operate with Pooch, it was necessary to modify mpich source.
The modifications allow Pooch to inform mpich which TCP port it should use and
enabled mpich to run with multiple MPI tasks per node with much greater stability.
See below for details.
Configuration and Installation
This version of mpich should compile much like the mpich documentation
describes.
That is, follow steps 1 through 3 on pages 4 and 5 in mpichman-chp4.pdf.
We're assuming you've already installed Apple's Developer Tools for your
copy of OS X.
In summary, cd to the mpich-1.2.4 directory that was created after
decompressing and un-tar-ing the mpich archive.
We recommend extracting the archive to a place where you have full read-write-execute access,
such as your home directory (e.g., /Users/yourusername/).
(Using /usr/local/ is apparently not always reliable.)
Then use the following command to specify the mpich libraries in the mpich-1.2.4
directory of /Users/yourusername/ and sense various features of your computer:
./configure --prefix=/Users/yourusername/mpich-1.2.4 |& tee c.log
(You may use another directory if you wish.) Note: if you are using Absoft's Fortran 90,
you might want to make sure the .a files in the /Applications/Absoft/lib/ are up to date
(e.g., use ranlib) and
use the --disable-f90modules flag when using ./configure, like this:
./configure --prefix=/Users/yourusername/mpich-1.2.4 --disable-f90modules |& tee c.log
Then make mpich using:
make |& tee make.log
This step may take many minutes as it compiles all of mpich.
A very large amount of output will be created.
Compiling with mpich
To compile your C code, you may use the mpicc command residing in
the bin directory of the mpich library directory:
./bin/mpicc -o test.out test.c
Pooch should recognize the resulting executable.
Note: Be sure to select "mpich" from the Job Type submenu of the Options
pop-up on the Job Window.
Pooch should then be able to launch your mpich executable.
The Modifications
In this version of mpich, the startup connection sequence is
modified so that mpich no longer requires mpirun, NFS, rsh, or
ssh on a cluster. In this case, the changes were made so that Pooch could
launch a parallel executable compiled with the mpich library. Only slight modifications
were made to the installation or compilation processes. To use this code, it is
necessary to install this mpich only on the node where the code is compiled.
The changes made to mpich for operation with Pooch by Dauger Research are
minimal. Changes were to allow Pooch to specify node 0's listener port via the
-p4norem option and to make the p4 implementation more robust by having the master
node initiate contact with the slave nodes, much in the style of
MacMPI by Dr.
Viktor K. Decyk at
UCLA Physics. Pooch supplies this port number and node list
information to all mpich nodes at launch.
The modified files are in the mpid/ch_p4/p4/lib directory:
p4_args.c
p4_globals.h
p4_sock_cr.c
p4_sock_util.c
p4_sock_conn.c
p4_bm.c
p4_rm.c
p4_utils.c
You may locate these changes using diff. The changed code is labeled with
/*DED*/.
Naturally, Dauger Research, Inc., officially rereleases the modified code freely for
all to use. In fact, we hope (and would rather have) that the authors of mpich
incorporate these
small changes into the original distribution. The changes
are minor enough that we do not expect credit. Until they incorporate these changes,
updated versions should be available from this web site.
License and copyright rules of this distribution should then be consistent with that of the original
distribution of mpich.
Back to
Pooch.
|