Table of Contents
MPI is a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users.
MPI was designed for high performance on both massively parallel machines and on workstation clusters.
MPI is widely available, with both free available and vendor-supplied implementations. A number of MPI home pages are available.
MPI was developed by a broadly based committee of vendors, implementors, and users
The project to provide a portable implementation of MPI began at the same time as the MPI definition process itself. The idea was to provide early feedback on decisions being made by the MPI Forum and provide an early implementation to allow users to experiment with the definitions even as they were being developed. Targets for the implementation were to include all systems capable of supporting the message-passing model. MPICH is a freely available, complete implementation of the MPI specification, designed to be both portable and efficient. The ``CH'' in MPICH stands for ``Chameleon,'' symbol of adaptability to one's environment and thus of portability. Chameleons are fast, and from the beginning a secondary goal was to give up as little efficiency as possible for the portability.
IGGI contains the 1.2.5.2 and mpich2-1.0.4 version of MPICH, with no major patches. This version includes the c, c++ and gfortran version of the MPI compiler. Mpich is installed by default on client and server side.
Mpich-1.2 uses a file (called machine.LINUX) which contain the list of available nodes. The mpirun command allow users to send mpi command on the cluster.
I.e mpirun -np 4 testmpi.mpich will run the "testmpi.mpich" on 4 nodes. You can find this sample test program in /usr/share/doc/mpich-1.2.5 directory.
Mpich uses rsh to execute remote commands on nodes, so rsh should be configured for allowing remote user to logon. Home directories should contains a .rhosts file which contain the list of nodes/users allowed to logon. This file is autogenerated by the "adduserNis" script.
You can find more documentation about MPICH at http://www-unix.mcs.anl.gov/mpi/mpich/
LAM (Local Area Multicomputer) is an MPI programming environment and development system for heterogeneous computers on a network. With LAM, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one problem. LAM features extensive debugging support in the application development cycle and peak performance for production applications. LAM features a full implementation of the MPI communication standard.
IGGI contains the 7.2.3 version of LAM, with no major patches. This version includes the c, c++ and gfortran version of the MPI compiler. Lam doesn't conflicts anymore with Mpich. The "mpirun" command has been renamed in "mpirun-lam".
LAM uses a file (called lam-bhost.def) which contain the list of available nodes. Then use the "lamboot" command to start LAM on all the nodes specified in the node list. As with Mpich, the "mpirun-lam" command allow users to send mpi commands on the cluster. Use "lamhalt" command to stop all the LAM daemons.
You can find more documentation about LAM at http://www.lam-mpi.org/faq/