Programming using the Partitioned Global Address Space (PGAS) Model

Tarek El-Ghazawi, The George Washington University
Vijay Saraswat, IBM Research Division

The Partitioned Global Address Space (PGAS) programming model provides ease-of-use through a global shared address space while emphasizing performance through locality awareness. Over the past several years, the PGAS model has been gaining rising attention. A number of PGAS languages are now ubiquitous, such as UPC which runs on most high-performance computers. The DARPA HPCS program has also resulted in new promising PGAS languages, such as X10.

In this tutorial we will discuss the fundamentals of parallel programming models and will focus on the concepts and issues associated with the PGAS model. We will follow with an in-depth introduction of two PGAS languages, UPC and X10. We will start with basic concepts, syntax and semantics and will include a range of issues from data distribution and locality exploitation to advanced topics such as synchronization, memory consistency and performance optimizations. Application examples will be also shared.