TornadoVM 0.2

TornadoVM is a practical heterogeneous programming framework for Java, Tornado enables automatic Just-In-Time (JIT) compilation and acceleration of Java programs on any OpenCL compatible device, such as multi-core CPUs, GPUs and FPGAs.

Tornado provides a minimal parallel task-based API (Application Programming Interface) that programmers can use to express computation to be offloaded and accelerated on GPUs and FPGAs and multi-core CPUs.

Device Emulator

The Device Emulator finds an efficient mapping of the application tasks onto the nodes/cores in low time, i.e., which application task should run on each node/core.

ERIKA 3

Embedded Many-Core Operating System – a small kernel implementation which efficiently handles parallel threads in manycore

Monitoring Infrastructure

The Monitoring Infrastructure monitors the heterogeneous resources to provide metrics (power consumption, temperature, utilization) about the status of the different devices and also historical statistics of these metrics.

Application Lifecycle Development Engine (ALDE)

ALDE is responsible for the workload scheduling and the management of the application life-cycle while it is executed. ALDE will take the application source code, packetize for different heterogenous architectures configurations and, if possible, deploy it via a TANGO Device Supervisor and manage the application execution. One compilation of code, many deployments in dfferent target architectures.