A Theory of Partitioned Global Address Spaces
Georgel Calin, Egor Derevenetc, Rupak Majumdar, Roland Meyer

TL;DR
This paper develops a formal model for PGAS programming, introduces a robustness criterion for correct synchronization, and presents an algorithm to verify robustness, ensuring reliable parallel program execution.
Contribution
It provides the first formal semantics for PGAS APIs, defines robustness as a synchronization correctness criterion, and offers a PSpace-complete algorithm for robustness verification.
Findings
Robustness corresponds to acyclicity of a happens-before relation.
The robustness checking algorithm is based on automaton emptiness checks.
The robustness problem for PGAS is PSpace-complete.
Abstract
Partitioned global address space (PGAS) is a parallel programming model for the development of applications on clusters. It provides a global address space partitioned among the cluster nodes, and is supported in programming languages like C, C++, and Fortran by means of APIs. In this paper we provide a formal model for the semantics of single instruction, multiple data programs using PGAS APIs. Our model reflects the main features of popular real-world APIs such as SHMEM, ARMCI, GASNet, GPI, and GASPI. A key feature of PGAS is the support for one-sided communication: a node may directly read and write the memory located at a remote node, without explicit synchronization with the processes running on the remote side. One-sided communication increases performance by decoupling process synchronization from data transfer, but requires the programmer to reason about appropriate…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Interconnection Networks and Systems · Petri Nets in System Modeling
