Sarkar, Vivek2013-09-162013-09-162013-09-162013-09-162013-052013-09-16May 2013Grossman, Max. "Programming Models and Runtimes for Heterogeneous Systems." (2013) Master’s Thesis, Rice University. <a href="https://hdl.handle.net/1911/71959">https://hdl.handle.net/1911/71959</a>.https://hdl.handle.net/1911/71959With the plateauing of processor frequencies and increase in energy consumption in computing, application developers are seeking new sources of performance acceleration. Heterogeneous platforms with multiple processor architectures offer one possible avenue to address these challenges. However, modern heterogeneous programming models tend to be either so low-level as to severely hinder programmer productivity, or so high-level as to limit optimization opportunities. The novel systems presented in this thesis strike a better balance between abstraction and transparency, enabling programmers to be productive and produce high-performance applications on heterogeneous platforms. This thesis starts by summarizing the strengths, weaknesses, and features of existing heterogeneous programming models. It then introduces and evaluates four novel heterogeneous programming models and runtime systems: JCUDA, CnC-CUDA, DyGR, and HadoopCL. We'll conclude by positioning the key contributions of each piece in this thesis relative to the state-of-the-art, and outline possible directions for future work.application/pdfengCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.HeterogeneousGPUGPGPUProgramming modelsRuntimeMulticoreAbstractionDistributedCUDAOpenCLHadoopProgramming Models and Runtimes for Heterogeneous SystemsThesis2013-09-16123456789/ETD-2013-05-567