Back to Search Start Over

A local-view array library for partitioned global address space C++ programs

Authors :
Yili Zheng
Katherine Yelick
Amir Kamil
Hendren, Laurie J
Rubinsteyn, Alex
Sheeran, Mary
Vitek, Jan
Source :
ARRAY@PLDI
Publication Year :
2014
Publisher :
eScholarship, University of California, 2014.

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..

Details

Database :
OpenAIRE
Journal :
ARRAY@PLDI
Accession number :
edsair.doi.dedup.....f402aec99d0f9b00ac1826e9d241e736