Skip to main content

Tornado: Practical Heterogeneous Programming in Java

James Clarkson, University of Manchester, UK

31-Mar-2017, 4 pm

Location:  DIMA, TU Berlin, E-N 719

Abstract: As the popularity of “big data” frameworks grow, a lot of effort is currently being exerted trying to improve the performance of JVM (Java Virtual Machine) based languages, such as Java and Scala. One way of doing this is to develop mechanisms that allow these languages to make use of hardware accelerators, such as GPGPUs. As a result, there has been a number of projects, such as Project Sumatra (OpenJDK) [4], Rootbeer [5] and APARAPI (AMD) [6], that have attempted to support programming GPGPUs from Java. However, a lot of this prior art only focuses on accelerating simple workloads or providing an interface into another programming language - making it difficult for them to be used to create real-world applications. In this talk I will discuss how we have developed a framework that moves beyond the prior art and allows developers to accelerate complex Java applications.


Our Java based framework, Tornado, provides developers with a simple a task-based programming model which allows the assignment of task to device. Typically, tasks are assigned to execute on a diverse set of hardware resources such as GPGPUs, FPGAs, and Xeon Phi. Moreover, the design of Tornado allows those assignments to be changed dynamically - meaning that applications are not artificially restricted to using a specific class of device. Additionally, the Tornado API has been designed to avoid the need to re-engineer applications to utilise the framework. To achieve that, we added support for a wide range of language features than the prior art - exceptions, inheritance and objects to name a few. Finally, we will share our experiences porting and accelerating a complex Computer Vision application into pure Java.

Bio: James Clarkson is a 3rd year PhD student from the University of Manchester in the UK. He is a member of the Advanced Processor Technologies (APT) group, working under the supervision of Mikel Lujan and Christos Kotselidis. His research interests are programming languages and programming exotic hardware architectures (in Java!). He is actively contributing to the EPSRC funded AnyScale [1] and PAMELA [2] projects, and has previously contributed to the EU funded Mont Blanc project [3].


[1] AnyScale project -


[2] PAMELA project -


[3] Mont Blanc project -


[4] Project Sumatra -