MPICH was selected as the initial communications software package for hrothgar. (Others, such as PVM, might be installed in the future, depending on user demand.) The overall implementation strategy generally follows that described in the Caltech/CACR Beowulf Tutorial, with all the MPICH software installed on a partition of the Master Node which is NFS-mountable by the other nodes.
Contents:
The Argonne MPICH site provides the MPICH source via an FTP Link. This provides are zipped tar file, a README and other indispensible documentation.
In our case, things were even easier, as the CACR version of the RedHat 5.1 CDROM already included the full MPICH contents from ANL. The relevant files extracted from the CDROM were:
mpich-1.1.0.tar.gz The distribution source. mpich-install.ps The MPICH Installation Manual mpich-userguide.ps The MPICH User Gide
The installation and user guides were extracted and printed as the obvious first step.
Following/mixing advice from both the MPICH and CACR Beowulf documentation, the installation procedure for MPICH was as follows:
After logging into hrothgar as root and making sure that the CDROM drive was mounted (and contained the RedHat CD), the commands were simply.
This creates a full MPICH distribution tree in /home/mpich.,cd /home cp /mnt/cdrom/cacr/comm-libs/mpich-1.1.0.tar.gz . gunzip -c mpich.tar.gz | tar xvf -
Configuration took maybe a minute and the entire make was done in under ten minutes. No errors (and only a few apparently inconsequential warnings) were generated in either the configure or the make.cd /home/mpich ./configure -device=ch_p4 -arch=LINUX >& config.log make >& make.log
../mpich/util/machines/machines.LINUXThe initial form of this file on hrothgar was as follows:
dan01 dan02 dan03 dan00 dan01 dan02 dan03 dan00
Important Remarks:
so that, for example, a user could complie and execute a simple program on three processors with the command sequence:PATH="$PATH:/usr/X11R6/bin:/scratch00/mpich/bin" PATH="$PATH:/scratch00/mpich/lib/LINUX/ch_p4"
mpicc -c my_prog.c(Curiously, the on-line help for mpicc suggets that compilations and linkings not be combined in a single command.)
mpicc -o MY_PROG mp_prog.o
mpirun -np 3 MY_PROG