The Partitioned Global Address Space (PGAS) paradigm is a programming model for parallel computing that combines ease of use with the possibility to program distributed memory systems. Programming with PGAS is straightforward resembling the user-friendliness of OpenMP that is a standard for shared memory parallelization. With PGAS parallelism is part of the programming language itself, any processor can directly address memory/data on any other processor, hence parallelism can be expressed more easily as compared to library based approaches such as Message Passing Interface (MPI).
In this course I will describe the PGAS programming model and discuss the two dominant PGAS languages (Unified Parallel C (UPC) and Co-array Fortran (CAF) being PGAS extensions to C and Fortran, respectively). Furthermore, I investigate the ease of use as well as the performance of UPC for some problems that have been tackled during my work on the VSC School Project "High-resolution numerical schemes for hyperbolic conservation laws, and their performance on modern HPC architectures".
The goal of this course is to provide participants with an idea how parallelism is expressed in PGAS languages as well as to help code developers decide if PGAS is an option to consider.
This course is organized by the Vienna Scientific Cluster (VSC), TU Wien in cooperation with the High-Performance Computing-Center Stuttgart (HLRS).
See course web-page in Vienna