OKL: A Unified Language for Parallel Architectures

dc.contributor.advisorWarburton, Timothyen_US
dc.contributor.committeeMemberRiviere, Beatriceen_US
dc.contributor.committeeMemberSorensen, Danny Cen_US
dc.contributor.committeeMemberCooper, Keith Den_US
dc.creatorMedina, Daviden_US
dc.date.accessioned2016-01-27T22:46:51Zen_US
dc.date.available2016-01-27T22:46:51Zen_US
dc.date.created2015-12en_US
dc.date.issued2015-11-25en_US
dc.date.submittedDecember 2015en_US
dc.date.updated2016-01-27T22:46:51Zen_US
dc.description.abstractRapid evolution of computer processor architectures has spawned multiple programming languages and standards. This thesis strives to address the challenges caused by fast and cyclical changes in programming models. The novel contribution of this thesis is the introduction of an abstract unified framework which addresses portability and performance for programming many-core devices. To test this concept, I developed a specific implementation of this framework called OCCA. OCCA provides evidence that it is possible to achieve high performance across multiple platforms. The programming model investigated in this thesis abstracts a hierarchical representation of modern many-core devices. The model at its lowest level adopts native programming languages for these many-core devices, including serial code, OpenMP, OpenCL, NVIDIA's CUDA, and Intel's COI. At its highest level, the ultimate goal is a high level language that is agnostic about the underlying architecture. I developed a multiply layered approach to bridge the gap between expert "close to the metal" low-level programming and novice-level programming. Each layer requires varying degrees of programmer intervention to access low-level features in device architectures. I begin by introducing an approach for encapsulating programming language features, delivering a single intermediate representation (OCCA IR). Built above the OCCA IR are two kernel languages extending the prominent programming languages C and Fortran, the OCCA kernel language (OKL) and the OCCA Fortran language (OFL). Additionally, I contribute two automated approaches for facilitating data movement and automating translations from serial code to OKL kernels. To validate OCCA as a unified framework implementation, I compare performance results across a variety of applications and benchmarks. A spectrum of applications have been ported to utilize OCCA, showing no performance loss compared to their native programming language counterparts. In addition, a majority of the discussed applications show comparable results with a single OCCA kernel.en_US
dc.format.mimetypeapplication/pdfen_US
dc.identifier.citationMedina, David. "OKL: A Unified Language for Parallel Architectures." (2015) Diss., Rice University. <a href="https://hdl.handle.net/1911/88213">https://hdl.handle.net/1911/88213</a>.en_US
dc.identifier.urihttps://hdl.handle.net/1911/88213en_US
dc.language.isoengen_US
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.en_US
dc.subjectoccaen_US
dc.subjectoklen_US
dc.subjectoflen_US
dc.subjecthigh performance computingen_US
dc.subjectcpuen_US
dc.subjectgpuen_US
dc.subjectcudaen_US
dc.subjectopenclen_US
dc.subjectmultithreadingen_US
dc.subjectopenmpen_US
dc.subjectportableen_US
dc.subjectmanycoreen_US
dc.subjectmulticoreen_US
dc.titleOKL: A Unified Language for Parallel Architecturesen_US
dc.typeThesisen_US
dc.type.materialTexten_US
thesis.degree.departmentComputational and Applied Mathematicsen_US
thesis.degree.disciplineEngineeringen_US
thesis.degree.grantorRice Universityen_US
thesis.degree.levelDoctoralen_US
thesis.degree.nameDoctor of Philosophyen_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
MEDINA-DOCUMENT-2015.pdf
Size:
1.48 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: