Paving the way for Distributed Non-Blocking Algorithms and Data Structures in the Partitioned Global Address Space
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.
READ FULL TEXT