Dynamic Load Balancing Strategies for Graph Applications on GPUs
Department of Computational and Data Sciences, Indian Institute of Science, Bangalore, India
arXiv:1711.00231 [cs.DC], (1 Nov 2017)
@article{raval2017dynamic,
title={Dynamic Load Balancing Strategies for Graph Applications on GPUs},
author={Raval, Ananya and Nasre, Rupesh and Kumar, Vivek and R, Vasudevan and Vadhiyar, Sathish and Pingali, Keshav},
year={2017},
month={nov},
archivePrefix={"arXiv"},
primaryClass={cs.DC}
}
Acceleration of graph applications on GPUs has found large interest due to the ubiquitous use of graph processing in various domains. The inherent irregularity in graph applications leads to several challenges for parallelization. A key challenge, which we address in this paper, is that of load-imbalance. If the work-assignment to threads uses node-based graph partitioning, it can result in skewed task-distribution, leading to poor load-balance. In contrast, if the work-assignment uses edge-based graph partitioning, the load-balancing is better, but the memory requirement is relatively higher. This makes it unsuitable for large graphs. In this work, we propose three techniques for improved load-balancing of graph applications on GPUs. Each technique brings in unique advantages, and a user may have to employ a specific technique based on the requirement. Using Breadth First Search and Single Source Shortest Paths as our processing kernels, we illustrate the effectiveness of each of the proposed techniques in comparison to the existing node-based and edge-based mechanisms.
November 5, 2017 by hgpu