𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Generalized multipartitioning of multi-dimensional arrays for parallelizing line-sweep computations

✍ Scribed by Alain Darte; John Mellor-Crummey; Robert Fowler; Daniel Chavarrı́a-Miranda


Publisher
Elsevier Science
Year
2003
Tongue
English
Weight
546 KB
Volume
63
Category
Article
ISSN
0743-7315

No coin nor oath required. For personal study only.

✦ Synopsis


Multipartitioning is a strategy for decomposing multi-dimensional arrays into tiles and mapping the resulting tiles onto a collection of processors. This class of partitionings enables efficient parallelization of ''line-sweep'' computations that solve onedimensional recurrences along each dimension of a multi-dimensional array. Multipartitionings yield balanced parallelism for line sweeps by assigning each processor the same number of data tiles to compute at each step of a sweep along any array dimension. Also, they induce only coarse-grain communication.

This paper considers the problem of computing generalized multipartitionings, which decompose d-dimensional arrays, dX2; onto an arbitrary number of processors. We describe an algorithm that computes an optimal multipartitioning onto all of the processors for this general case. We use a cost model to select the dimensionality of the best partitioning and the number of cuts to make along each array dimension; then, we show how to construct a mapping that assigns the resulting data tiles to each of the processors. The assignment of tiles to processors induced by this class of multipartitionings corresponds to an instance of a latin hyper-rectangle, a natural extension of latin squares, which have been widely studied in mathematics and statistics.

Finally, we describe how we extended the Rice dHPF compiler for High Performance Fortran to generate code that employs our strategy for generalized multipartitioning and show that the compiler's generated code for the NAS SP computational fluid dynamics benchmark achieves scalable high performance.