Cuirre: an Open-Source Library for Load Balancing and Characterizing Irregular Applications on Gpus

Tao Zhang,Wei Shu,Min-You Wu
DOI: https://doi.org/10.1016/j.jpdc.2014.07.004
IF: 4.542
2014-01-01
Journal of Parallel and Distributed Computing
Abstract:While Graphics Processing Units (GPUs) show high performance for problems with regular structures, they do not perform well for irregular tasks due to the mismatches between irregular problem structures and SIMD-like CPU architectures. In this paper, we introduce a new library, CUIRRE, for improving performance of irregular applications on CPUs. CUIRRE reduces the load imbalance of CPU threads resulting from irregular loop structures. In addition, CUIRRE can characterize irregular applications for their irregularity, thread granularity and CPU utilization. We employ this library to characterize and optimize both synthetic and real-world applications. The experimental results show that a 1.63 x on average and up to 2.76 x performance improvement can be achieved with the centralized task pool approach in the library at a 4.57% average overhead with static loading ratios. To avoid the cost of exhaustive searches of loading ratios, an adaptive loading ratio method is proposed to derive appropriate loading ratios for different inputs automatically at runtime. Our task pool approach outperforms other load balancing schemes such as the task stealing method and the persistent threads method. The CUIRRE library can easily be applied on many other irregular problems. (C) 2014 Elsevier Inc. All rights reserved.
What problem does this paper attempt to address?