Thank you Juan Fumero!

TornadoVM - OpenJDK plug-in for CPUs, GPUs and FPGAs



YouTube Live

Transparent Heterogeneous Computing for Java via TornadoVM

The proliferation of heterogeneous hardware in recent years means that every system we program is likely to include a mix of computing elements; each of these with different hardware characteristics that enable programmers to improve performance while decreasing energy consumption. These new heterogeneous devices include multi-core CPUs, GPUs, and FPGAs. This trend has been followed 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, Python, 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, a plug-in for OpenJDK that allows JVM programmers to automatically run their applications on multi-core CPUs, GPUs, and FPGAs. Furthermore, TornadoVM performs task-migration from one device to another at runtime, entirely transparent for the user. In this talk, we will summarize the TornadoVM project, and we will explain, via examples, how TornadoVM optimizes, offloads, and executes applications on heterogeneous hardware, including GPUs and FPGAs for different backends, such as OpenCL and NVIDIA PTX.

Juan Fumero

Juan Fumero

Research Associate - University of Manchester

Juan Fumero's research topics are Heterogeneous High-Level Languages Virtual Machines, GPGPUs, compilers, and distributed computing. He is currently working as part of the TornadoVM team, in collaboration with the E2Data European Research project and Intel, for bringing automatic GPU and FPGA JIT compilation and execution for JVM programs. In 2017, he received a Ph.D. degree from The University of Edinburgh on Accelerating Interpreted Programming Languages on GPUs for Java, R, and Ruby.  Additionally, he has also worked as an intern at Oracle Labs and CERN, implementing compilers and evaluating parallel programming techniques for multi-core systems.

About NYJavaSIG

The New York Java Special Interest Group (NYJavaSIG) is based in New York City and attracts Java developers from the tri-state region. Through its regular monthly general meetings, bi-monthly specialty workgroup meetings and its website, the NYJavaSIG brings together members of New York's Java community so they can share their tips, techniques, knowledge, and experience.

The NYJavaSIG was founded in 1995 by Frank Greco. Read More


Sponsors and Friends of the NYJavaSIG

Thanks again to our corporate sponsors and friends of the NYJavaSIG!

Azul Systems