UPC++: A PGAS Extension for C++

IPDPS(2014)

引用 231|浏览95
暂无评分
摘要
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.
更多
查看译文
关键词
large random-access data,complex scientific applications,programming system,spmd model,parallel programming,pgas,c++ templates,runtime libraries,lightweight one-sided communication,object-oriented pgas programming model,parallel programming systems,parallel programming, parallel computing, pgas, programming system,locality control,partitioned global address space languages,pgas language extension,representative supercomputers,data models,object-oriented programming,parallel computing,compiler-free approach,upc++,asynchronous remote function invocation,c++ language,multidimensional arrays,static single program multiple data model,upc,titanium,instruction sets,object oriented programming,electronics packaging,programming
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要