Differences between revisions 11 and 20 (spanning 9 versions)
Revision 11 as of 2013-11-11 08:41:50
Size: 1893
Editor: NicoleThomas
Comment:
Revision 20 as of 2018-11-05 10:34:58
Size: 1281
Editor: NicoleThomas
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
== ParallelHowTo ==
Line 6: Line 8:
= ParallelHowTo =
Line 8: Line 9:
=== Portland Compiler === It is possible to run CLaMS on multi-processor machines using MPI.
Line 10: Line 11:
It is possible to run CLaMS on multi-processor machines using MPI or OpenMP. === Intel Compiler 18.0.3 ===
Line 12: Line 13:
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:

for 64bit machines:

{{{
. /opt/pgi/linux86-64/10.4/mpi.sh
}}}

for 32bit machines:

{{{
. /opt/pgi/linux86/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 ===

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
 The MPICH Library 3.2.1 is installed in directory ''/usr/nfs/software/icg1/local/mpich-3.2.1-ifort-18.0.3''.
<<BR>>
 Add the bin subdirectory of the installation directory of MPICH library to your path:
 {{{
PATH=/usr/nfs/software/icg1/local/mpich-3.2.1-ifort-18.0.3/bin:$PATH
Line 68: Line 21:
To read the man pages set MANPATH to the following:
{{{
MANPATH=/usr/nfs/local/local/mpich2-intel/share/man:$MANPATH
export MANPATH
 Remove serial compiled object files:
 {{{
make distclean
Line 74: Line 26:
The programs can be compiled with:
{{{
make useComp=ifc useMPI=true <progname>
 Compile with MPI: 
 {{{
make useMPI=true progname
Line 79: Line 31:
Execute on <n> CPUs:
{{{
mpiexec -np <n> <progname>
 Execute on <n> CPUs:
 {{{
mpiexec|mpirun -np <n> <progname>
Line 84: Line 36:
It may be necessary to unset the memory limit:
{{{
ulimit -s unlimited
=== Intel Compiler 17.0.1 ===

 The MPICH Library 3.2 is installed in directory ''/usr/nfs/software/icg1/local/mpich-3.2-ifort-17.0.1''.
<<BR>>
 Add the bin subdirectory of the installation directory of MPICH library to your path:
 {{{
PATH=/usr/nfs/software/icg1/local/mpich-3.2-ifort-17.0.1/bin:$PATH
export PATH
Line 88: Line 45:

 Remove serial compiled object files:
 {{{
make distclean
}}}

 Compile with MPI:
 {{{
make useMPI=true progname
}}}

 Execute on <n> CPUs:
 {{{
mpiexec|mpirun -np <n> <progname>
}}}

ParallelHowTo

It is possible to run CLaMS on multi-processor machines using MPI.

Intel Compiler 18.0.3

  • The MPICH Library 3.2.1 is installed in directory /usr/nfs/software/icg1/local/mpich-3.2.1-ifort-18.0.3.


  • Add the bin subdirectory of the installation directory of MPICH library to your path:
    PATH=/usr/nfs/software/icg1/local/mpich-3.2.1-ifort-18.0.3/bin:$PATH
    export PATH
    Remove serial compiled object files:
    make distclean
    Compile with MPI:
    make useMPI=true progname

    Execute on <n> CPUs:

    mpiexec|mpirun -np <n> <progname>

Intel Compiler 17.0.1

  • The MPICH Library 3.2 is installed in directory /usr/nfs/software/icg1/local/mpich-3.2-ifort-17.0.1.


  • Add the bin subdirectory of the installation directory of MPICH library to your path:
    PATH=/usr/nfs/software/icg1/local/mpich-3.2-ifort-17.0.1/bin:$PATH
    export PATH
    Remove serial compiled object files:
    make distclean
    Compile with MPI:
    make useMPI=true progname

    Execute on <n> CPUs:

    mpiexec|mpirun -np <n> <progname>