MPI is a popular, widely supported standard for writing parallel programs using message passing. The version available on DAS is MPI-Panda, which uses Panda as message passing layer. It is based on the well-known MPI-CH package from Argonne/MSU. See also the MPI-CH documentation collected locally (by Thilo Kielmann).
Compilation of MPI programs for MPI-Panda is done with the scripts mpicc for C programs and mpif77 for Fortran-77 programs; these scripts reside in /usr/local/VU/mpi/lib/i386/ch_panda4/. The scripts are self-contained: no extra flags to indicate MPI include directories or libraries are needed. Both compile scripts support the full range of architectural options known to the Panda compile script panc. The options -O, -O1, -O2, ... are treated specially. When one of these options is specified, optimized versions of MPI and Panda libraries are linked into the program. When no -O* option is specified, debugging libraries (with symbol table support, assertions etc) are linked into the program.
The implementation on Panda4.0 is more efficient than that on Panda3.0, since the message interface offered by Panda4.0 is more flexible. No user data is ever copied. Panda3.0 sometimes copies (part of) the message. However, Panda4.0 currently only runs on Linux, BSDI and Solaris, and it supports the network layers LFC and UDP. On the other hand, Panda3.0 runs also on SP-2, PowerExplorer, Amoeba, ... . Wherever possible, it is strongly recommended to use MPI-Panda on Panda4.0. Use of Panda3.0 is selected by passing mpicc/mpif77 the flag -3, use of Panda4.0 is selected by the flag -4.
Some locally written or massaged applications can be found in /usr/local/VU/mpi-examples/misc/.