Threaded Programming

This is an extended version of Shared-Memory Programming with OpenMP, delivered as part of the CDT programme at Southampton. In addition to covering OpenMP programming, the course will cover optimisation of both single-threaded and multi-threaded code.


This three day course will fall into two parts:

Days 1 and 2 will cover the basics of OpenMP programming, including parallel regions, worksharing, synchronisation and tasks.

Day 3 will cover optimising code for performance, starting with single-threaded considerations and moving on to mutli-threaded issues. All three days of the course will consist of lectures and hands-on practical exercises.

This course is free to all academics.


Attendees should have a sound working knowledge of programming in either Fortran, C or C++.


Tuesday 24th March

  • 09:00 Lectures: Shared Memory Concepts; OpenMP Fundamentals; Parallel Regions
  • 11:00 Break
  • 11:30 Exercises: Hello World; Parallel regions
  • 13:00 Lunch
  • 14:00 Lectures: Work sharing; Synchronisation
  • 15:30 Break
  • 16:00 Exercises: Parallel loops; Synchronisation
  • 17:00 Close

Wednesday 25th March

  • 09:00 Lectures: Further topics; OpenMP Tasks
  • 11:00 Break
  • 11:30 Exercises: Synchronisation; Orphaning
  • 13:00 Lunch
  • 14:00 Lectures: Memory model; Other threading models
  • 15:30 Break
  • 16:00 Exercise: Tasks
  • 17:00 Close

Thursday 26th March

  • 09:00 Lectures: Computer architecture: processors, memory, parallel systems
  • 11:00 Break
  • 11:30 Lectures: Sequential optimisation techniques
  • 13:00 Lunch
  • 14:00 Lectures: Multithreaded optimisation
  • 15:30 Break
  • 16:00 Exercise: Multithreaded optimisation
  • 17:00 Close

Course Materials

Slides and exercise material for this course are available here.


The course will be held in Southampton


Please use the training registration page to register for ARCHER courses.


If you have any questions please contact the ARCHER Helpdesk.