Partitioned Global Address Space

tosh1 pts0 comments

Partitioned global address space - Wikipedia

Jump to content

Search

Search

Donate

Create account

Log in

Personal tools

Donate

Create account

Log in

Partitioned global address space

7 languages

Català<br>Deutsch<br>日本語<br>Qaraqalpaqsha<br>한국어<br>Русский<br>中文

Edit links

From Wikipedia, the free encyclopedia

Parallel programming model paradigm in computer science

In computer science, partitioned global address space (PGAS ) is a parallel programming model paradigm. PGAS is typified by communication operations involving a global memory address space abstraction that is logically partitioned, where a portion is local to each process, thread, or processing element.[1][2] The novelty of PGAS is that the portions of the shared memory space may have an affinity for a particular process, thereby exploiting locality of reference in order to improve performance. A PGAS memory model is featured in various parallel programming languages and libraries, including: Coarray Fortran, Unified Parallel C, Split-C, Fortress, Chapel, X10, UPC++, Coarray C++, Global Arrays, DASH and SHMEM. The PGAS paradigm is now an integrated part of the Fortran language, as of Fortran 2008 which standardized coarrays.

The various languages and libraries offering a PGAS memory model differ widely in other details, such as the base programming language and the mechanisms used to express parallelism. Many PGAS systems combine the advantages of a SPMD programming style for distributed memory systems (as employed by MPI) with the data referencing semantics of shared memory systems. In contrast to message passing, PGAS programming models frequently offer one-sided communication operations such as Remote Memory Access (RMA), whereby one processing element may directly access memory with affinity to a different (potentially remote) process, without explicit semantic involvement by the passive target process. PGAS offers more efficiency and scalability than traditional shared-memory approaches with a flat address space, because hardware-specific data locality can be explicitly exposed in the semantic partitioning of the address space.

A variant of the PGAS paradigm, asynchronous partitioned global address space (APGAS ) augments the programming model with facilities for both local and remote asynchronous task creation.[3] Two programming languages that use this model are Chapel and X10.

Examples<br>[edit]

Coarray Fortran[4][5] now an integrated part of the language as of Fortran 2008[6]

Unified Parallel C[7][8][9] an explicitly parallel SPMD dialect of the ISO C programming language

Chapel[10] a parallel language originally developed by Cray under the DARPA HPCS project

UPC++,[11] A C++ template library that provides PGAS communication operations designed to support high-performance computing on exascale supercomputers, including Remote Memory Access (RMA) and Remote Procedure Call (RPC)

Coarray C++[12] a C++ library developed by Cray, providing a close analog to Fortran coarray functionality

Global Arrays[13] a library supporting parallel scientific computing on distributed arrays

DASH [14] a C++ template library for distributed data structures with support for hierarchical locality

SHMEM a family of libraries supporting parallel scientific computing on distributed arrays

X10[15] a parallel language developed by IBM under the DARPA HPCS project

Fortress a parallel language developed by Sun Microsystems under the DARPA HPCS project

Titanium [16][17] an explicitly parallel dialect of Java developed at UC Berkeley to support scientific high-performance computing on large-scale multiprocessors

Split-C[18] a parallel extension of the C programming language that supports efficient access to a global address space

The Adapteva Epiphany architecture is a manycore network on a chip processor with scratchpad memory addressable between cores.

See also<br>[edit]

Concurrency

Non-blocking synchronization

Non-uniform memory access (NUMA)

Cache-only memory architecture (COMA)

External links<br>[edit]

An Introduction to the Partitioned Global Address Space Model

Programming in the Partitioned Global Address Space Model Archived 2010-06-12 at the Wayback Machine (2003)

GASNet Communication System - provides a software infrastructure for PGAS languages over high-performance networks[19]

References<br>[edit]

^ Almasi, George. "PGAS (Partitioned Global Address Space) Languages.", Encyclopedia of Parallel Computing, Springer, (2011): 1539-1545. https://doi.org/10.1007/978-0-387-09766-4_210

^ Cristian Coarfă; Yuri Dotsenko; John Mellor-Crummey, "An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C"

^ Tim Stitt, "An Introduction to the Partitioned Global Address Space (PGAS) Programming Model"

^ Numrich, R.W., Reid, J., Co-array Fortran for parallel programming. ACM SIGPLAN Fortran Forum 17(2), 1–31 (1998).

^ J. Reid: Coarrays in the Next Fortran Standard. SIGPLAN Fortran Forum 29(2), 10–27 (July 2010)

^ GCC wiki,...

parallel space global address pgas programming

Related Articles