Title :
UPC++: A PGAS Extension for C++
Author :
Yili Zheng ; Kamil, Amir ; Driscoll, Michael B. ; Hongzhang Shan ; Yelick, Katherine
Author_Institution :
Lawrence Berkeley Nat. Lab., Berkeley, CA, USA
Abstract :
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.
Keywords :
C++ language; data models; object-oriented programming; parallel programming; C++ language; C++ templates; PGAS language extension; SPMD model; UPC++; asynchronous remote function invocation; compiler-free approach; complex scientific applications; large random-access data; lightweight one-sided communication; locality control; multidimensional arrays; object-oriented PGAS programming model; parallel programming systems; partitioned global address space languages; representative supercomputers; runtime libraries; static single program multiple data model; Arrays; Electronics packaging; Instruction sets; Libraries; Programming; Syntactics; Titanium; PGAS; Parallel Computing; Parallel Programming; Programming System;
Conference_Titel :
Parallel and Distributed Processing Symposium, 2014 IEEE 28th International
Conference_Location :
Phoenix, AZ
Print_ISBN :
978-1-4799-3799-8
DOI :
10.1109/IPDPS.2014.115