Free Java

TornadoVM: A Virtual Machine for Exploiting ​High-Performance Heterogeneous ​Execution of Java Programs​

H.1302 (Depage)
Thanos Stratikopoulos
The proliferation of heterogeneous hardware in recent years has driven us to consider that every system we program, most likely includes a mix of computing elements; each of which with different hardware characteristics enabling programmers to improve performance while reducing energy consumption. These new heterogeneous devices include multi-core CPUs, GPUs and FPGAs. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users. Instead of using low-level programming languages, developers in industry and academia tend to use higher-level, object-oriented programming languages, typically executed on managed runtime environments, such as Java, R, and Javascript. Although many programmers might expect that such programming languages would have already been adapted for transparent execution on heterogeneous hardware, the reality is that their support is either very limited or absent. In this talk, we present TornadoVM (https://github.com/beehive-lab/TornadoVM), a heterogeneous programming framework for Java programs. TornadoVM co-exists with standard JVMs (e.g., OpenJDK) that implement the JVMCI. TornadoVM consists of three components: 1) a simple API for composing pipelines of existing Java methods, 2) an optimizing JIT compiler that extends the Graal compiler with hardware-aware optimizations that generate OpenCL C code, and 3) a runtime system that executes TornadoVM specific bytecodes, performs memory management, and schedules the code for execution on GPUs, multicore CPUs, and FPGAs. Essentially, TornadoVM is a “VM-in-a-VM” that can adapt execution completely dynamically and transparently to the user, always finding the highest-performing combination of hardware accelerators through dynamic reconfiguration.

Additional information

Type devroom

More sessions

2/1/20
Free Java
Mark Reinhold
H.1302 (Depage)
A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.
2/1/20
Free Java
Andrew Haley
H.1302 (Depage)
Project Loom, an OpenJDK project, is "intended to explore, incubate and deliver Java VM features and APIs built on top of them for the purpose of supporting easy-to-use, high-throughput lightweight concurrency and new programming models on the Java platform." These feature include Lightweight Threads, delimited continuations, and tail-call elimination. The speaker, a Project Loom team member, will describe the project in depth, in particular the gnarly details of how coroutine and continuation ...
2/1/20
Free Java
Maurizio Cimadamore
H.1302 (Depage)
Abstract: Direct buffers are, to date, the only way to access foreign, off-heap memory. Despite their success, direct buffers suffer from some limitations --- stateful-ness, lack of addressing space, non-deterministic deallocation to name a few --- which makes them a less-than-ideal choice under certain workloads. In this talk we paint the path to the future: a safe, supported and efficient foreign memory access API for Java. By providing a more targeted solution to the problem of accessing ...
2/1/20
Free Java
Mike Milinkovich
H.1302 (Depage)
In September 2017 Oracle announced that it would be migrating governance of the Java EE platform to the Eclipse Foundation, the home of MicroProfile. Two years later Jakarta EE 8 shipped, signaling the successful completion of that move. As a result, Free Java has a new home for a significant piece of the Java ecosystem. A home which is purely open source, vendor neutral, and community led. This talk will be about how the long and painful journey from Java EE to Jakarta EE unfolded. But more ...
2/1/20
Free Java
Roman Kennke
H.1302 (Depage)
Shenandoah GC landed in JDK12 about a year ago, giving OpenJDK another low-pause garbage collector. It has undergone substantial changes since then. Specifically we have a new barrier scheme, and have eliminated the extra forwarding pointer word per object, thus substantially reducing memory footprint. After giving a general introduction to OpenJDK GC landscape and Shenandoah GC, this talk focuses on those recent changes in Shenandoah and what's in it for you.
2/1/20
Free Java
Jie Kang
H.1302 (Depage)
JDK Flight Recorder provides production time profiling and diagnostics via a compact events-based infrastructure inside the Hotspot JVM itself. JDK Mission Control is a stand-alone application that provides real-time monitoring information for Hotspot JVMs, as well as tools to read, automatically analyze and visualize flight recording data produced by JDK Flight Recorder. When this talk is presented, JMC 7.1.0 has (hopefully) been out for a little while. This presentation talks about what is new ...
2/1/20
Free Java
H.1302 (Depage)
The GraalVM project provides, among other options, a means to deliver Java programs as compact, self-contained, fast-startup native images. GraalVM has been moving from research to development for quite a few years now. However, it is only just beginning to be properly integrated with the latest OpenJDK releases and there is still much to be done to get it fully productized and to improve usability and performance. This talk will recount our joint experiences of trying to add new and/or improved ...