Reusable software components for accelerator-based clusters
Department of Computer Science, Virginia Tech, 2202 Kraft Drive, Blacksburg, VA 24061, United States
Journal of Systems and Software, Volume 84, Issue 7, July 2011, Pages 1071-1081
@article{rafique2011reusable,
title={Reusable software components for accelerator-based clusters},
author={Rafique, M.M. and Butt, A.R. and Tilevich, E.},
journal={Journal of Systems and Software},
year={2011},
publisher={Elsevier}
}
The emerging accelerator-based heterogeneous clusters, comprising specialized processors such as the IBM Cell and GPUs, have exhibited excellent price to performance ratio as well as high energy-efficiency. However, developing and maintaining software for such systems is fraught with challenges, especially for modern high-performance computing (HPC) applications that can benefit the most from leveraging accelerators. If accelerator-based clusters are to deliver on their initial promise to provide a viable and cost-effective HPC solution to researchers and practitioners, one must find a software solution to lower the barrier to entry for the average user. In this paper, we investigate how a software component based approach can be used to provide a reusable and adaptable architecture for executing HPC tasks on accelerator-based clusters. In our implementation, we leverage the lessons from the software engineering research for component-based layered architectures. Our results indicate that the complexity of developing and maintaining accelerator-based cluster software can be as effectively tamed by solid software engineering approaches as that of software in more traditional domains. Specifically, we were able to reuse 83.6% of our implementation code across different architectures and resource configurations, while achieving the overall execution performance only 1.5% off that of an optimally hand-tuned, albeit non-reusable version.
August 22, 2011 by hgpu