MPICH2

From CBLFS
Jump to: navigation, search
Download Source: http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.0.6p1/mpich2-1.0.6p1.tar.gz

Contents

Introduction to MPICH2

MPICH2 is an implementation of the Message-Passing Interface (MPI) version 2.

Project Homepage: http://www-unix.mcs.anl.gov/mpi/mpich/

Dependencies

Required

Configuration Information

--with-pm=<PROCESS MANAGER>: Determines which process manager(s) are built where <PROCESS MANAGER> is a colon-separated list of mpd, smpd, or gforker. See the documentation for a discussion of each process manager.
--with-device=<SOCKET>: Selects sockets for interprocess communications where <SOCKET> is one of ch3:sock, ch3:ssm, ch3:shm, or ch3:nemesis. See the documentation for a discussion of each socket type.
Caution.png

Note

Each implementation of MPI (e.g., MPICH2 or OpenMPI) installs certain binaries that have the same name. Subsequent installations will overwrite previous installation. If you plan to use multiple implmentations of MPI, it's recommended that you install each in a separate directory structure such as /opt/mpich2 and /opt/openmpi.

Non-Multilib

Compile the package:

./configure --prefix=/usr --sysconfdir=/etc/mpich2 \
--enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \
--enable-cxx --with-mpe  --with-device=ch3:sock \
--with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man &&
make

Install the package:

make install
make install-examples
mv -v /usr/lib/mpich2-ch3.pc /usr/lib/pkgconfig

Multilib

32Bit

Compile the package:

CC="gcc ${BUILD32}"  CXX="g++ ${BUILD32}" ./configure --prefix=/usr --sysconfdir=/etc/mpich2 \
--enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \
--enable-cxx --with-mpe  --with-device=ch3:sock \
---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man &&
make

Install the package:

make install
make install-examples
mv -v /usr/lib/mpich2-ch3.pc /usr/lib/pkgconfig

N32

Compile the package:

CC="gcc ${BUILDN32}"  CXX="g++ ${BUILDN32}" ./configure --prefix=/usr --libdir=/usr/lib32 \
--sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ 
--enable-f90 --enable-cxx --with-mpe  --with-device=ch3:sock \
---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man &&
make

Install the package:

make install
make install-examples
mv -v /usr/lib32/mpich2-ch3.pc /usr/lib32/pkgconfig

64Bit

Compile the package:

CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" ./configure --prefix=/usr --libdir=/usr/lib64 \
--sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ 
--enable-f90 --enable-cxx --with-mpe  --with-device=ch3:sock \
---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man &&
make

Install the package:

make install
make install-examples
mv -v /usr/lib64/mpich2-ch3.pc /usr/lib64/pkgconfig

Configuring

The process manager requires a secret word to execute. Don't use your login password!! You can change the secret word below to something you like better.

Process Manager

Set the secret word system-wide (required to run process managers as root):

echo MPD_SECRETWORD=weibullguyiscool > /etc/mpd.conf
chmod 600 /etc/mpd.conf

Set the secret word for an unprivileged user.

echo MPD_SECRETWORD=weibullguyiscool > $HOME/.mpd.conf
chmod 600 $HOME/.mpd.conf

Bootscript

Install the mpd init script included in the bootscripts package.

make install-mpich2

Test Suite

Now that MPICH2 is installed, start the process manager and run the test suite. The results are output to an XML file that can be viewed in your web browser. MPICH2 comes with a stylesheet for rendering the XML test results.

mpd &
make testing
mkdir ../mpich2_test_results
cp -v test/TestResults.xsl ../mpich2_test_results
cp -v test/mpi/summary.xml ../mpich2_test_results
firefox ../mpich2_test_results/summary.xml

Contents

Installed Directories: None
Installed Programs: mpd, mpdboot, mpdallexit, mpiexec, mpirun, mpicc, mpicxx, mpif90
Installed Libraries: libmpich.{a,so}, libmpichcxx.{a,so}, libmpichf90.{a,so}, libmpe.a

Short Descriptions

mpd
mpdboot
mpdallext
mpiexec
mpirun
mpicc
mpicxx
mpif90
Personal tools