Partitioned global address space


In computer science, a partitioned global address space is a parallel programming model. It assumes a global memory address space that is logically partitioned and a portion of it is local to each process, thread, or processing element. 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. The PGAS model is the basis of Coarray Fortran, Unified Parallel C, , Fortress, Chapel, X10, , , Global Arrays, and SHMEM. In standard Fortran, this model is now an integrated part of the language. PGAS attempts to combine the advantages of a SPMD programming style for distributed memory systems with the data referencing semantics of shared memory systems. This is more realistic than the traditional shared memory approach of one flat address space, because hardware-specific data locality can be modeled in the partitioning of the address space.
A variant of the PGAS model, asynchronous partitioned global address space permits both local and remote asynchronous task creation. Two programming languages that use this model are Chapel and X10.

Examples

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