Multithread-/Multicore-Programming with OpenMP


Who should attend?

Software engineers who want to develop multithread-applications in a platform independent way without having to deal with explicit thread programming. This course is particularly suitable in situations where an existing sequential application should be parallelised for the use in a multicore system while its general architecture must not be modified.

Pre-requisites:

A good working knowledge of C and a basic knowledge of multithreading.
(Important note: this course does not support the Fortran API of OpenMP!)

Duration:

1 day

Course Description

This course shows how platform independent and portable multithread/multicore applications can be developed using OpenMP without having to deal with explicit thread programming. It explains how existing application code, which has been designed for sequential execution, can be parallelised without having to change its general software architecture.


Course Outline:

Loop Parallelisation

  • The directive parallel_for
  • Thread locale variables
  • Private variables
  • Reduction
  • Scheduling strategies
  • Conditional parallelisation

Synchronisation

  • Atomic
  • Critical regions
  • Locks
  • Barriers
  • Ordered Execution
  • Data consistency between threads

Miscellaneous

  • Sections
  • Orphaned directives
  • Nested parallel regions
  • Dynamic thread number adjustment
  • Time measurement

Practical Exercises

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.