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

Juan Fumero, Christos Kotselidis
Advanced Processor Technologies Group, The University of Manchester, Manchester, M13 9PL, United Kingdom
10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (VMIL ’18), 2018


   title={Using Compiler Snippets to Exploit Parallelism on Heterogeneous Hardware: A Java Reduction Case Study},

   author={Fumero, Juan and Kotselidis, Christos},



Download Download (PDF)   View View   Source Source   Source codes Source codes




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.
Rating: 5.0/5. From 1 vote.
Please wait...

* * *

* * *

* * *

HGPU group © 2010-2022 hgpu.org

All rights belong to the respective authors

Contact us: