Skip to main content
eScholarship
Open Access Publications from the University of California

The UPC++ PGAS library for exascale computing

  • Author(s): Bachan, J
  • Bonachea, D
  • Hargrove, PH
  • Hofmeyr, S
  • Jacquelin, M
  • Kamil, A
  • Van Straalen, B
  • Baden, SB
  • Editor(s): Morris, Karla
  • Iancu, Costin
  • Filippone, Salvatore
  • Chamberlain, Bradford L
  • Long, Bill
  • et al.
Abstract

We describe UPC++ V1.0, a C++11 library that supports APGAS programming. UPC++ targets distributed data structures where communication is irregular or fine-grained. The key abstractions are global pointers, asynchronous programming via RPC, and futures. Global pointers incorporate ownership information useful in optimizing for locality. Futures capture data readiness state, are useful for scheduling and also enable the programmer to chain operations to execute asynchronously as high-latency dependencies become satisfied, via continuations. The interfaces for moving non-contiguous data and handling memories with different optimal access methods are composable and closely resemble those used in modern C++. Communication in UPC++ runs at close to hardware speeds by utilizing the low-overhead GASNet-EX communication library.

Main Content
Current View