You are here: Home Research New programming models PGAS languages

PGAS languages

In the PGAS languages, the memory distributed over many computing nodes is seen as one global memory, that can be accessed by all the processes without requiring explicit communication like in MPI. Hidden communication is based on one-sided communication which performs efficiently on modern networks.


Global memory in PGAS languages

PGAS languages introduce the concept of a global memory space that is partitioned between the participating threads (like ranks in MPI), with  each process able to access both local and remote memory. Access to local memory is via standard sequential program mechanisms, and access to remote memory is directly supported by the new features of the language and is usually done in a “single-sided” manner (unlike the double-sided of MPI).

Partitioned Memory in PGAS languagesThe single-sided programming model is more natural than the MPI alternative for some algorithms, and it is also a good solution for modern networks which support Remote Direct Memory Access (RDMA).


PDC research in PGAS languages focuses in two languages:

  • UPC is an extension of the C ISO . Instructions on how to use compile and run UPC on Lindgren can be found here.
  • Coarray Fortran is part of the Fortran 2008 standard. Instructions on how to use compile and run Coarray Fortran on Lindgren can be found here


For more informations about PGAS languages at PDC, please contact Stefano Markidis.