Practical work with  MPI/OpenMP


Data distributions for sparse systems are considered in combination with an example.

Data distributions:
Have  a look at §5 of exercise and download the template for the sequential Jacobi solver (, further you may continue with §6
and download the template for the sequential multigrid solver).
  1. untar the template in a different subdirectory than the sequential example
  2. cd jacobi.template
  3. make
    1. Avoid warnings causes by OpenMPI:
      make   2>&1 | grep -v openmpi
  4. You can swich between GNU- and Intel-compiler by changing the line (not supported currently)
    COMPILER=GCC_
    in the Makefile
  5. The following targets/calls are available in the Makefile:
    1. make           :  Compiles and links the code
    2. make run     :  Recompiles the whole code and runs it
    3. make cache :  Profiles the code wrt. cache performance
    4. make prof    :  Profiles the code
    5. make mem   :  Checks the code for correct data accesses, pointers alloc/deallocs, memory leaks
    6. doc               :  Generates documentation, see html/index.html  afterwards
    7. clean            :  Cleans temporary files
    8. clean_all      :  Cleans everything
    9. tar                :  Cleans everything and packs the remainding files into a tar-file in the root directory
Available compilers: MPI:

Combining MPI and OpenMP: