Software Technology

Programming Models and Runtimes

UPC++ and GASNet: Lightweight Communication and Global Address Space Support for Exascale Applications (the Pagoda Project)

Principal Investigators: Scott Baden, lead, Lawrence Berkeley National Laboratory (LBNL); Paul Hargrove, LBNL

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.