TornadoVMPulse: A quick analyzer for TornadoVM's profilling logs
Abstract
TornadoVM Pulse TornadoVMPulse is an interactive profilling tool for visualizing and analyzing profiling data from TornadoVM. It provides deep insights into kernel execution, data transfer, memory, and power usage, with a modern, user-friendly interface. GitHub Release: v0.1.0 GitHub Repository: https://github.com/beehive-lab/TornadoVMPulse Features Upload and Analyze Logs: Supports TornadoVM profiler logs in JSON, log, or CSV format. Automatic Conversion: Raw logs are automatically converted to CSV for analysis. Interactive Visualizations: Task Time Distribution (color-coded by task graph) Memory Usage Power Usage Copy-In/Copy-Out Analysis Total Execution Time Analysis (table, stacked bar, and sunburst chart) Task Graph Analysis (per-task breakdown for a selected task graph) Sidebar Configuration: Select which metrics to display and the time unit (ns, ms, sec). Downloadable Results: Download generated CSVs after processing. Modern UI: Custom logo, collapsible info panels, and interactive charts. Usage Install dependencies pip install -r requirements.txt Run the dashboard streamlit run src/app.py Upload a profiling log file Drag and drop a raw JSON/log or CSV file into the uploader. If a raw file is uploaded, it is automatically converted to CSV and made available for download. Explore the dashboard Use the sidebar to select which metrics to display and the time unit. Review the visualizations and download the generated CSV if needed. Visualizations & Metrics Task Time Distribution Bar chart showing the sum of kernel execution times for each task, color-coded by task graph. Pie chart showing the overall distribution. Memory Usage Bar chart showing total and average memory usage (copy-in bytes) for each task graph. Power Usage Bar chart showing average power usage for each task graph. Copy-In / Copy-Out Analysis Table and bar chart showing time spent on data transfers, number of transfer operations, and their contribution to total execution time. Total Execution Time Analysis Table breaking down total execution time by task graph and action (kernel, dispatch, copy-in, copy-out), including percentages. Stacked bar chart for visual comparison. Sunburst chart: Hierarchical breakdown of execution time by task graph and component with interactive tooltips. Example: Total Execution Time Analysis Task Graph Analysis Dropdown selection for a specific task graph. Stacked bar chart showing time distribution (kernel, copy-in, copy-out, dispatch) for each task. Memory usage per task (when available). Summary Statistics Statistical summary of the selected metrics. Raw Data View the raw input data as a DataFrame. Sidebar Controls Metrics Configuration: Select which visualizations are displayed. Time Unit Selection: Nanoseconds, milliseconds, or seconds. Status Panel: CSV generation status and download link. About the TornadoVM Profiler Official Documentation Enable the profiler using --enableProfiler console, silent, or via the ExecutionPlan API. Profiler output includes kernel execution, dispatch, copy-in/out, and power metrics. Supported power backends: NVIDIA NVML (OpenCL / PTX) oneAPI Level Zero SYSMAN (SPIR-V) Save profiler output using --dumpProfiler . Customization The dashboard uses a custom logo located at static/pulse-logo.png. The UI can be extended with additional visualizations and metrics as needed. Acknowledgments This work is partially funded by the following EU & UKRI grants (most recent first): AERO (101092850) – https://aero-project.eu/ P2CODE (101093069) – https://p2code-project.eu/ ENCRYPT (101070670) – https://encrypt-project.eu TANGO (101070052) – https://tango-project.eu/
Fields of Study & Subjects
Parallel Computing and Optimization Techniques
Embedded Systems Design Techniques
Computer Graphics and Visualization Techniques
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 28 January 2026