TornadoVM

University of Manchester Innovation Factory Background
In recent years, heterogeneous computing has emerged as the vital way to increase computers’ performance and energy efficiency by combining various hardware devices, such as GPUs and FPGAs. The rationale behind this trend is that different parts of an application can be offloaded from the main CPU to these devices, which can efficiently execute these parts as co-processors. However, the hardware diversity has posed challenges in terms of programmability. Traditional approaches require developers to manually code or tune parts of their code in low-level programming languages to execute their programs on hardware accelerators like GPUs and FPGAs. Developers who create their applications using high-level programming languages (e.g. Java, Python, etc.) do not usually have the skillset or knowledge to write such low-level programs (e.g. in CUDA, OpenCL, OpenACC, etc.). The team has to learn it or bring people in who have the skills needed to exploit the co-processors’ capacity and tune the performance of their applications. As a result, the engineering effort of developers is being increased, and the time-to-market (TTM) is being prolonged.
Technology Overview
TornadoVM is an open-source plugin for Java Virtual Machines that allows programmers to run Java programs on heterogeneous hardware automatically. TornadoVM can currently execute on multi-core CPUs, dedicated GPUs (Nvidia, AMD), integrated GPUs (Intel HD Graphics and ARM Mali), and FPGAs (Intel and Xilinx). Most importantly, existing applications can use TornadoVM with minimal changes and achieve performance speedups of over 100x and energy efficiency of up to 10x for suitable workloads.
Benefits

It increases the performance of new and existing application software.
It increases energy efficiency and minimises operational costs.
It eliminates the need to explicitly code the program (or parts of the program) in low-level languages.
It automatically, dynamically and transparently transforms the user code into optimised code for hardware acceleration.
Tasks such as code generation, memory management, and others are handled transparently by the system.
TornadoVM does not require developers to have special hardware knowledge to dramatically improve performance.
TornadoVM guarantees that there will be no performance degradation compared to the standard (non‑accelerated) way of computing; it can only yield orders of magnitude higher performance if suitable parts for acceleration are found.
It is compatible with current state-of-the-art JVMs (OpenJDK, GraalVM)
It covers various managed languages and hardware platforms (Intel/AMD/ARM/NVIDIA/Xilinx CPUs, GPUs, and FPGAs).

Applications
TornadoVM has already been used successfully in a wide variety of applications including Natural Language Processing, Image processing, Machine Learning, and IoT algorithms :

Computer vision: Computer Vision application (Kinect Fusion) which reconstructs a three-dimensional scene from a stream of depth images produced by an RGB-D camera, such as the Microsoft Kinect. Performance gains achieved with TornadoVM: 166x.
Big Data analytics: Big data analytics framework Apache Flink implementation in the European Horizon 2020 E2Data project. TornadoVM has enabled the acceleration of common Flink operators by up to 8x, while requiring zero modifications at the applications**.**
Cloud Providers’ interoperability: TornadoVM has been successfully tested in numerous AWS Elastic Compute Cloud (EC2) instances that incorporate various heterogeneous accelerators (GPUs, FPGAs). Thus, TornadoVM can be utilized by different companies, such as Netflix, to transparently accelerate its analytics (Apache Spark) across heterogeneous EC2 instances.
Machine Learning for Healthcare: Hospital readmission risk prediction algorithm (developed by EXUS as part of the European Horizon 2020 E2Data project, in order to reduce the number of patients that will be readmitted to a hospital within 30 days after their initial release. Performance gains with TornadoVM: 14x.

Other potential markets and use cases:

Routing and Scheduling market.
Financial Technology (fintech).

Opportunity
So far, TornadoVM has been developed exclusively within the academic/research environment. The developers want TornadoVM to become a commercial product and for this, they are seeking partners and investors that can help us make this a reality.

Related Blog

Smart, interactive desk

Get ready to take your space management game to the next level with the University of Glasgow’s innovative project! By combining the

Mechanical Hamstring™

University of Delaware Technology Overview This device was created to allow athletes who suffer a hamstring strain to return to the field

Join Our Newsletter

                                                   Receive Innovation Updates, New Listing Highlights And More