Account creation is limited to PRACE staff, but no account should be necessary to register for an event. If you are having trouble with registering to an event, please send an email to
15-17 July 2015
Europe/London timezone

The world’s largest supercomputers are used almost exclusively to run applications which are parallelised using Message Passing. The course covers all the basic knowledge required to write parallel programs using this programming model, and is directly applicable to almost every parallel computer architecture.

Parallel programming by definition involves co-operation between processes to solve a common task. The programmer has to define the tasks that will be executed by the processors, and also how these tasks are to synchronise and exchange data with one another. In the message-passing model the tasks are separate processes that communicate and synchronise by explicitly sending each other messages. All these parallel operations are performed via calls to some message-passing interface that is entirely responsible for interfacing with the physical communication network linking the actual processors together. This course uses the de facto standard for message passing, the Message Passing Interface (MPI). It covers point-to-point communication, non-blocking operations, derived datatypes, virtual topologies, collective communication and general design issues.

The course is normally delivered in an intensive three-day format using EPCC’s dedicated training facilities. It is taught using a variety of methods including formal lectures, practical exercises, programming examples and informal tutorial discussions. This enables lecture material to be supported by the tutored practical sessions in order to reinforce the key concepts.

Intended Learning Outcomes

On completion of this course students should be able to: Understand the message-passing model in detail. Implement standard message-passing algorithms in MPI. Debug simple MPI codes. Measure and comment on the performance of MPI codes. Design and implement efficient parallel programs to solve regular-grid problems.

Pre-requisite Programming Languages:

Fortran, C or C++. It is not possible to do the exercises in Java.

Starts 15 Jul 2015 09:30
Ends 17 Jul 2015 17:30
The University of Edinburgh James Clerk Maxwell Building Mayfield Road Edinburgh EH9 3JZ

This course is part-funded by the PRACE project and is free to all. Please register using the online form. If you have any questions, please consult the course forum page or contact

Information about how to find the James Clerk Maxwell Building (JCMB) can be found on the School of Physics and Astronomy website.

Note that parking on the King's Buildings campus is by permit only, and that parking just outside on Mayfield Road is restricted before 09:15 and after 16:30 - and cars will be removed (with a hefty fee payable to get your car back) if parked there during the restricted times. Unrestricted free parking is available on nearby Hallhead Road, Ross Road, Blackbarony Road and Gordon Terrace to the east of the campus, and along the north side of the campus on West Mains Road.

A number of B&Bs and hotels can be found approximately 10 minutes' walk from EPCC, including:
* Smiths' Guest House, 77 Mayfield Road, Edinburgh EH9 3AA
* Mayfield Lodge Guest House, 75 Mayfield Road, Edinburgh EH9 3AA
* Highfield Guest House, 83 Mayfield Road, Edinburgh EH9 3AE
* Lauderville Guest House, 52 Mayfield Road, Edinburgh EH9 2NH
* Glenisla Hotel, 12 Lygon Road, Edinburgh EH16 5QB
* Glendale House Guest House, 5 Lady Road, Edinburgh EH16 5PA
There is also the Travelodge Cameron Toll, 43 Craigmillar Park, Edinburgh EH16 5PD. Note that the room price does not include breakfast.