Hybrid Parallel Light-Weight Programming of Hybrid Systems
Hasso Plattner Institute, University of Potsdam, Prof.-Dr.-Helmert-Str. 2-3, 14482 Potsdam, Germany
Parallel & Cloud Computing, Vol. 1, Iss. 2, 2012
@article{feinbube2012hybrid,
title={Hybrid Parallel Light-Weight Programming of Hybrid Systems},
author={Feinbube, Frank and Sobania, Jan-Arne and Tr{"o}ger, Peter and Polze, Andreas},
year={2012}
}
The advent of homogeneous many-core processors has been widely noticed as a major shift in the architecture of commodity computer systems. It has influenced the design of operating systems and programming models and gives a boost to high-level parallelization libraries. Future commodity systems will combine homogeneous many-core processors with graphical processing units and other special purpose accelerators to a new class of architecture called hybrid system. These systems provide improved hardware support for specialized computational tasks of different applications. In contrast to the programming for homogeneous architectures with existing tools, programming for such hybrid architectures is still in its infancy. Today, the software development for such systems explicitly has to address vendor-specific and version-specific characteristics of the particular devices. Due to this, refactoring of existing code becomes a tedious and error-prone task. We present our approach for automatically transforming high-level parallel code written in .NET to parallel code suitable for direct execution on hybrid systems. Our approach relies on the transformation of .NET byte code to an accelerator-aware version, which makes the concept applicable to all .NET-supported programming languages. Hybrid system hardware is targeted by the generation of accelerator-neutral intermediate code, which makes our approach applicable for a wider class of accelerator types. We show the feasibility of our solution with a workload that consists of well-known and widely accepted compute-intense algorithmic problems.
October 27, 2013 by hgpu