UPC++ v1.0 Specification, Revision 2022.9.0
Abstract
UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.
- Authors:
-
- Lawrence Berkeley National Lab. (LBNL), Berkeley, CA (United States)
- Publication Date:
- Research Org.:
- Lawrence Berkeley National Lab. (LBNL), Berkeley, CA (United States)
- Sponsoring Org.:
- USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR)
- OSTI Identifier:
- 1890997
- DOE Contract Number:
- AC02-05CH11231
- Resource Type:
- Technical Report
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING
Citation Formats
Bonachea, Dan, and Kamil, Amir. UPC++ v1.0 Specification, Revision 2022.9.0. United States: N. p., 2022.
Web. doi:10.25344/S4M59P.
Bonachea, Dan, & Kamil, Amir. UPC++ v1.0 Specification, Revision 2022.9.0. United States. https://doi.org/10.25344/S4M59P
Bonachea, Dan, and Kamil, Amir. 2022.
"UPC++ v1.0 Specification, Revision 2022.9.0". United States. https://doi.org/10.25344/S4M59P. https://www.osti.gov/servlets/purl/1890997.
@article{osti_1890997,
title = {UPC++ v1.0 Specification, Revision 2022.9.0},
author = {Bonachea, Dan and Kamil, Amir},
abstractNote = {UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.},
doi = {10.25344/S4M59P},
url = {https://www.osti.gov/biblio/1890997},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Fri Sep 30 00:00:00 EDT 2022},
month = {Fri Sep 30 00:00:00 EDT 2022}
}