Configuring mpich


Up: Contents Next: Workstations in General Previous: Documentation

The next step is to configure mpich for your particular computing environment. Mpich can be built for a variety of parallel computers and also for networks of workstations. Parallel computers supported include the IBM SP (using various communication options), the Intel Paragon and IPSC860, HP Exemplar, NEC SX-4, and IBM, SGI, HP, and Sun Multiprocessors. Workstations supported are the Sun4 family (both SunOS and Solaris), Hewlett-Packard, Compaq 3000 and Alpha, IBM RS/6000 family, and SGI. Also supported are Intel x86-based PC clones running the Linux or FreeBSD operating systems. Previous versions of mpich supported the Kendall Square KSR-1 and KSR-2, the Meiko CS-2, Thinking Machines CM-5, and nCube. New ports are always pending.

Configuration of mpich is done with the configure script contained in the top-level directory. This script is automatically generated by the Gnu autoconf program (version 1.6, not version 2) from the file configure.in, but you do not need to have autoconf yourself.

The configure script documents itself in the following way. If you type

    configure -usage 
you will get a complete list of arguments and their meanings; these are also shown in Appendix Configure Usage . The most important options are
{ --prefix=dir}
The installation prefix. configure understands all of the usual GNU installation directory arguments, including --libdir and --mandir. We recommend that all users specify an installation directory with --prefix.

{ --with-device=devname}
Set the mpich device to use. devname must be the name of one of the directories in the mpid directory, such as ch_p4, ch_shmem, globus2, or ch_p4mpd.

{ --with-comm=name}
Select a communication option for the device. Currently only for the ch_p4 device; the values shared (for SMP nodes) and bproc (for Scyld) are supported.

{ --enable-debug}
Turn on support for the Totalview(c) Debugger. This allows Totalview to display information on message queues.

{ --enable-sharedlib}
Build both static and shared libraries for mpich. This supports only a few systems, including those using gcc (e.g., most Linux Beowulf systems).

{ -automountfix=program}
This is sometimes necessary for systems with automounter problems (see Section Dealing with automounters ).

{ -rsh=commandname}
Set the name of the program used to start remote processes. Only the ch_p4 device uses this, and if no name is provided, configure will attempt to determine the appropropriate program.

In addition, configure makes use of environment variables such as MAKE, CC, F77, CFLAGS, and FFLAGS.

Normally, you should use configure with as few arguments as you can. If you leave all arguments off, configure will usually guess the correct architecture (arch) unless you are in a cross-compiling environment, and will usually choose an appropriate device (device) as well. Where TCP/IP is an appropriate mechanism for communication, the TCP device (ch_p4) will be chosen by default.

Mpich is implemented using an abstract device specification (ADI), described in [6]. In some environments, this abstract device is configured to be the native communication subsystem of the machine. This is done with the --with-device argument to configure. For the many other environments, a generic communication device is constructed using p4 [1,2] and that is used as the instantiation of the ADI. In these cases, use ch_p4 as the device.

The ARCH_TYPE specifies what kind of processor the compilations will take place on. Valid ones are listed above. For the IBM SP, the architecture type is rs6000. If not given, configure will attempt to determine the type.

Some machines have multiple communication options, which are specified with the comm argument. Currently, the ch_p4 device makes use of this. By selecting -comm=shared, a version of the ch_p4 device that permits the use of both shared memory and IP/TCP is built. This is particularly useful on clusters of symmetric multiprocessors.

A new device, globus2 [3,5], based on the Globus run-time system [4] is currently available. Like the ch_p4 device, the Globus2 device is able to use multimethod communication on some platforms. For example, the IBM SP can communicate via IBM's MPI or TCP depending on which node it is communicating with. See http://www.globus.org for more details.

Some sample invocations of configure are shown below. In most cases, the mpe libraries are also built. (See Section The MPE Library for more information about installing MPE and the User's Guide for mpich for more information on using the features in MPE.) To build without the mpe libraries, configure with --without-mpe. In many cases, the detailed invocations below are the defaults, which you would get if you invoked configure with no arguments. That is, a good general strategy is to first try

    ./configure 
If that doesn't work, look over the following for an environment similar to yours.



Up: Contents Next: Workstations in General Previous: Documentation