Using Compiler Snippets to Exploit Parallelism on Heterogeneous Hardware: A Java Reduction Case Study

Research output: Contribution to conferencePaperpeer-review

371 Downloads (Pure)

Abstract

Parallel skeletons are essential structured design patterns for efficient heterogeneous and parallel programming. They allow programmers to express common algorithms in such a way that it is much easier to read, maintain, debug and implement for different parallel programming models and parallel architectures. Reductions are one of the most common parallel skeletons. Many programming frameworks have been proposed for accelerating reduction operations on heterogeneous hardware. However, for the Java programming language, little work has been done for automatically compiling and exploiting reductions in Java applications on GPUs.

In this paper we present our work in progress in utilizing compiler snippets to express parallelism on heterogeneous hardware. In detail, we demonstrate the usage of Graal’s snippets, in the context of the Tornado compiler, to express a set of Java reduction operations for GPU acceleration. The snippets are expressed in pure Java with OpenCL semantics, simplifying the JIT compiler optimizations and code generation. We showcase that with our technique we are able to execute a predefined set of reductions on GPUs within 85% of the performance of the native code and reach up to 20x over the Java sequential execution.
Original languageEnglish
Publication statusPublished - 4 Nov 2018
EventVMIL 2018 Virtual Machines and Language Implementations - Boston, Massachusetts, US , Boston, United States
Duration: 4 Nov 20189 Nov 2018
Conference number: 2018
https://2018.splashcon.org/track/vmil-2018

Conference

ConferenceVMIL 2018 Virtual Machines and Language Implementations
Abbreviated titleVMIL
Country/TerritoryUnited States
CityBoston
Period4/11/189/11/18
Internet address

Keywords

  • GPGPUs
  • JIT Compilation
  • Reductions

Fingerprint

Dive into the research topics of 'Using Compiler Snippets to Exploit Parallelism on Heterogeneous Hardware: A Java Reduction Case Study'. Together they form a unique fingerprint.

Cite this