Abstract | ||
---|---|---|
Multidimensional arrays are an important data structure in many scientific applications. Unfortunately, built-in support for such arrays is inadequate in C++, particularly in the distributed setting where bulk communication operations are required for good performance. In this paper, we present a multidimensional library for partitioned global address space (PGAS) programs, supporting the one-sided remote access and bulk operations of the PGAS model. The library is based on Titanium arrays, which have proven to provide good productivity and performance. These arrays provide a local view of data, where each rank constructs its own portion of a global data structure, matching the local view of execution common to PGAS programs and providing maximum flexibility in structuring global data. Unlike Titanium, which has its own compiler with array-specific analyses, optimizations, and code generation, we implement multidimensional arrays solely through a C++ library. The main goal of this effort is to provide a library-based implementation that can match the productivity and performance of a compiler-based approach. We implement the array library as an extension to UPC++, a C++ library for PGAS programs, and we extend Titanium arrays with specializations to improve performance. We evaluate the array library by porting four Titanium benchmarks to UPC++, demonstrating that it can achieve up to 25% better performance than Titanium without a significant increase in programmer effort. |
Year | DOI | Venue |
---|---|---|
2014 | 10.1145/2627373.2627378 | ARRAY@PLDI |
Keywords | Field | DocType |
design,experimentation,compilers,c++,measurement,languages,performance,just in time compilation,tracing,data parallelism,r | Data structure,Computer architecture,Programmer,Computer science,Parallel computing,Real-time computing,Compiler,Code generation,Data parallelism,Porting,Just-in-time compilation,Partitioned global address space | Conference |
Citations | PageRank | References |
5 | 0.43 | 9 |
Authors | ||
3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Amir Kamil | 1 | 202 | 12.00 |
Yili Zheng | 2 | 56 | 4.01 |
Katherine A. Yelick | 3 | 3494 | 407.23 |