Both shared memory and distributed memory models have advantages and shortcomings. Shared memory model is much easier to use but it ignores data locality/placement. Given the hierarchical nature of the memory subsystems in the modern computers this characteristic might have a negative impact on performance and scalability. Various techniques, such as code restructuring to increase data reuse and introducing blocking in data accesses, can address the problem and yield performance competitive with message passing [Singh], however at the cost of compromising the ease of use feature. Distributed memory models such as message passing or one-sided communication offer performance and scalability but they compromise the ease-of-use. In this context, the message-passing model is sometimes referred to as ?assembly programming for the scientific computing?. The Global Arrays toolkit [GA1, GA2] attempts to offer the best features of both models. It implements a shared-memory programming model in which data locality is managed explicitly by the programmer. This management is achieved by explicit calls to functions that transfer data between a global address space (a distributed array) and local storage. In this respect, the GA model has similarities to the distributed shared-memory models that provide an explicit acquire/release protocol. However, the GA model acknowledges that remote data is slower to access than local data and allows data locality to be explicitly specified and hence managed. The GA model exposes to the programmer the hierarchical memory of modern high-performance computer systems, and by recognizing the communication overhead for remote data transfer, it promotes data reuse and locality of reference. This paper describes the characteristics of the Global Arrays programming model, capabilities of the toolkit, and discusses its evolution.
Revised: August 26, 2003 |
Published: July 29, 2002
Citation
Nieplocha J., R.J. Harrison, M. Kumar, B.J. Palmer, V. Tipparaju, and H.E. Trease. 2002.Combining Distributed and Shared Memory Models: Approach and Evolution of the Global Arrays Toolkit. In Workshop on Performance Optimization for High-Level Languages and Libraries in conjunction with the16th Annual ACM International Conference on Supercomputing (ICS'02). No Publisher Listed):(Web publication.PNNL-SA-37535.