The Multilevel Parallel Programming (MLP) approach is a mixture of message passing via MPI and either compiler directives or explicit threading. The MLP approach can use one of several combinations referred to as MPI+X, where X can be OpenMP, CUDA, OpenACC, etc. In this tutorial, you will learn about MPI+OpenMP. Both are widely used for scientific applications and are supported on virtually every parallel system architecture currently in production.

Prerequisites: A basic understanding of MPI and OpenMP.