Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Combining Distributed and Shared Memory Models: Approach and Evolution of the Global Arrays Toolkit

Conference ·
OSTI ID:15004344

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.

Research Organization:
Pacific Northwest National Laboratory (PNNL), Richland, WA (US)
Sponsoring Organization:
USDOE
DOE Contract Number:
AC06-76RL01830
OSTI ID:
15004344
Report Number(s):
PNNL-SA-37535; KP1301030; KJ0101030; KJ0101030
Country of Publication:
United States
Language:
English

Similar Records

Global Arrays Parallel Programming Toolkit
Book · Fri Dec 31 23:00:00 EST 2010 · OSTI ID:1182356

UPC++ v1.0 Programmer’s Guide (Revision 2022.3.0)
Technical Report · Wed Mar 30 00:00:00 EDT 2022 · OSTI ID:1856516

UPC++ v1.0 Programmer’s Guide, Revision 2022.9.0
Technical Report · Thu Sep 29 00:00:00 EDT 2022 · OSTI ID:1890998