Embracing Heterogeneity: Parallel Programming for Changing Hardware
Center for Integrated Systems and Computer Systems Laboratory, Stanford University
HotPar’09 Proceedings of the First USENIX conference on Hot topics in parallelism, 2009
@conference{linderman2009embracing,
title={Embracing heterogeneity: parallel programming for changing hardware},
author={Linderman, M.D. and Balfour, J. and Meng, T.H. and Dally, W.J.},
booktitle={Proceedings of the First USENIX conference on Hot topics in parallelism},
pages={3},
year={2009},
organization={USENIX Association}
}
Computer systems are undergoing significant change: to improve performance and efficiency, architects are exposing more microarchitectural details directly to programmers. Software that exploits specialized accelerators, such as GPUs, and specialized processor features, such as software-controlled memory, exposes limitations in existing compiler and OS infrastructure. In this paper we propose a pragmatic approach, motivated by our experience with Merge [3], for building applications that will tolerate changing hardware. Our approach allows programmers to leverage different processor-specific or domain-specific toolchains to create software modules specialized for different hardware configurations, and it provides language mechanisms to enable the automatic mapping of the application to these processor-specific modules. We show this approach can be used to manage computing resources in complex heterogeneous processors and to enable aggressive compiler optimizations.
December 13, 2010 by hgpu