Unix Support

Parallel Programming: Introduction to OpenMP

This is an introduction to using OpenMP for writing parallel programs to run on multi-CPU (SMP) systems, largely for the purposes of "high-performance computing". It will cover all of the principles of OpenMP, and teach the use of all of the basic facilities of OpenMP, so that attendees will be able to write serious programs using it and update most of those that they get from other people. It covers Fortran, C and, to some extent, C++.

All examples are given in Fortran 90 and C, and attendees can use whichever of these they prefer for the practicals, or even use the C subset of C++.

The first three lectures cover most of the fundamentals of using OpenMP in real programs and programming in SIMD mode - Single Instruction, Multiple Data:

1: Background and Principles (also in the form of a Handout for the MPhil )

2: Basics and Simple SIMD (also in the form of a Handout for the MPhil )

3: More Syntax and SIMD (also in the form of a Handout for the MPhil )

The next two cover slightly more advanced topics, mainly SPMD mode - Single Program, Multiple Data:

04: Simple SPMD etc. (also in the form of a Handout for the MPhil )

05: Synchronisation (also in the form of a Handout for the MPhil )

The next two are confusing but absolutely critical information, needed to avoid serious problems, and some more advanced features that some people may want to use:

06: Critical Guidelines (also in the form of a Handout for the MPhil )

07: Intermediate OpenMP (also in the form of a Handout for the MPhil )

Auxiliary Material

These will be provided when available.

Practical exercises to use the facilities taught

Programs and data used in the practicals

Specimen answers to the exercises in Fortran 90 and C

The title of this document is: Parallel Programming: Introduction to OpenMP
URL: http://www-uxsup.csx.cam.ac.uk/courses/moved.OpenMP/index.html