The partitioned global address space has bridged the gap between shared and distributed memory, and with this bridge comes the ability to adapt shared memory concepts, such as non-blocking programming, to distributed systems such as supercomputers. To enable non-blocking algorithms, we present ways to perform scalable atomic operations on objects in remote memory via remote direct memory address and pointer compression. As a solution to the problem of concurrent-safe reclamation of memory in a distributed system, we adapt Epoch-Based Memory Reclamation to distributed memory and implement it in such a way to support global-view programming. This construct is designed and implemented for the Chapel programming language, but can be adapted and generalized to work on other languages and libraries.
@article{arxiv.2002.03068,
title = {Paving the way for Distributed Non-Blocking Algorithms and Data Structures in the Partitioned Global Address Space},
author = {Garvit Dewan and Louis Jenkins},
journal= {arXiv preprint arXiv:2002.03068},
year = {2020}
}