Practical work with MPI
Practical work with simple codes on a
cluster. Avoiding dead locks in message
passing programs.
Have a look at the exercise and download the
templates for first and for accu.
- untar the template in a different subdirectory than the
sequential example
- cd first.template
- make run
- Avoid warnings causes by OpenMPI:
make run 2>&1 | grep -v
openmpi
- You can swich between GNU- and Intel-compiler by changing the line (not
supported currently)
COMPILER=GCC_
in the Makefile
- The following targets/calls are available in the Makefile:
- make : Compiles and
links the code
- make run : Recompiles the whole code
and runs it
- make cache : Profiles the code wrt. cache performance
- make prof : Profiles the code
- make mem : Checks the code for correct data
accesses, pointers alloc/deallocs, memory leaks
- doc
:
Generates documentation, see html/index.html
afterwards
- clean
: Cleans temporary files
- clean_all : Cleans
everything
- tar
:
Cleans everything and packs the remainding files into a
tar-file in the root directory
Available compilers:
- GNU:
- Performance analyzer: gprof (kprof); valgrind
(kcachegrind)
- Memory analyzer: valgrind
- Intel:
- Quick
Reference Card, non-commercial
license available, academic
pricing
- Performance analyzer: amplifier (amplxe-gu)
- Memory/Thread analyzer:
inspector (inspxe-gui)
MPI:
- OpenMPI(home, doc),
excellent LLNL-tutorial on MPI
- MPICH distribution (required by PGI compiler)