6533b82ffe1ef96bd12959ac

RESEARCH PRODUCT

Unified Parallel C++

Moritz SchlarbJorge González-domínguezChristian HundtBertil Schmidt

subject

Object-oriented programmingSource codeComputer sciencemedia_common.quotation_subjectParallel computingSoftware_PROGRAMMINGTECHNIQUESShared memoryAsynchronous communicationUnified Parallel CDistributed memoryPartitioned global address spacecomputercomputer.programming_languageAbstraction (linguistics)media_common

description

Abstract Although MPI is commonly used for parallel programming on distributed-memory systems, Partitioned Global Address Space (PGAS) approaches are gaining attention for programming modern multi-core CPU clusters. They feature a hybrid memory abstraction: distributed memory is viewed as a shared memory that is partitioned among nodes in order to simplify programming. In this chapter you will learn about Unified Parallel C++ (UPC++), a library-based extension of C++ that gathers the advantages of both PGAS and Object Oriented paradigms. The examples included in this chapter will help you to understand the main features of PGAS languages and how they can simplify the task of programming parallel source code for clusters and supercomputers. In particular, we study UPC++ examples addressing the topics of memory affinity, privatization, remote memory accesses, asynchronous copies, and locks.

https://doi.org/10.1016/b978-0-12-849890-3.00010-1