Generalized multipartitioning for multi-dimensional arrays
Alain Darte, Daniel Chavarría-Miranda, Robert J. Fowler, John Mellor‐Crummey · 2002
Multipartitioning is a strategy for parallelizing computations that require solving 1D recurrences along each dimension of a multi-dimensional array. Previous techniques for multipartitioning yielded efficient parallelizations over 3D domains only when the number of processors was a perfect square. This paper considers the general problem of computing multipartitionings for d-dimensional data volumes on an arbitrary number of processors. We describe an algorithm that computes an optimal multipartitioning on to all of the processors for this general case. Finally, we describe how we extended Rice University's dHPF (data-parallel High Performance Fortran) compiler to generate code that exploits generalized multipartitioning and show that the compiler's generated code for the NAS (Numerical Aerospace Simulation) SP (Scalar Pentadiagonal) computational fluid dynamics benchmark achieves scalable high performance.