Embracing heterogeneity: parallel programming for changing hardware

  • Authors:
  • Michael D. Linderman;James Balfour;Teresa H. Meng;William J. Dally

  • Affiliations:
  • Center for Integrated Systems and Computer Systems Laboratory, Stanford University;Center for Integrated Systems and Computer Systems Laboratory, Stanford University;Center for Integrated Systems and Computer Systems Laboratory, Stanford University;Center for Integrated Systems and Computer Systems Laboratory, Stanford University

  • Venue:
  • HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.