The Pagoda project is developing a programming system to support HPC application development using the Partitioned Global Address Space (PGAS) model. The first component is GASNet-EX, a portable, high-performance, global-address-space communication library. The second component is UPC++, a C++11 template library. Together, these libraries enable agile, lightweight communication such as arises in irregular applications, libraries, and frameworks running on exascale systems.
GASNet-EX leverages hardware support to implement communication primitives. UPC++ provides high-level productivity abstractions appropriate for PGAS programming such as: remote procedure call, locality-aware APIs for user-defined distributed objects, and robust support for asynchronous execution to hide communication costs. It also includes one-sided communication as a thin wrapper over GASNet-EX, delivering efficient performance.