skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: UPC++: A PGAS extension for C++

Conference ·

Partitioned Global Address Space (PGAS) languages are convenient for expressing algorithms with large, random-access data, and they have proven to provide high performance and scalability through lightweight one-sided communication and locality control. While very convenient for moving data around the system, PGAS languages have taken different views on the model of computation, with the static Single Program Multiple Data (SPMD) model providing the best scalability. In this paper we present UPC++, a PGAS extension for C++ that has three main objectives: 1) to provide an object-oriented PGAS programming model in the context of the popular C++ language, 2) to add useful parallel programming idioms unavailable in UPC, such as asynchronous remote function invocation and multidimensional arrays, to support complex scientific applications, 3) to offer an easy on-ramp to PGAS programming through interoperability with other existing parallel programming systems (e.g., MPI, OpenMP, CUDA). We implement UPC++ with a 'compiler-free' approach using C++ templates and runtime libraries. We borrow heavily from previous PGAS languages and describe the design decisions that led to this particular set of language features, providing significantly more expressiveness than UPC with very similar performance characteristics. We evaluate the programmability and performance of UPC++ using five benchmarks on two representative supercomputers, demonstrating that UPC++ can deliver excellent performance at large scale up to 32K cores while offering PGAS productivity features to C++ applications.

Research Organization:
Lawrence Berkeley National Lab. (LBNL), Berkeley, CA (United States)
Sponsoring Organization:
USDOE Office of Science (SC)
DOE Contract Number:
AC02-05CH11231
OSTI ID:
1523898
Resource Relation:
Conference: Proceedings of the International Parallel and Distributed Processing Symposium, IPDPS
Country of Publication:
United States
Language:
English

Similar Records

UPC++
Software · Thu May 01 00:00:00 EDT 2014 · OSTI ID:1523898

UPC++ v1.0 Programmer’s Guide, Revision 2023.3.0
Technical Report · Thu Mar 30 00:00:00 EDT 2023 · OSTI ID:1523898

UPC++ v1.0 Programmer’s Guide, Revision 2022.9.0
Technical Report · Thu Sep 29 00:00:00 EDT 2022 · OSTI ID:1523898

Related Subjects