= Some Notes from MPICH2 Installation Guide = == Offical [http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-doc-user.pdf User's Guide] == * MPICH2 test examples - cpi * in Offical [http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-doc-user.pdf User's Guide] {{{ mpd & cd /home/you/mpich2-installed/examples mpiexec -n 3 cpi mpdallexit }}} * in Debian environment {{{ jazz@bio-cluster-12:~$ mpd & [1] 3551 jazz@bio-cluster-12:~$ mpiexec -n 3 /usr/share/mpich2/examples/cpi Process 1 of 3 is on bio-cluster-12 Process 2 of 3 is on bio-cluster-12 Process 0 of 3 is on bio-cluster-12 pi is approximately 3.1415926544231318, Error is 0.0000000008333387 wall clock time = 0.001213 jazz@bio-cluster-12:~$ mpdallexit }}} * Compiling and Linking * 4.3 Special Issues for C++ * Some users may get error messages such as {{{ SEEK_SET is #defined but must not be for the C++ binding of MPI }}} * The problem is that both stdio.h and the MPI C++ interface use SEEK SET, SEEK CUR, and SEEK END. This is really a bug in the MPI-2 standard. You can try adding following definition to the command line {{{ -DMPICH_IGNORE_CXX_SEEK }}} * 5.1 Standard mpiexec * Currently, MPICH2 does not fully support calling the dynamic process routines from MPI-2 (e.g., '''MPI_Comm_spawn''' or '''MPI_Comm_accept''') from processes that are not started with mpiexec. * Note: this might be the reason why we encounter R-MPI '''mpi.spawn.Rslaves()''' problem. * 5.3.1 Basic mpiexec arguments for MPD * You can use mpiexec to run non-MPI programs as well. This is sometimes useful in making sure all the machines are up and ready for use. Useful examples include {{{ mpiexec -n 10 hostname mpiexec -n 10 printenv }}} * 5.3.2 Other Command-Line Arguments to mpiexec for MPD * This section describe ''machinefile'' format to specifying '''hosts''', '''number of processes''' and '''interface host name'''(ifhn) * i.e, ${hostname}:${number of processors} ifhn=${name of network interface} {{{ # comment line hosta hostb:2 hostc ifhn=hostc-gige hostd:4 ifhn=hostd-gige }}} * 5.7.1 MPD in the PBS environment * One way to convert the node file to the MPD format is as follows: {{{ sort $PBS_NODEFILE | uniq -C | awk ā€™{ printf(ā€%s:%sā€, $2, $1); }ā€™ > mpd.nodes }}} * {{{ tty1: jazz@bio-cluster-12:~$ mpiexec -n 2 /home/jazz/demo1 This is machine 0 of 2 name = bio-cluster-12 This is machine 1 of 2 name = bio-cluster-08 ================================================================= tty2: jazz@bio-cluster-12:~$ mpdlistjobs jobid = 4@bio-cluster-12_48909 jobalias = username = jazz host = bio-cluster-12 pid = 3619 sid = 3618 rank = 0 pgm = /home/jazz/demo1 jobid = 4@bio-cluster-12_48909 jobalias = username = jazz host = bio-cluster-08 pid = 6187 sid = 6186 rank = 1 pgm = /home/jazz/demo1 }}} == Offical [http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-doc-install.pdf Installer's Guide] == == [http://www.clustertech.com/cpe-eval/doc/mpich2instguide.pdf MPICH2 Installation and Configuration Guide] ==