The configure script documents itself in the following way. If you type
configure -usageyou will get a complete list of arguments and their meanings; these are also shown in Appendix Configure Usage . The most important options are
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.
The MPI standard requires that each routine be available with both the MPI and
PMPI prefix; for example, MPI_Send and PMPI_Send. Mpich
attempts to use weak symbols to provide this feature; this reduces the
size of the mpich library. You can force mpich to make separate
libraries for
the MPI and PMPI versions by adding the configure option
--disable-weak-symbols:
configure --disable-weak-symbols ...Some MPI routines are implemented in terms of other MPI routines. For example, in mpich, MPI_Bcast is implemented using MPI_Send. When weak symbols are used, even the PMPI versions of the routines are implemented using the MPI (not PMPI) versions. If you want the PMPI routines to only use the PMPI routines, use --disable-weak-symbols when configuring mpich. Note that this behavior may change in later releases.
The mpich implementation of MPI is currently not threadsafe. It may, however, be possible to use mpich in a threaded application as long as all mpich calls are made by a single thread. An example of this is OpenMP used for loop parallelism, combined with MPI.
In general, users should avoid using signals with MPI programs. The manual page for MPI_Init describes the signals that are used by the MPI implementation; these should not be changed by the user.
Because Unix does not chain signals, there is the possibility that several packages will attempt to use the same signal, causing the program to fail. For example, by default, the ch_p4 device uses SIGUSR1; some thread packages also use SIGUSR1.
In a few cases, you can change the signal before calling MPI_Init. In those cases, your signal handler will be called after the mpich implementation acts on the signal. For example, if you want to change the behavior of SIGSEGV to print a message, you can establish such a signal handler before calling MPI_Init. With devices such as the ch_p4 device that handle SIGSEGV, this will cause your signal handler to be called after mpich processes it.
configure --with-device=ch_shmem --with-arch=hpux
configure --with-device=ch_shmemConfigure attempts to determine the number of processors that are available; you can override this by setting the environment variable PROCESSOR_COUNT before running configure. Alternately, you can edit the file mpich/mpid/ch_shmem/shdef.h to adjust the maximum number of processors and memory that is used for communicating messages through shared memory. If you need to generate a particular version that corresponds to the -32, -n32, or -64 compiler/linker options on SGI, use the architectures IRIX32, IRIXN32, or IRIX64 respectively instead of SGI. Specifically, use the following for an R10000 or R12000 SGI:
./configure --with-arch=IRIX32 ./configure --with-arch=IRIXN32 ./configure --with-arch=IRIX64If it is necessary to specify the specific compiler options, they must be specified by setting the CC and FC environment variables:
setenv CC "cc -32" setenv FC "f77 -32" configure --with-arch=IRIX32 \ -opt="-O2" \ --with-device=ch_shmem setenv CC "cc -n32 -mips4 -r10000" setenv FC "f77 -n32 -mips4 -r10000" configure --with-arch=IRIXN32 \ -opt="-O2" \ --with-device=ch_shmem setenv CC "cc -64 -mips4 -r10000" setenv FC "f77 -64 -mips4 -r10000" configure --with-arch=IRIX64 \ -opt="-O2" \ --with-device=ch_shmem(The optimization level is optional; -O2 has worked for some users. Be careful of aggressive optimization, particularly in the mpid/ch_shmem code.)
See the comments under SGI workstations for different 32 and 64 bit options.