Home       About       Products       Vault       Services       Store       Media        Press
    
    Pooch
    



GZIP tar file 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.


    © Copyright 2001-2005 Dauger Research, Inc. All rights reserved. PO Box 3074, Huntington Beach, CA 92605 USA