News and Blog

EPSRC CDT in Next Generation Computational Modelling

Parallel Programming with OpenMP

The Archer Supercomputer managed by the EPCC at the University of Edinburgh

Dr Mark Bull, researcher in the Edinburgh Parallel Computing Centre (EPCC), ran a 3 day workshop on parallel programming using OpenMP. The event was open to all the scientific community, with 30 participants coming from a number of Universities, such as Manchester, Oxford, London and Tanzania.

The course started by explaining some basic shared-memory concepts, as computer memory architecture and threaded programming. It then moved on to some OpenMP specifics: parallel regions, schedules, critical regions, etc. The final day covered slightly broader topics ranging from computer architecture to sequential optimisation and multi-threaded optimisation. The course was structured as a combination of lectures and hands-in exercises, there was plenty of opportunity to ask questions to the presenter or to the two demonstrators.

OpenMP is an API that supports multi-platform shared memory processing programming in C, C++ and Fortran. Its simplest use could be just parallelising a for loop into different cores (threads), where one needs to be careful about which variables are shared or private, and synchronisation issues among threads: are different threads updating the value of a variable at the same time?

Hello World snippet from the hands-in exercisespelican

If you are interested in attending this course or similar courses it is run multiple times a year by the EPCC, you can click here in order to browse upcoming courses provided by the EPCC team that manage Archer.