DOE OSTI · 1503669
UPC++ Specification v1.0, Draft 10
Abstract
UPC++ is a C++11 library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. We are revising the library under the auspices of the DOE’s Exascale Computing Project, to meet the needs of applications requiring PGAS support. UPC++ is intended for implementing elaborate distributed data structures where communication is irregular or fine-grained. The UPC++ interfaces for moving non-contiguous data and handling memories with different optimal access methods are composable and similar to those used in conventional C++. The UPC++ programmer can expect communication to run at close to hardware speeds. The key facilities in UPC++ are global pointers, that enable the programmer to express ownership information for improving locality, one-sided communication, both put/get and RPC, futures and continuations. Futures capture data readiness state, which is useful in making scheduling decisions, and continuations provide for completion handling via callbacks. Together, these enable the programmer to chain together a DAG of operations to execute asynchronously as high-latency dependencies become satisfied.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Bachan, J., Baden, S., Bonachea, Dan, Hargrove, P., Hofmeyr, S., Jacquelin, M., Kamil, A., Van Straalen, B.. 2019-03-15. UPC++ Specification v1.0, Draft 10. https://doi.org/10.2172/1503669
Cite the original work for its findings. Save a collection to share your selection of sources.