1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
$Header: /cvsroot/nco/nco/doc/mpi.txt,v 1.19 2009/01/13 23:17:13 zender Exp $ -*-text-*-
Installing an MPI Environment for NCO:
Choose an MPI distribution: LAM-MPI (deprecated), MPICH, MPICH2
(recommended), Open MPI, and PPE (AIX only)
MPI distribution-specific instructions are given below, in
alphabetical order of distribution for these parallel environments:
LAM, MPICH, MPICH2, Open MPI, and PPE (AIX only).
Support for Open MPI is new.
No other MPI environments are supported.
Test NCO once one of these environments is installed.
************************************************************************
Determining the Parallel Environment
************************************************************************
Linux in particular has a large number of available MPI environments.
Determining which environment is active may be necessary.
The active MPI environment provides a C-compiler wrapper (usually
called mpicc) which simplifies building C programs like NCO.
mpicc --version # LAM, MPICH, MPICH2: C Compiler/version
mpicxx --version # MPICH2 (only): C++ Compiler/version
mpiCC --version # LAM-MPI, Open MPI: C++ Compiler/version
mpic++ --version # LAM-MPI, Open MPI: C++ Compiler/version
mpicc --showme # LAM-MPI, Open MPI: C compilation switches
mpiCC --showme # LAM-MPI, Open MPI: C++ compilation switches
mpic++ --showme # LAM-MPI, Open MPI: C++ compilation switches
mpcc -v # PPE (only): C compilation switches
mpCC -v # PPE (only): C++ compilation switches
************************************************************************
Testing NCO in a parallel environment
************************************************************************
1. Start any required process management daemon
Typically, these are lamd (LAM), mpd (MPICH/MPICH2), and pmd (PPE).
If regression test results are unpredictable and/or terrible, try
re-starting the process management daemon.
2. Run NCO regression tests in parallel mode
These two commands are equivalent (Makefile translates the first):
make MPI_PRC=3 tst
~/nco/bm/nco_bm.pl --dbg=0 --mpi=3 --regress --udp
************************************************************************
MPI Distribution-specific Instructions
************************************************************************
LAM Instructions:
Up-to-date versions of LAM-MPI are distributed in RPM and Deb formats.
(LAM features are included in Open MPI)
0. Remove LAM-MPI packages
sudo aptitude remove lam4c2 lam4-dev lam-mpidoc lam-runtime
sudo rpm -e lam
sudo yum remove lam
1. Install LAM-MPI packages
sudo aptitude install lam4c2 lam4-dev lam-mpidoc lam-runtime
sudo rpm -i lam-7.0.6-3.i386.rpm
2. Start lamd if not already running:
lamboot -v # Start lamd in verbose mode
3. End lamd
lamwipe # Kill lamd
************************************************************************
MPICH (version 1, http://www-unix.mcs.anl.gov/mpi/mpich) Instructions:
1. Install MPICH packages
sudo aptitude install mpich mpich-common
sudo rpm -i mpich mpich-doc
sudo yum install mpich mpich-doc
sudo rpm -i mpich-1.2.5.2-1mdk.i586.rpm
2. Test mpich version:
mpichversion # Report MPICH1 version and device (ch_p4 indicates GB Ethernet)
************************************************************************
MPICH2 (i.e., MPICH version 2, http://www-unix.mcs.anl.gov/mpi/mpich2) Instructions:
0. Remove MPICH2 packages
sudo aptitude remove libmpich2-1.0 mpich2-doc mpich2 mpich2-mpd mpich2-dev
1. Install MPICH2 (requires python 2.3 or 2.4)
wget http://torvalds.cs.mtsu.edu/~zach/debian/1.0.2p1/libmpich2-1.0_1.0.2p1-2_i386.deb
wget http://torvalds.cs.mtsu.edu/~zach/debian/1.0.2p1/mpich2-doc_1.0.2p1-2_i386.deb
wget http://torvalds.cs.mtsu.edu/~zach/debian/1.0.2p1/mpich2_1.0.2p1-2_i386.deb
wget http://torvalds.cs.mtsu.edu/~zach/debian/1.0.2p1/mpich2-mpd_1.0.2p1-2_i386.deb
wget http://torvalds.cs.mtsu.edu/~zach/debian/1.0.2p1/mpich2-dev_1.0.2p1-2_i386.deb
sudo aptitude install python2.3 python2.3-xml
cd ${DATA}/tmp
sudo dpkg --install \
libmpich2-1.0_1.0.2p1-2_i386.deb \
mpich2-doc_1.0.2p1-2_i386.deb \
mpich2_1.0.2p1-2_i386.deb \
mpich2-mpd_1.0.2p1-2_i386.deb \
mpich2-dev_1.0.2p1-2_i386.deb
cd -
2. Install .mpd.conf in ${HOME} or set START="yes" in /etc/default/mpd
3. Start mpd if not already running:
mpd & # Start MPD
mpdtrace # Test MPD
mpdallexit # Exit MPD
mpich2version # Report MPICH2 version
************************************************************************
Open MPI Instructions:
Up-to-date versions of LAM-MPI are distributed in RPM and Deb formats.
0. Remove Open MPI packages
sudo aptitude remove openmpi_bin
1. Install Open MPI packages
sudo aptitude install openmpi-bin openmpi-doc openmpi-dev
************************************************************************
Parallel Programming Environment (PPE) (AIX only):
1. poe requires a hostfile. hostfile defaults to ./host.list.
Create host.list with, e.g.,
echo ${HOST} > ./host.list
2.
poe -hostfile=~/nco/bld/host.list -node=1 -tasks_per_node=3 $MY_BIN_DIR/mpncwa -O -D 3 -p ${HOME}/nco/data in.nc ~/foo.nc
|