| Monday 15th February 2010 | HPC Fundamentals |
| Monday 22nd February 2010 | Shared-variables programming with OpenMP |
| Monday 1st March 2010 | Message-passing programming with MPI |
To be held in the University of Edinburgh, the EPCC Training Room (JCMB 3305), James Clerk Maxwell Building, Kings Buildings, Mayfield Road, Edinburgh EH9 3JZ.
Description: This three-day course gives an introduction to the basic concepts and programming techniques relevant to applied HPC and parallel computing.
The first session will cover the fundamentals of modern HPC architectures and the two major parallel programming models: shared variables and message passing. Practical sessions will involve running existing parallel programs to investigate issues such as performance and scalability.
The second session will cover OpenMP, the language most commonly used in computational science for shared-variables parallelism. OpenMP extends Fortran, C and C++, providing extensive support for loop-based and task-based parallelism. The practical sessions involve parallelising simple example codes to illustrate the basic OpenMP concepts and constructs.
The third session covers MPI, which is by far the most widely used library for message-passing parallelism. MPI can be called from Fortran, C and C++, and provides support for point-to-point and collective operations. The practical sessions involve writing simple parallel codes from scratch, to illustrate how to use the basic MPI operations in practice.
Aimed at: This is for all NAIS funded researchers but it is open on a space-available basis to researchers in any of the involved NAIS partner departments (Mathematics at Heriot-Watt, Edinburgh, Strathclyde, Informatics at Edinburgh, and other associated groups). Registration is required.
Prerequisites: Although no prior experience of HPC or parallel programming is assumed, all attendees are required to be familiar with programming in one of Fortran, C or C++.
Registration: This is now closed.
Timetable:
Day 1: HPC Fundamentals (Monday 15 February 2010)
09:30 Introduction to Parallel Computing
10:30 CFD Practical
11:00 COFFEE - JCMB 2252
11:30 CFD Practical (contd)
11:45 HPC Hardware
12:15 HPC Architectures
13:00 LUNCH - JCMB 2252
14:00 Message-Passing Concepts
14:30 Practical: Traffic (MP)
15:00 Shared-Variables Concepts
15:30 TEA - JCMB 2252
16:00 Practical: Traffic (SV)
16:30 Comparison of models
17:00 System software
17:30 CLOSE
Day 2: Shared-Memory Programming with OpenMP (Monday 22 February 2010)
09:30 Introduction to OpenMP
10:15 Practical Session 1
10:45 COFFEE - JCMB 2252
11:15 Parallel regions
12:00 Practical Session 2
13:00 LUNCH - JCMB 4309
14:00 Work sharing
14:45 Practical Session 3
15:15 TEA - JCMB 2252
15:45 Synchronisation
16:15 Practical Session 4
17:30 CLOSE
Day 3: Message-Passing Programming with MPI (Monday 1 March 2010)
09:30 Message-Passing Concepts
10:00 MPI Programs
10:30 Practical: Hello world
11:00 COFFEE - JCMB 2252
11:30 Point-to-point communications
12:00 Practical: Pi
13:00 LUNCH - JCMB 4309
14:00 Practical: Pi (contd)
14:15 Communicators, tags and modes
15:00 Non-blocking communications
15:30 TEA - JCMB 2252
16:00 Practical: Message round a ring
17:00 Collective communications
17:30 CLOSE