Skip to Main Content
Various specialized hardware designs, such as Cell, GPGPUs, and MIC, have gained traction as alternative hardware designs capable of delivering higher flop rates than conventional designs. However, a drawback of these accelerators is that they simultaneously increase programmer burden in terms of code complexity and decrease portability by requiring hardware specific code to be interleaved throughout application code. The structure of the application code itself typically requires modification when targeting accelerators. Further, balancing the application workload across the cores becomes problematic, especially if a given computation must be split across a mixture of core types with variable performance characteristics. Our research aims to address the complications that arise in heterogeneous systems by understanding how the application build process and underlying runtime system can assist the programmer in developing parallel programs that target such platforms. We are developing a unified programming model that can be used for all cores, host and accelerator alike. We discuss the modifications we have made to the runtime system, along with discussing future modifications. We have demonstrated a simple molecular dynamics (MD) program executing on a mixture of x86 and Cell processors without requiring hardware specific code within the application code.