Experimentations and performance analysis in Sects. 4 and 5 were analyzed from the runtime’s perspective. Those analysis are performed to understand the multithreaded features, that would allow the OpenSHMEM libraries to obtain the performance as close to the underlying communication layers through effecient resource mapping. In future work, we will study more multithreaded OpenSH- MEM applications using the Thread-Safe and Contexts-Domains features and evaluate these proposals more from a user’s perspective. We will also study the different usage scenarios, with the suitability of features from particular proposal when compared to the other.
In this work, we presented an evaluation of two features that have been proposed as extensions to OpenSHMEM: “Thread-Safe” and “Contexts-Domains”. The Thread-Safe feature has been implemented in Cray SHMEM and has been in released versions for some time. A prototype of the Contexts-Domains feature has been implemented in an unreleased version of Cray SHMEM.
Evaluation of different designs with various performance measurements allowed us to make more optimal design decisions. Limited network resources requires some interaction between user and library to make optimal use of these resources. The Thread-Safe feature provides a fairly simple way to increase concurrency of SHMEM operations in multithreaded SHMEM programs. The Contexts-Domains feature provides a different and somewhat more complicated way to increase concurrency of SHMEM operations in multithreaded SHMEM programs but with potential for greater concurrency than with thread-safe. Contexts-Domains feature exposes SHMEM users to a new layer of network properties and provide them with explicit control for resource allocation. A right level of abstraction is needed to avoid delegating the complete network resource allocation functionality to users.
These two features are not incompatible when used in threaded regions of a SHMEM application. Calls to Thread-Safe routines can be inserted in code regions that can benefit from it and calls to Contexts-Domains routines can be inserted in other code regions. In future work, we will study more on the interoperability of these two features.
Acknowledgments. The authors wish to acknowledge Cray Inc., employees who worked on design and implementation of thread-safe extensions to OpenSHMEM: Monika ten Bruggencate, Kim McMahon, and Steve Oyanagi. Special thanks to James Dinan (Intel) for all discussions on Context proposal. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of Cray Inc.