Abstract
We present a new polynomial time algorithm for allocating array elements to the processor memories of parallel computers. The algorithm produces, for sufficiently large arrays, partitionings that are balanced, near-rectangular and near-bulky. Balanced means each allocation is assigned the minimal number of elements. Near-rectangularmeans that each allocation is at most two off from the optimal aspect ratio in each dimension and has at most two jogs along each edge. A jog is where the boundary deviates from a straight line. Near-bulky means that each allocation has a near maximal ratio of interior/exterior points. For an I × J array of points and a K × K array of processors the algorithm produces balanced nearbulky partitionings when I,J≥ 4K and produces balanced, near-bulky and near-rectangular allocations when I,J≥ 8K. These bounds are not tight. A variant of the algorithm produces allocations with at most six neighbors per allocation for arbitrary stencils. Using these near-rectangular allocations incurs little additional cost for compilers for distributed memory parallel computers, and the extra run-time cost usually is offset by the advantage of balanced allocations.
Author supplied keywords
Cite
CITATION STYLE
Snyder, L., & Socha, D. G. (1990). An algorithm producing balanced partitionings of data arrays. In Proceedings of the 5th Distributed Memory Computing Conference, DMCC 1990 (Vol. 2, pp. 867–875). Institute of Electrical and Electronics Engineers Inc. https://doi.org/10.1109/DMCC.1990.556293
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.