Hierarchical partitioning algorithm for scientific computing on highly heterogeneous CPU + GPU clusters

  • Authors:
  • David Clarke;Aleksandar Ilic;Alexey Lastovetsky;Leonel Sousa

  • Affiliations:
  • School of Computer Science and Informatics, University College Dublin, Dublin, Ireland;INESC-ID, IST/Technical University of Lisbon, Lisbon, Portugal;School of Computer Science and Informatics, University College Dublin, Dublin, Ireland;INESC-ID, IST/Technical University of Lisbon, Lisbon, Portugal

  • Venue:
  • Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Hierarchical level of heterogeneity exists in many modern high performance clusters in the form of heterogeneity between computing nodes, and within a node with the addition of specialized accelerators, such as GPUs. To achieve high performance of scientific applications on these platforms it is necessary to perform load balancing. In this paper we present a hierarchical matrix partitioning algorithm based on realistic performance models at each level of hierarchy. To minimise the total execution time of the application it iteratively partitions a matrix between nodes and partitions these sub-matrices between the devices in a node. This is a self-adaptive algorithm that dynamically builds the performance models at run-time and it employs an algorithm to minimise the total volume of communication. This algorithm allows scientific applications to perform load balanced matrix operations with nested parallelism on hierarchical heterogeneous platforms. To show the effectiveness of the algorithm we applied it to a fundamental operation in scientific parallel computing, matrix multiplication. Large scale experiments on a heterogeneous multi-cluster site incorporating multicore CPUs and GPU nodes show that the presented algorithm outperforms current state of the art approaches and successfully load balance very large problems.