Almost all modern computers now have a shared-memory architecture with multiple CPUs connected to the same physical memory, for example multicore laptops or large multi-processor compute servers. This course covers OpenMP, the industry standard for shared-memory programming, which enables serial programs to be parallelised easily using compiler directives. Users of desktop machines can use OpenMP on its own to improve program performance by running on multiple cores; users of parallel supercomputers can use OpenMP in conjunction with MPI to better exploit the shared-memory capabilities of the compute nodes.
This course will cover an introduction to the fundamental concepts of the shared variables model, followed by the syntax and semantics of OpenMP and how it can be used to parallelise real programs. Hands-on practical programming exercises will be included, with access to HPC provided for the duration of the course.
This course is aim at attendees with prior experience of programming in C, C++ or Fortran. Some familiarity with HPC systems is helpful but not essential.
At the end of the course, attendees should be equipped with the skills to write correct parallel programs using the core functionality of OpenMP, and understand the main issues affecting performance of shared memory parallel programs
Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on.
They are also required to abide by the ARCHER2 Training Code of Conduct.
This course will be held over four 2-hour afternoon sessions:
- Tue 6th Oct 14:00 - 16:00 BST
- Thu 8th Oct 14:00 - 16:00 BST
- Tue 13th Oct 14:00 - 16:00 BST
- Thu 15th Oct 14:00 - 16:00 BST
with a follow-up drop-in consultancy session
- Thu 29th Oct 14:00 - 16:00 BST
This course is part-funded by the PRACE project and is free to all.