Shared-Memory Programming with OpenMP

ARCHER, the UK's national supercomputing service, offers training in software development and high-performance computing to scientists and researchers across the UK. As part of our training service we are running a 2 day ARCHER OpenMP course at Imperial College London on 13-14 September 2018.


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 two-day 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 make up a significant, and integral, part of this course.


Adrian Jackson

Adrian Jackson is a Research Architect at EPCC, where he works on a range of different research, from investigating new memory hardware and programming models, to optimising and porting parallel codes, and working with application scientists to enable their computational simulation or data analysis. He also teaches on EPCC's MSc in HPC, giving lectures on Programming Skills, HPC Architecture, and Performance Programming.


Pre-requisite Programming Languages:

No prior HPC or parallel programming knowledge is assumed, but attendees must already be able to program in C, C++ or Fortran. It is not possible to do the exercises in Java.

Pre-course setup

All course delegates will need to bring a wireless enabled laptop computer with them on the course. If you have an EduRoam account please ensure this is set up beforehand.

Practical exercises will be done using a guest account on ARCHER. You will need to set up your laptop before the course with the required software. Setup information is available at for Windows, Mac and Linux.

This course is free to all academics.

Intended learning outcomes

On completion of this course students should be able to:

  • Describe the fundamentals of the shared-memory architecture
  • Understand the concepts of threads and shared-memory programming.
  • Write, compile, and run parallel OpenMP programs.
  • Perform basic optimisations for better performance.


Day 1

  • 09:30 Shared Memory Concepts; OpenMP Fundamentals; Parallel Regions
  • 11:00 COFFEE
  • 11:30 Exercises: Hello World; Parallel regions
  • 13:00 LUNCH
  • 14:00 Lectures: Work sharing, Synchronisation
  • 15:00 TEA
  • 15:30 Exercises: Parallel loops, Synchronisation
  • 17:00 CLOSE

Day 2

  • 09:30 Lectures: Further topics, Tasks
  • 11:00 COFFEE
  • 11:30 Exercises: Orphaning, Tasks
  • 13:00 LUNCH
  • 14:00 Lecture: Performance
  • 15:00 TEA
  • 15:30 Lecture: Tips and Tricks
  • 16:15 Exercises: Finishing up/Consultancy
  • 17:00 CLOSE

Course Materials

Links to the Slides and exercise material for this course available here


Imperial College London: Room 402 in the EPSRC CDT space in the Central Library, South Kensington campus. Please note that the only access is from the 2nd floor lobby of the Sherfield building (building #20 on this map). Participants must use the side door that is located to the left of the cloakroom and follow the signs up to the 4th floor from there.


Please use the registration page to register for ARCHER courses.


If you have any questions please contact the ARCHER Helpdesk.