National Computational Infrastructure

NCI

Introduction to Parallel Programming

To make programmers comfortable with making their serial C/C++ programs run across multiple CPU cores on multiple nodes of Raijin using state-of-the-art parallel programming models, OpenMP and MPI.

Outline

Assumed Knowledge: Use of Raijin and PBS job scheduler, Basic C programming, Use of shell such as bash, Use of terminal text editor such as vim/emacs/nano etc

  • Brief recap of basic C programming, Makefiles, Compiling, Linking, Running executables
  • Introduction to shared memory parallel programming with OpenMP 3.0
    • Running across multiple CPU cores using OpenMP parallel regions
    • Loop Scheduling
    • Synchronization
    • OpenMP tasks
    • Hands-on Exercises to parallelize serial code using OpenMP
  • Introduction to distributed memory parallel programming with MPI 1.0
    • Message Passing Communication
    • Send/Receive
    • Collective Operations
    • Hands-on Exercises to parallelize serial code using MPI
  • Hybrid MPI+OpenMP parallelization

Download

Back to Training

In Collaboration With