Brussels / 1 & 2 February 2014


Using OpenMP to Simply Parallelize CPU-Intensive C Code

Compute-intensive applications usually benefit hugely from parallelization: running code on multiple CPU cores at the same time. One mechanism to implement such parallelism is to use OpenMP, an official open standard that allows for easy parallelization of existing C or C++ code. The latest OpenMP version (4.0, released summer 2013) also covers offloading to accelerators like GPUs and SIMD.

Klaas van Gend will introduce OpenMP, its applicability and usefulness and how to use OpenMP to speed up your code.

OpenMP is an official, open standard to specify multi-threading, computational offload (to accelerators like GPGPUs) and SIMD (vectorization). OpenMP is a big topic, it is impossible to cover everything.

Amongst the topics discussed will be:

  • how to start using OpenMP
  • the benefit of OpenMP: it is just code annotation
  • how to implement functional parallelism: using parallel sections
  • how to implement data parallelism: using parallel for
  • how to work with OpenMP tasks
  • simple comparison of OpenMP against 'competing' standards like OpenACC, OpenCL, C++11 and MPI
  • the current state of the OpenMP implementations in GCC and Clang


Klaas van Gend