Engineering PapersSearch

NASA NTRS · 19930050575

Automatic array alignment in data-parallel programs

Abstract

FORTRAN 90 and other data-parallel languages express parallelism in the form of operations on data aggregates such as arrays. Misalignment of the operands of an array operation can reduce program performance on a distributed-memory parallel machine by requiring nonlocal data accesses. Determining array alignments that reduce communication is therefore a key issue in compiling such languages. We present a framework for the automatic determination of array alignments in array-based, data-parallel languages. Our language model handles array sectioning, reductions, spreads, transpositions, and masked operations. We decompose alignment functions into three constituents: axis, stride, and offset. For each of these subproblems, we show how to solve the alignment problem for a basic block of code, possibly containing common subexpressions. Alignments are generated for all array objects in the code, both named program variables and intermediate results. We assign computation to processors by virtue of explicit alignment of all temporaries; the resulting work assignment is in general better than that provided by the 'owner-computes' rule. Finally, we present some ideas for dealing with control flow, replication, and dynamic alignments that depend on loop induction variables.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Chatterjee, Siddhartha, Gilbert, John R., Schreiber, Robert, Teng, Shang-Hua. 1993-01-01. Automatic array alignment in data-parallel programs. https://ntrs.nasa.gov/citations/19930050575

Cite the original work for its findings. Save a collection to share your selection of sources.