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

UPC++ v1.0 Programmer’s Guide, Revision 2019.9.0

  • Author(s): Bachan, J
  • Baden, S
  • Bonachea, Dan
  • Hargrove, P
  • Hofmeyr, S
  • Jacquelin, M
  • Kamil, A
  • Van Straalen, B
  • et al.
Abstract

UPC++ is a C++11 library that provides Partitioned Global Address Space (PGAS) programming. It is designed for writing parallel programs that run efficiently and scale well on distributed-memory parallel computers. The PGAS model is single program, multiple-data (SPMD), with each separate constituent process having access to local memory as it would in C++. However, PGAS also provides access to a global address space, which is allocated in shared segments that are distributed over the processes. UPC++ provides numerous methods for accessing and using global memory. In UPC++, all operations that access remote memory are explicit, which encourages programmers to be aware of the cost of communication and data movement. Moreover, all remote-memory access operations are by default asynchronous, to enable programmers to write code that scales well even on hundreds of thousands of cores.

Main Content
Current View