next up previous contents
Next: HDF5: Hierarchical Data Format Up: Compiling with Extra Packages Previous: Compiling with Extra Packages   Contents


MPI: Message Passing Interface

The Message Passing Interface (MPI) provides inter-processor communication. It can either be implemented natively on a machine (this is usual on most supercomputers), or through a standard package such as MPICH, LAM, WMPI, or PACX.

To compile with MPI, the configure option is

MPI = <MPI_TYPE>,

where <MPI_TYPE> can take the values (entries followed by * may be specified on the configuration command line):

CUSTOM
For a custom MPI configuration set the variables
MPI_LIBS
* libraries.
MPI_LIB_DIRS
* library directories.
MPI_INC_DIRS
* include file directories.

NATIVE
Use the native MPI for this machine, as indicated in the known-architectures directory (lib/make/known-architectures).

MPICH
Use MPICH (http://www-unix.mcs.anl.gov/mpi/mpich). This is controlled by the options
MPICH_ARCH
* machine architecture.
MPICH_DIR
* directory in which MPICH is installed. If this option is not defined, it will be searched for.
MPICH_DEVICE
* the device used by MPICH. If not defined, the configuration process will search for this in a few defined places. Supported devices are currently ch_p4, ch_shmem, globus and myrinet. For versions of MPICH prior to 1.2.0, the devices are searched for in this order, for 1.2.0 you may need to specify MPICH_DEVICE, depending on the installation.

If MPICH_DEVICE is chosen to be globus (http://www.globus.org), an additional variable must be set

GLOBUS_LOCATION
* directory in which Globus is installed.
The Globus flavor may be chosen optionally
GLOBUS_FLAVOR
* Globus flavor to build Cactus with.
If it is not set, the first Globus flavor found will be used.

If MPICH_DEVICE is chosen to be ch_gm, (http://www.myri.com), an additional variable must be set

MYRINET_DIR
* directory in which Myrinet libraries are installed.

LAM
Use LAM (Local Area Multicomputer, http://www.lam-mpi.org/). This is controlled by the variables
LAM_DIR
* directory in which LAM is installed. This will be searched for in a few provided places if not given.
If the LAM installation splits libraries and include files into different directories, instead of setting LAM_DIR set the two variables
LAM_LIB_DIR
* directory in which LAM libraries are installed.
LAM_INC_DIR
* directory in which LAM include files are installed.

WMPI
Use WMPI (Win32 Message Passing Interface, http://dsg.dei.uc.pt/w32mpi/intro.html). This is controlled by the variable
WMPI_DIR
* directory in which WMPI is installed.

HPVM
Use HPVM (High Performance Virtual Machine, (http://www-csag.ucsd.edu/projects/hpvm.html). This is controlled by the variable
HPVM_DIR
* directory in which HPVM is installed.

MPIPro
Use MPIPro (http://www.mpi-softtech.com/).

PACX
Use the PACX Metacomputing package (PArallel Computer eXtension,
http://www.hlrs.de/structure/organisation/par/projects/pacx-mpi/). This is controlled by the variables
PACX_DIR
* directory in which PACX is installed. If this option is not defined, it will be searched for.
PACX_MPI
* the MPI package PACX uses node-local communication. This can be any of the above MPI packages.

Note that the searches for libraries, etc., mentioned above, use the locations given in the files in lib/make/extras/MPI.


next up previous contents
Next: HDF5: Hierarchical Data Format Up: Compiling with Extra Packages Previous: Compiling with Extra Packages   Contents