Massively Parallel Processors and Large SMPs


Up: Configuring mpich Next: Building a production mpich Previous: Computational Grids with the globus2 device

Cray multiprocessor
(not a CRAY T3D but, for example, a 4 processor Cray YMP or C90)
    configure --with-device=ch_p4 --with-arch=CRAY 
HP Exemplar
For a HP Exemplar, please get the official version from HP (formerly Convex). This was originally based on mpich, but has been tuned for better performance on the Exemplar. If for some reason you want to use the shared memory version of mpich on the HP, use
    configure --with-device=ch_shmem --with-arch=hpux 
IBM SP
(using the high-performance switch for communication)
    configure --with-device=ch_mpl --with-arch=rs6000 
Note that this requires support for the IBM MPL message-passing library. Some recent versions of the IBM SP software may not include support for this older library. In that case, you must use the IBM implementation of MPI.

SGI multiprocessors
such as the Origin 2000. SGI's own MPI is highly tuned for these machines. If you do want to use mpich, use
    configure --with-device=ch_shmem  
Configure 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=IRIX64 
If 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.

NEC SX-4
For an NEC SX-4 shared-memory vector multiprocessor, use
    configure --with-device=ch_lfshmem 
to get the lock-free shared-memory device described in [9]. Note that this device requires special assembly-language code and/or compiler options in order to operate reliably.




Up: Configuring mpich Next: Building a production mpich Previous: Computational Grids with the globus2 device