Please note: This course takes place in Warwick.
In some applications, the overheads associated with the fundamentally
two-sided (send and receive) nature of MPI message-passing can
adversely affect performance. This is of particular concern for
scaling up to extremely large systems. There is a renewed interest in
simpler single-sided communications models where data can be
written/read directly to/from remote processes.
This two-day course covers two single-sided Partitioned Global Address
Space (PGAS) libraries: OpenSHMEM http://www.openshmem.org/ on day 1,
and GASPI http://www.gaspi.de/ on day 2.
Hands-on practical sessions will play a central part in the course,
illustrating key issues such as the need for appropriate
synchronisation to ensure program correctness. All the exercises can
be undertaken on ARCHER using C, C++ or Fortran. The OpenSHMEM
material will be delivered by the ARCHER CSE team; the GASPI material
will be delivered by members of the GASPI development team.
OpenSHMEM
OpenSHMEM is an effort to create a standardised API specification for
parallel programming in the PGAS space. Different versions of SHMEM
libraries date back almost two decades and there is substantial
experience of using them in real applications codes. OpenSHMEM is
expected to perform well on ARCHER as it maps very closely to the
underlying network hardware.
GASPI
The Global Address Space Programming Interface GASPI is an
asynchronous data flow model for PGAS, an alternative to the
programming model of MPI. It is an API designed as a C/C++/Fortran
library and focused on three key objectives: scalability, flexibility
and fault tolerance. In order to achieve its much improved scaling
behaviour, GASPI aims at asynchronous dataflow with remote completion,
rather than bulk-synchronous message exchanges. GASPI has been
successfully used in academic and industrial simulation applications.
Timetable
(Draft timetable - some details may change but start/end times will not)
Monday 27th March
09:00 - 09:30 : Registration
09:30 - 10:45 : Introduction to ARCHER
10:45 - 11:15 : Practical: Compiling and running simple OpenSHMEM example
11:15 - 11:45 : Break
11:45 - 12:30 : Overview of PGAS approaches
12:30 - 13:00 : Practical: comparison of PGAS and Message-Passing parallelisation
13:00 - 14:00 : Lunch
14:00 - 14:45 : OpenSHMEM: basic features
14:45 - 15:30 : Practical: OpenSHMEM example 1
15:30 - 16:00 : Break
16:00 - 16:45 : OpenSHMEM: advanced features
16:45 - 17:30 : Practical: OpenSHMEM example (continued)
Tuesday 28th March
09:30 - 11:00 : Introduction to GASPI
11:00 - 11:30 : Break
11:30 - 13:00 : GASPI examples
13:00 - 14:00 : Lunch
14:00 - 15:30 : Consultancy session / continue OpenSHMEM or GASPI practicals
15:30 - 16:00 : Break
16:00 - 17:30 : Consultancy / Finish practicals