Workshop Overview

Multi-core parallel computers have become ubiquitous. From cell-phone and tablets to large SMP servers at a bank, most machines are based on chips with multiple CPU’s or cores that are able to simultaneously perform several independent tasks, or work on a larger problem in parallel. The underlying architecture is “shared memory”, i.e. the compute units access the same memory space. The common paradigm for programming for such machines while making use of their inherent parallelism is Multi-Threading.

This two-day workshop aims to give a thorough introduction to multi-threading on shared-memory platforms, starting with the simplest of approaches, automatic parallelization through an enabled compiler. The next step is the usage of OpenMP compiler directives to assist the compiler and convert existing serial programs into multi-threaded ones with a minimum of efforts. Finally, if even more flexibility and user control is required, the usage of Posix thread-libraries may be considered.

The workshop does not require any prior programming experience with parallel machines. However, a working knowledge of C or Fortran is useful, particularly on the second day.

On both days, we will spend some time using a dedicated mini-cluster at HPCVL to give the participants an opportunity to apply their newly gained knowledge, and to gain some hands-on experience.