October 6-7 2016, Fraunhofer-Zentrum, E4.09

Course »Efficient Parallel Programming with GASPI« (2 days)

Further training in cooperation with TU-Nachwuchsring.

Course »Efficient Parallel Programming with GASPI« 

October, 6-7, 2016, 9 am to 5 pm

Fraunhofer-Zentrum, Fraunhofer-Platz 1, Kaiserslautern, E4.09

GPI-2 is the only implementation of the GASPI standard. GPI-2 has been invented and designed at Fraunhofer ITWM and is being used in academic and industrial HPC simulation applications. The HPC programmers of tomorrow will have to write codes, which are able to deal with systems hundreds of times larger than the top supercomputers of today.

In this Tutorial we present an asynchronous dataflow programming model for Partitioned Global Address Spaces (PGAS). Interoperability with the current programming model standard MPI and threading models will be high-lighted during the course. However no previous knowledge of MPI is assumed. GASPI, which stands for Global Address Space Programming Interface, is a partitioned global address space (PGAS) API.

The GASPI API is designed as a C/C++/Fortran library and focused on three key objectives: scalability, flexibility and fault tolerance. In order to achieve its significantly improved scaling behaviour GASPI aims at asynchronous dataflow with remote completion, rather than bulk-synchronous message exchanges. GASPI follows a single/multiple program multiple data (SPMD/MPMD) approach and offers a small, yet powerful API (also see www.gaspi.de).

The Tutorial gives an overview over the key concepts of elements of GASPI, such as synchronization primitives, synchronous and asynchronous collectives, fine grained control over one-sided read and write communication primitives, global atomics, passive receives, communication groups and communication queues. GASPI aims at multi-threaded execution, offers a thread-safe API and can be used in combination with all current threading models (OpenMP, Pthreads, MCTP, and others). GASPI provides its partitioned global address space in the form of configurable memory segments and features support for heterogeneous memory architectures. All GASPI segments can directly read and write from/to each other. By spawning a GASPI segment across e.g. the main memory of a distributed Xeon Phi system and a segment across the memory of the corresponding x86 host, the GASPI API hence can provide a consistent and cohesive view of this hybrid distributed memory architecture. The flexibility of the configurable GASPI segments also allows developers to both leverage multiple memory models within a single application and/or to globally tightly couple different applications (e.g. multi-physics solvers). GASPI is failure tolerant and allows for a dynamic (shrinking or growing) node set. All non-local procedures feature timeout parameters and provide a well defined exit status.

The Tutorial will provide a hands-on introduction (in C and Fortran) which features examples and use-cases for all its key concepts (segment creation, synchronization primitives, read and write communication primitives, global atomics, passive receives, collectives, communication groups and communication queues). Case studies which demonstrate the various aspects of the GASPI API and application categories that can take advantage of these aspects are identified. This Tutorial also includes a discussion of the current GPI-2 release, the first release which supports the GASPI standard. Benchmark results on different platforms are discussed. Tools for programming with GASPI/GPI such as profiling tools are presented in a "howto" section.

Group size
max. 12

English (except if all participants speak German)

Personal laptop with ssh client is necessary!

Dr. Mirko Rahn, Fraunhofer ITWM
Dr. Daniel Grünewald, Fraunhofer ITWM

Participation is limited and selection is determined by the organizers. We therefore ask you to register by September 15, 2016. After the registration deadline expires, you will receive a confirmation email. There is no registration fee.

Registration is available here.

Any questions about this workshop or how to register, please call 0631-31600-4424 or e-mail info@applied-system-modeling.de. We will gladly assist you with any questions you may have.