Accelerating interpreted programming languages on GPUs with just-in-time compilation and runtime optimisations
dc.contributor.advisor
Dubach, Christophe
en
dc.contributor.advisor
Steuwer, Michel
en
dc.contributor.author
Fumero Alfonso, Juan José
en
dc.date.accessioned
2018-02-08T16:40:43Z
dc.date.available
2018-02-08T16:40:43Z
dc.date.issued
2017-11-30
dc.description.abstract
Nowadays, most computer systems are equipped with powerful parallel devices
such as Graphics Processing Units (GPUs). They are present in almost every computer
system including mobile devices, tablets, desktop computers and servers. These
parallel systems have unlocked the possibility for many scientists and companies to
process significant amounts of data in shorter time. But the usage of these parallel
systems is very challenging due to their programming complexity. The most common
programming languages for GPUs, such as OpenCL and CUDA, are created for expert
programmers, where developers are required to know hardware details to use GPUs.
However, many users of heterogeneous and parallel hardware, such as economists,
biologists, physicists or psychologists, are not necessarily expert GPU programmers.
They have the need to speed up their applications, which are often written in high-level
and dynamic programming languages, such as Java, R or Python. Little work has
been done to generate GPU code automatically from these high-level interpreted and
dynamic programming languages. This thesis presents a combination of a programming
interface and a set of compiler techniques which enable an automatic translation
of a subset of Java and R programs into OpenCL to execute on a GPU. The goal is
to reduce the programmability and usability gaps between interpreted programming
languages and GPUs.
The first contribution is an Application Programming Interface (API) for programming
heterogeneous and multi-core systems. This API combines ideas from functional
programming and algorithmic skeletons to compose and reuse parallel operations.
The second contribution is a new OpenCL Just-In-Time (JIT) compiler that automatically
translates a subset of the Java bytecode to GPU code. This is combined with
a new runtime system that optimises the data management and avoids data transformations
between Java and OpenCL. This OpenCL framework and the runtime system
achieve speedups of up to 645x compared to Java within 23% slowdown compared to
the handwritten native OpenCL code.
The third contribution is a new OpenCL JIT compiler for dynamic and interpreted
programming languages. While the R language is used in this thesis, the developed
techniques are generic for dynamic languages. This JIT compiler uniquely combines
a set of existing compiler techniques, such as specialisation and partial evaluation, for
OpenCL compilation together with an optimising runtime that compile and execute R
code on GPUs. This JIT compiler for the R language achieves speedups of up to 1300x
compared to GNU-R and 1.8x slowdown compared to native OpenCL.
en
dc.identifier.uri
http://hdl.handle.net/1842/28718
dc.language.iso
en
dc.publisher
The University of Edinburgh
en
dc.relation.hasversion
Juan J. Fumero, Michel Steuwer, Christophe Dubach. A Composable Array Function Interface for Heterogeneous Computing in Java. In Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, June 2014.
en
dc.relation.hasversion
Juan J. Fumero, Toomas Remmelg, Michel Steuwer, Christophe Dubach. Runtime Code Generation and Data Management for Heterogeneous Computing in Java. In Proceedings of ACM SIGPLAN International Conference on Principles and Practices of Programming on the Java Platform, September 2015.
en
dc.relation.hasversion
Juan Fumero, Michel Steuwer, Lukas Stadler, Christophe Dubach. OpenCL JIT Compilation for Dynamic Programming Languages. MoreVMs Workshop on Modern Language Runtimes, Ecosystems, and VMs, April 2017.
en
dc.relation.hasversion
Juan Fumero, Michel Steuwer, Lukas Stadler, Christophe Dubach. Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation. In Proceedings of ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE), April 2017.
en
dc.subject
GPU Computing
en
dc.subject
interpreted programming languages
en
dc.subject
JIT compilation
en
dc.subject
runtime optiimisations
en
dc.subject
Java
en
dc.subject
R (Computer program language)
en
dc.subject
R
en
dc.title
Accelerating interpreted programming languages on GPUs with just-in-time compilation and runtime optimisations
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en
Files
Original bundle
1 - 1 of 1
- Name:
- Fumero Alfonso2017.pdf
- Size:
- 4.15 MB
- Format:
- Adobe Portable Document Format
This item appears in the following Collection(s)

