UPC++ Programmer’s Guide, v1.0-2018.3.0
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 thread of execution (referred to as a rank, a term borrowed from MPI) 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 ranks. 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.
- 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); USDOE National Nuclear Security Administration (NNSA)
- OSTI Identifier:
- 1430693
- DOE Contract Number:
- AC02-05CH11231
- Resource Type:
- Technical Report
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING
Citation Formats
Bachan, J., Baden, S., Bonachea, Dan, Hargrove, Paul H., Hofmeyr, S., Ibrahim, Khaled, Jacquelin, M., Kamil, A., and van Straalen, B.. UPC++ Programmer’s Guide, v1.0-2018.3.0. United States: N. p., 2018.
Web. doi:10.2172/1430693.
Bachan, J., Baden, S., Bonachea, Dan, Hargrove, Paul H., Hofmeyr, S., Ibrahim, Khaled, Jacquelin, M., Kamil, A., & van Straalen, B.. UPC++ Programmer’s Guide, v1.0-2018.3.0. United States. https://doi.org/10.2172/1430693
Bachan, J., Baden, S., Bonachea, Dan, Hargrove, Paul H., Hofmeyr, S., Ibrahim, Khaled, Jacquelin, M., Kamil, A., and van Straalen, B.. 2018.
"UPC++ Programmer’s Guide, v1.0-2018.3.0". United States. https://doi.org/10.2172/1430693. https://www.osti.gov/servlets/purl/1430693.
@article{osti_1430693,
title = {UPC++ Programmer’s Guide, v1.0-2018.3.0},
author = {Bachan, J. and Baden, S. and Bonachea, Dan and Hargrove, Paul H. and Hofmeyr, S. and Ibrahim, Khaled and Jacquelin, M. and Kamil, A. and van Straalen, B.},
abstractNote = {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 thread of execution (referred to as a rank, a term borrowed from MPI) 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 ranks. 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.},
doi = {10.2172/1430693},
url = {https://www.osti.gov/biblio/1430693},
journal = {},
number = ,
volume = ,
place = {United States},
year = {2018},
month = {3}
}