Difference between revisions of "MPICH2"
Weibullguy (talk | contribs) |
Weibullguy (talk | contribs) m |
||
Line 32: | Line 32: | ||
--enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \ | --enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \ | ||
--enable-cxx --with-mpe --with-device=ch3:sock \ | --enable-cxx --with-mpe --with-device=ch3:sock \ | ||
− | --with-htmldir=/ | + | --with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man && |
make | make | ||
Line 50: | Line 50: | ||
--enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \ | --enable-sharedlibs=gcc --with-pm=mpd:gforker --enable-f90 \ | ||
--enable-cxx --with-mpe --with-device=ch3:sock \ | --enable-cxx --with-mpe --with-device=ch3:sock \ | ||
− | --with-htmldir=/ | + | ---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man && |
make | make | ||
Line 66: | Line 66: | ||
--sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ | --sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ | ||
--enable-f90 --enable-cxx --with-mpe --with-device=ch3:sock \ | --enable-f90 --enable-cxx --with-mpe --with-device=ch3:sock \ | ||
− | --with-htmldir=/ | + | ---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man && |
make | make | ||
Line 82: | Line 82: | ||
--sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ | --sysconfdir=/etc/mpich2 --enable-sharedlibs=gcc --with-pm=mpd:gforker \ | ||
--enable-f90 --enable-cxx --with-mpe --with-device=ch3:sock \ | --enable-f90 --enable-cxx --with-mpe --with-device=ch3:sock \ | ||
− | --with-htmldir=/ | + | ---with-htmldir=/usr/share/doc/mpich2/html --mandir=/usr/share/man && |
make | make | ||
Line 187: | Line 187: | ||
{| style="text-align: left;" | {| style="text-align: left;" | ||
|-valign="top" | |-valign="top" | ||
− | ! | + | !mpd |
| | | | ||
|-valign="top" | |-valign="top" | ||
− | ! | + | !mpdboot |
| | | | ||
|-valign="top" | |-valign="top" | ||
− | ! | + | !mpdallext |
+ | | | ||
+ | |-valign="top" | ||
+ | !mpiexec | ||
+ | | | ||
+ | |-valign="top" | ||
+ | !mpirun | ||
+ | | | ||
+ | |-valign="top" | ||
+ | !mpicc | ||
+ | | | ||
+ | |-valign="top" | ||
+ | !mpicxx | ||
+ | | | ||
+ | |-valign="top" | ||
+ | !mpif90 | ||
| | | | ||
|} | |} |
Revision as of 06:08, 13 November 2007
Download Source: | http://www-unix.mcs.anl.gov/mpi/mpich/downloads/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. |
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
Create a boot script to start the MPICH2 process manager on the node. This is only necessary if you want to bring up the cluster services automatically.
cat > /etc/rc.d/init.d/mpd << "EOF" #!/bin/sh # Begin $rc_base/init.d/mpd # # Based on sysklogd script from LFS-3.1 and earlier. # Written by Andrew "Weibullguy" Rowland <darowland@ieee.org> # # Date: 2007-10-21 22:22:16 . /etc/sysconfig/rc . $rc_functions # Read in the command arguments case "$1" in start) boot_mesg "Starting MPICH2 Process Manager..." loadproc /usr/sbin/mpd ;; stop) boot_mesg "Stopping MPICH2 Process Manager ..." killproc mpd ;; restart) $0 stop $0 start ;; status) statusproc /usr/sbin/mpd ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0 # End $rc_base/init.d/mpd EOF
Link the bootscript into the appropriate run levels.
ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc0.d/K10mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc1.d/K10mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc2.d/K10mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc3.d/S99mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc4.d/S99mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc5.d/S99mpd ln -sf ../init.d/mpd ${EXTDIR}/rc.d/rc6.d/K10mpd
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
Create a boot script to start the MPICH2 process manager on the node. This is only necessary if you want to bring up the cluster services automatically.
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 |