ParallelHowTo
Contents
It is possible to run CLaMS on multi-processor machines using MPI.
Intel Compiler 11.1
The MPICH2 Library (1.3.2p1) is installed in directory /usr/nfs/local/local/mpich2-intel (for Intel C and Fortran compilers). Add the bin subdirectory of the installation directory to your path:
PATH=/usr/nfs/local/local/mpich2-intel/bin:$PATH export PATH
To read the man pages set MANPATH to the following:MANPATH=/usr/nfs/local/local/mpich2-intel/share/man:$MANPATH export MANPATH
The programs can be compiled with:make useComp=ifc useMPI=true <progname>
Execute on <n> CPUs:
mpiexec -np <n> <progname>
It may be necessary to unset the memory limit:ulimit -s unlimited
Portland Compiler 10.4
- On the Ubuntu machines the PGF compiler suite is installed that has MPICH implemented. In the following a short How to: First it is necessary to make the path of the MPI libraries public by executing:
. /opt/pgi/linux86-64/10.4/mpi.sh
Then compile the needed programs by executing:make useMPI=true
Before running the CLaMS script or a single program you have to execute:> ssh-agent > SSH_AUTH_SOCK=/tmp/ssh-arHtY17224/agent.17224; export SSH_AUTH_SOCK; > SSH_AGENT_PID=17225; export SSH_AGENT_PID; > echo Agent pid 17225; > ssh-add .ssh/id_rsa
This is necessary, because the processes communicate per ssh. The programs must be called as following:mpirun -np # [ --all-local ] program # - number of processors use the option --all-local for running it on the CPUs of the local machine only.
Intel Compiler 14.0.3
The MPICH2 Library 1.5 is installed in directory /usr/nfs/local/local/mpich2-1.5-ifort-14.0.3. Add the bin subdirectory of the installation directory of MPICH library to your path:
PATH=/usr/nfs/local/local/mpich2-1.5-ifort-14.0.3/bin:$PATH export PATH
Clams programs can be compiled with:make useMPI=true [useComp=ifc] progname
Execute on <n> CPUs:
mpiexec|mpirun -np <n> <progname>
Portland Compiler 14.6
- It is necessary to make the path of the MPI libraries public by executing:
. /opt/pgi/linux86-64/14.6/mpi.sh
Clams programs can be compiled with:make useMPI=true [useComp=pgi] progname
Execute on <n> CPUs:
mpiexec|mpirun -np <n> <progname>