Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News TornadoVM Launches TornadoInsight Plugin for IntelliJ IDEA

TornadoVM Launches TornadoInsight Plugin for IntelliJ IDEA

TornadoInsight is an open-source IntelliJ plugin released in December 2023 to improve developers' experience while working with TornadoVM. Its key features include an on-the-fly static checker and a dynamic testing framework.

TornadoVM is an open-source Java parallel programming framework to run a subset of Java on a heterogeneous platform. It is a plugin to OpenJDK and GraalVM that can offload Java bytecode into OpenCL for heterogeneous computing. It extends the Java Programming language to support offloading computations to FPGAs and GPUs. TornadoVM offers a simple application programming interface (API) to facilitate programming in it.

TornadoVM only supports a subset of the Java language due to limitations stemming from the underlying OpenCL programming model. TornadoInsight plugin's static checker identifies unsupported Java features, providing a detailed explanation by scanning TornadoVM code. The plugin provides a code inspection pop-up in the IntelliJ IDE's editor highlighting the problematic code and an IntelliJ IDE tool window to view the comprehensive explanation of the limitation. See the GitHub README for the full list of currently supported inspections.

In addition to the static checker, TornadoInsight introduces a dynamic testing framework that enables developers to test TornadoVM without the need to write the main method or initialize the method parameters. Click on "Run Dynamic Inspection" from the TornadoInsight plugin tool window by selecting the method to test. Under the hood, the plugin creates the test file and initializes the input and output variables based on the method parameter types. Developers should define a tentative "max array size," in TornadoInsight plugin settings (Settings -> TornadoInsight or Preferences -> TornadoInsight), that can be used to configure the input and output arrays of a TornadoVM task. The plugin also generates the TaskGraph objects needed by TornadoVM and displays the results of the dynamic inspection in the IDE's console. If the plugin is unable to execute dynamic inspection, the exception stack trace is displayed in the IDE's console. Furthermore, an information notification pop-up on the bottom right corner of the IDE will display the total elapsed time for dynamic test execution.

Other IDE plugin settings include configuring the directory path of TornadoVM and JDK 21 as they are both essential for using the plugin.

The plugin is available on JetBrains Marketplace and is available to install and use with JetBrains IDE versions 2022.3 and above. The plugin requires a minimum version of JDK 21 and TornadoVM 1.0 installed before using the plugin. The source code is available on GitHub. More information about TornadoVM can be found on their website.

About the Author

Rate this Article