Monday, February 22, 2010
University of Edinburgh, the EPCC Training Room (JCMB 3305), James Clerk Maxwell Building, Kings Buildings, Mayfield Road, Edinburgh EH9 3JZ.
HPC Training Schedule

Monday 15th February 2010                        

HPC Fundamentals

Monday 22nd February 2010

Shared-variables programming with OpenMP

Monday 1st March 2010

Message-passing programming with MPI


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.

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