{"id":35222973,"url":"https://github.com/beehive-lab/docker-tornadovm","last_synced_at":"2026-03-27T02:42:44.426Z","repository":{"id":38364810,"uuid":"163155164","full_name":"beehive-lab/docker-tornadovm","owner":"beehive-lab","description":"Docker build scripts for TornadoVM on GPUs: https://github.com/beehive-lab/TornadoVM","archived":false,"fork":false,"pushed_at":"2025-07-10T12:32:45.000Z","size":179,"stargazers_count":29,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-09T14:34:10.146Z","etag":null,"topics":["docker","gpu","gpu-computing","graalvm","hardware-acceleration","intel-gpu","java","nvidia","opencl","tornado-gpu","tornadovm"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beehive-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-26T08:18:53.000Z","updated_at":"2025-07-10T12:32:04.000Z","dependencies_parsed_at":"2023-11-27T10:35:46.345Z","dependency_job_id":"176854e3-c66a-40c2-a58f-54e9dd3b394c","html_url":"https://github.com/beehive-lab/docker-tornadovm","commit_stats":null,"previous_names":["beehive-lab/docker-tornadovm"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/beehive-lab/docker-tornadovm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beehive-lab%2Fdocker-tornadovm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beehive-lab%2Fdocker-tornadovm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beehive-lab%2Fdocker-tornadovm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beehive-lab%2Fdocker-tornadovm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beehive-lab","download_url":"https://codeload.github.com/beehive-lab/docker-tornadovm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beehive-lab%2Fdocker-tornadovm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31011581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:33:22.146Z","status":"ssl_error","status_checked_at":"2026-03-27T02:33:21.763Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gpu","gpu-computing","graalvm","hardware-acceleration","intel-gpu","java","nvidia","opencl","tornado-gpu","tornadovm"],"created_at":"2025-12-30T00:33:59.907Z","updated_at":"2026-03-27T02:42:44.413Z","avatar_url":"https://github.com/beehive-lab.png","language":"Shell","readme":"# Docker for TornadoVM\n\n[![](https://img.shields.io/badge/License-Apache%202.0-orange.svg)](https://opensource.org/licenses/Apache-2.0)\n\nWe have two docker configurations for TornadoVM using 2 different JDKs:\n\n* TornadoVM Docker for **NVIDIA GPUs**: See [instructions](https://github.com/beehive-lab/docker-tornadovm#nvidia-gpus)\n    * JDKs supported:\n\t    * TornadoVM with OpenJDK 21\n\t\t* TornadoVM with GraalVM 23.1.0 and JDK 21\n* TornadoVM Docker for **Intel Integrated Graphics, Intel CPUs, and Intel FPGAs (Emulated Mode)**: See [instructions](https://github.com/beehive-lab/docker-tornadovm#intel-integrated-graphics)\n    * JDKs supported:\n\t    * TornadoVM with OpenJDK 21\n\t\t* TornadoVM with GraalVM 23.1.0 and JDK 21\n\n* TornadoVM Docker for **Polyglot GraalVM Language Implementations**: See [instructions](https://github.com/beehive-lab/docker-tornadovm#polyglot-graalvm-language-implementations)\n    * JDKs supported:\n\t    * TornadoVM with GraalVM 23.1.0 JDK 21\n\n## Nvidia GPUs\n\n### Prerequisites\n\nThe `tornadovm-nvidia-openjdk` docker image needs the docker `nvidia` daemon.  More info here: [https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html).\n\n### How to run?\n\n#### 1) Pull the image\n\nFor the `tornadovm-nvidia-openjdk` image:\n```bash\n$ docker pull beehivelab/tornadovm-nvidia-openjdk:latest\n```\n\nThis image uses the latest TornadoVM for NVIDIA GPUs and OpenJDK 21.\n\n#### 2) Run an experiment\n\nWe provide a runner script that compiles and run your Java programs with TornadoVM. Here's an example:\n\n```bash\n$ git clone https://github.com/beehive-lab/docker-tornadovm\n$ cd docker-tornadovm\n\n## Run Matrix Multiplication - provided in the docker-tornadovm repository\n$ ./run_nvidia_openjdk.sh tornado -cp example/target/example-1.0-SNAPSHOT.jar example.MatrixMultiplication 2048\n\nComputing MxM of 2048x2048\n\tCPU Execution: 0.36 GFlops, Total time = 48254 ms\n\tGPU Execution: 277.09 GFlops, Total Time = 62 ms\n\tSpeedup: 778x \n```\n\n### Using TornadoVM with GraalVM for NVIDIA GPUs\n\nWith JDK 21:\n\n```bash\n$ docker pull beehivelab/tornadovm-nvidia-graalvm:latest\n```\n\n### Some options\n\n```bash\n# To see the generated OpenCL kernel\n$ ./run_nvidia.sh tornado --printKernel example/MatrixMultiplication\n\n# To check some runtime info about the kernel execution and device\n$ ./run_nvidia.sh tornado --debug example/MatrixMultiplication\n```\n\nThe `tornado` command is just an alias to the `java` command with all the parameters for TornadoVM execution. So you can pass any Java (OpenJDK or Hotspot) parameter.\n\n```bash\n$ ./run_nvidia.sh tornado --jvm=\"-Xmx16g -Xms16g\" example/MatrixMultiplication\n```\n\n## Intel Integrated Graphics\n\n### Prerequisites\n\nThe `beehivelab/tornadovm-intel-openjdk` docker image Intel OpenCL driver for the integrated GPU installed.  More info here: [https://github.com/intel/compute-runtime](https://github.com/intel/compute-runtime).\n\n### How to run?\n\n#### 1) Pull the image\n\nFor the `beehivelab/tornadovm-intel-openjdk` image:\n```bash\n$ docker pull beehivelab/tornadovm-intel-openjdk:latest\n```\n\nThis image uses the latest TornadoVM for Intel integrated graphics and OpenJDK 21.\n\n#### 2) Run an experiment\n\nWe provide a runner script that compiles and run your Java programs with TornadoVM. Here's an example:\n\n```bash\n$ git clone https://github.com/beehive-lab/docker-tornadovm\n$ cd docker-tornadovm\n\n## Run Matrix Multiplication - provided in the docker-tornadovm repository\n$ ./run_intel_openjdk.sh tornado -cp example/target/example-1.0-SNAPSHOT.jar example.MatrixMultiplication 256\n\nComputing MxM of 256x256\n\tCPU Execution: 1.53 GFlops, Total time = 22 ms\n\tGPU Execution: 8.39 GFlops, Total Time = 4 ms\n\tSpeedup: 5x\n```\n\n### Running on FPGAs (Emulation mode)? \n\nThe TornadoVM docker image for the Intel platforms contain the FPGA in device `1:0`. \nTo offload a Java application onto an FPGA, you can use the following command (example running the DFT application).\n\n```bash\n$ ./run_intel_openjdk.sh tornado --threadInfo  --jvm=\"-Ds0.t0.device=1:0\" -m tornado.examples/uk.ac.manchester.tornado.examples.dynamic.DFTDynamic 256 default 1\nWARNING: Using incubator modules: jdk.incubator.foreign, jdk.incubator.vector\nInitialization time:  1066024424 ns\n \nTask info: s0.t0\n        Backend           : OPENCL\n        Device            : Intel(R) FPGA Emulation Device CL_DEVICE_TYPE_ACCELERATOR (available)\n        Dims              : 1\n        Global work offset: [0]\n        Global work size  : [256]\n        Local  work size  : [64, 1, 1]\n        Number of workgroups  : [4]\n \nTotal time:  276927741 ns \n \nIs valid?: true\n \nValidation: SUCCESS \n```\n\n### Using TornadoVM with GraalVM for Intel Integrated Graphics\n\nWith JDK 21:\n\n```bash\n$ docker pull beehivelab/tornadovm-intel-graalvm:latest\n```\n\n## Polyglot GraalVM Language Implementations\n\n### Prerequisites\n\nCurrently, there are [three docker images](https://github.com/beehive-lab/docker-tornadovm/tree/master/polyglotImages) available that combine TornadoVM with polyglot GraalVM language implementations (GraalPy, GraalJS and TruffleRuby) and include the OpenCL drivers for NVIDIA GPUs.\nThe three docker images need the docker `nvidia` daemon.  More info here: [https://github.com/NVIDIA/nvidia-docker](https://github.com/NVIDIA/nvidia-docker).\n\n### How to run?\n\n#### 1) Pull the images. The images use the latest TornadoVM for NVIDIA GPUs and OpenJDK 21.\n\n* For the `tornadovm-polyglot-graalpy-23.1.0-nvidia-opencl-container` image:\n```bash\n$ docker pull beehivelab/tornadovm-polyglot-graalpy-23.1.0-nvidia-opencl-container:latest\n```\n\n* For the `tornadovm-polyglot-graaljs-23.1.0-nvidia-opencl-container` image:\n```bash\n$ docker pull beehivelab/tornadovm-polyglot-graaljs-23.1.0-nvidia-opencl-container:latest\n```\n\n* For the `tornadovm-polyglot-truffleruby-23.1.0-nvidia-opencl-container` image:\n```bash\n$ docker pull beehivelab/tornadovm-polyglot-truffleruby-23.1.0-nvidia-opencl-container:latest\n```\n\n#### 2) Run an experiment\n\nWe provide a runner script for each image in order to compile and run your Python, JavaScript and Ruby programs with TornadoVM. Here's an example taken from [TornadoVM documentation](https://tornadovm.readthedocs.io/en/latest/truffle-languages.html#c-run-the-examples) that executes a matrix multiplication OpenCL kernel from Python, JavaScript and Ruby:\n\n* Python:\n```bash\n$ git clone https://github.com/beehive-lab/docker-tornadovm\n$ cd docker-tornadovm\n\n## Launch the docker image with the NVIDIA OpenCL runtime\n$ ./polyglotImages/polyglot-graalpy/tornadovm-polyglot-nvidia.sh\n\n## Run Matrix Multiplication from a Python program.\n$ ./polyglotImages/polyglot-graalpy/tornadovm-polyglot-nvidia.sh tornado --printKernel --truffle python example/polyglot-examples/mxmWithTornadoVM.py\n\n## Launch the docker image with the Intel oneAPI runtime\n$ ./polyglotImages/polyglot-graalpy/tornadovm-polyglot-intel.sh\n\n## Run Matrix Multiplication from a Python program.\n$ ./polyglotImages/polyglot-graalpy/tornadovm-polyglot-intel.sh tornado --printKernel --truffle python example/polyglot-examples/mxmWithTornadoVM.py\n```\n\n* JavaScript:\n```bash\n$ git clone https://github.com/beehive-lab/docker-tornadovm\n$ cd docker-tornadovm\n\n## Launch the docker image with the NVIDIA OpenCL runtime\n$ ./polyglotImages/polyglot-graaljs/tornadovm-polyglot.sh\n\n## Run Matrix Multiplication from a JavaScript program.\n$ ./polyglotImages/polyglot-graaljs/tornadovm-polyglot.sh tornado --printKernel --truffle js example/polyglot-examples/mxmWithTornadoVM.js\n```\n\n* Ruby:\n```bash\n$ git clone https://github.com/beehive-lab/docker-tornadovm\n$ cd docker-tornadovm\n\n## Launch the docker image with the NVIDIA OpenCL runtime\n$ ./polyglotImages/polyglot-truffleruby/tornadovm-polyglot.sh\n\n## Run Matrix Multiplication from a Python program.\n$ ./polyglotImages/polyglot-truffleruby/tornadovm-polyglot.sh tornado --printKernel --truffle ruby example/polyglot-examples/mxmWithTornadoVM.rb\n```\n\n\n\nEnjoy TornadoVM! \n\nDocker scripts have been inspired by [blang/latex-docker](https://github.com/blang/latex-docker)\n\n## License\n\nThis project is developed at [The University of Manchester](https://www.manchester.ac.uk/), and it is fully open source under the [Apache 2](https://github.com/beehive-lab/docker-tornadovm/blob/master/LICENSE) license.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeehive-lab%2Fdocker-tornadovm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeehive-lab%2Fdocker-tornadovm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeehive-lab%2Fdocker-tornadovm/lists"}