Portable Programming Models for Heterogeneous Platforms

dc.contributor.advisorSarkar, Vivek
dc.contributor.committeeMemberMellor-Crummey, John
dc.contributor.committeeMemberWarburton, Timothy C
dc.contributor.committeeMemberBarik, Rajkishore
dc.creatorMajeti, Deepak
dc.date.accessioned2016-01-25T15:34:25Z
dc.date.available2016-01-25T15:34:25Z
dc.date.created2015-12
dc.date.issued2015-09-14
dc.date.submittedDecember 2015
dc.date.updated2016-01-25T15:34:25Z
dc.description.abstractWith the end of Dennard scaling and emergence of dark silicon, the bets are high on heterogeneous architectures to achieve both application performance and energy efficiency. However, diversity in heterogeneous architectures poses severe programming challenges in terms of data layout, memory coherence, task partitioning, data distribution, and sharing of virtual addresses. Existing high-level programming languages are inadequate to address these new architectural features since they lack the necessary abstractions to address the challenges mentioned above. It is necessary for existing languages to be extended minimally with high-level constructs while maintaining existing standards of portability, performance, and productivity. The compiler and runtime together must efficiently map these constructs to a target architecture. We develop Concord, a C++ based programming model that extends the Intel Threading Building Blocks onto integrated heterogeneous CPU+GPU architectures that do not share the same virtual address between CPU and GPU. Concord supports many C++ features including virtual functions. We implement Shared Virtual Memory to map applications with pointer intensive data structures onto heterogeneous architectures that do not share the same virtual address. We introduce Heterogeneous Habanero-C (H2C), an implementation of the Habanero execution model targeting modern heterogeneous architectures with multiple devices. H2C provides high-level constructs to specify the computation, communication and synchronization in a given application. The H2C compiler and runtime frameworks efficiently map these high-level constructs onto the underlying heterogeneous hardware. The highlights of H2C include: a data layout framework to generate code with best data layout suited for a given memory hierarchy; constructs to specify a task partition, leaving the complex analysis of determining the resultant data distribution to the compiler; and a unified event framework that allows a programmer to write applications with a macro data-flow model onto heterogeneous architectures. Experimental results show Concord and H2C provide good portability, productivity, and performance. In the future, we believe heterogeneous architectures will be more diverse and more pervasive. We believe programming systems like H2C and Concord that have a tight integration of language, compiler and runtime are the right way to target current and future heterogeneous systems.
dc.format.mimetypeapplication/pdf
dc.identifier.citationMajeti, Deepak. "Portable Programming Models for Heterogeneous Platforms." (2015) Diss., Rice University. <a href="https://hdl.handle.net/1911/88096">https://hdl.handle.net/1911/88096</a>.
dc.identifier.urihttps://hdl.handle.net/1911/88096
dc.language.isoeng
dc.rightsCopyright 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.
dc.subjectprogramming models
dc.subjectheterogeneous architectures
dc.subjectOpenCL
dc.subjectC++
dc.subjectC
dc.subject
dc.titlePortable Programming Models for Heterogeneous Platforms
dc.typeThesis
dc.type.materialText
thesis.degree.departmentComputer Science
thesis.degree.disciplineEngineering
thesis.degree.grantorRice University
thesis.degree.levelDoctoral
thesis.degree.nameDoctor of Philosophy
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
MAJETI-DOCUMENT-2015.pdf
Size:
3.73 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 2 of 2
No Thumbnail Available
Name:
PROQUEST_LICENSE.txt
Size:
5.84 KB
Format:
Plain Text
Description:
No Thumbnail Available
Name:
LICENSE.txt
Size:
2.61 KB
Format:
Plain Text
Description: