Show simple item record

dc.contributor.advisor Warburton, Timothy
dc.creatorMedina, David
dc.date.accessioned 2016-01-27T22:46:51Z
dc.date.available 2016-01-27T22:46:51Z
dc.date.created 2015-12
dc.date.issued 2015-11-25
dc.date.submitted December 2015
dc.identifier.citation Medina, David. "OKL: A Unified Language for Parallel Architectures." (2015) Diss., Rice University. https://hdl.handle.net/1911/88213.
dc.identifier.urihttps://hdl.handle.net/1911/88213
dc.description.abstract Rapid 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.
dc.format.mimetype application/pdf
dc.language.iso eng
dc.subjectocca
okl
ofl
high performance computing
cpu
gpu
cuda
opencl
multithreading
openmp
portable
manycore
multicore
dc.title OKL: A Unified Language for Parallel Architectures
dc.type Thesis
dc.contributor.committeeMember Riviere, Beatrice
dc.contributor.committeeMember Sorensen, Danny C
dc.contributor.committeeMember Cooper, Keith D
dc.date.updated 2016-01-27T22:46:51Z
dc.type.material Text
thesis.degree.department Computational and Applied Mathematics
thesis.degree.discipline Engineering
thesis.degree.grantor Rice University
thesis.degree.level Doctoral
thesis.degree.name Doctor of Philosophy


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record