shmem4py brings the Partitioned Global Address Space (PGAS) programming model to Python by exposing the functionality of the OpenSHMEM Application Programming Interface (API) specification. The feature set includes one-sided communication, shared memory access, atomic memory operations, and collective operations. The Python implementation of shmem4py emphasizes using NumPy arrays, providing convenient access to the symmetric memory allocations central to OpenSHMEM’s programming model. Thanks to Python’s versatility and OpenSHMEM implementations’ focus on performance, shmem4py offers a seamless experience on a variety of hardware, from laptops to supercomputers, and for a wide range of applications and users. shmem4py API grounds in OpenSHMEM 1.5 specification; however, it also supports legacy 1.4 implementations.
Bibliographical noteKAUST Repository Item: Exported on 2023-07-24
Acknowledgements: The authors thank the KAUST Supercomputing Laboratory for their computing resources.