Parallel Programming with OpenMP

Parallel Programming with OpenMP

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?

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.

Posted by Alvaro Perez