tornadovmpulse
A quick analyzer for TornadoVM's profilling logs
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.5%) to scientific vocabulary
Repository
A quick analyzer for TornadoVM's profilling logs
Basic Info
- Host: GitHub
- Owner: mikepapadim
- Language: Python
- Default Branch: main
- Size: 2.3 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
TornadoVMPulse
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.
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 beautiful charts.
Usage
Install dependencies:
bash pip install -r requirements.txtRun the dashboard:
bash streamlit run src/app.pyUpload a profiling log file:
- Drag and drop a raw JSON/log or CSV file into the uploader.
- If a raw file is uploaded, it will be converted to CSV and 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 for overall distribution.
Example: Task Time Distribution as a Pie Chart (proportion of total kernel time per task):

Example: Task Time Distribution as a Bar Chart (kernel time per task, color-coded by task graph):

Memory Usage
- Bar chart of total and average memory usage (copy-in bytes) for each task graph.
Power Usage
- Bar chart of average power usage for each task graph.
Copy-In/Copy-Out Analysis
- Table and bar chart showing time and number of data 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), with percentages.
- Stacked bar chart for visual comparison.
- Sunburst chart: Hierarchical breakdown of total execution time by task graph and component, with interactive tooltips.
Example Table, Stacked Bar, and Sunburst Chart:

Task Graph Analysis
- Dropdown to select a specific task graph.
- Stacked bar chart showing how time is spent (kernel, copy-in, copy-out, dispatch) for each task in the selected graph.
- Memory usage per task (if 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 to display.
- Select time unit: Choose between nanoseconds, milliseconds, or seconds.
- Status: See CSV generation status and download the generated CSV.
About the TornadoVM Profiler
- Official Documentation
- Enable the profiler with
--enableProfiler consoleorsilentor via theExecutionPlanAPI. - Profiler output includes kernel, dispatch, copy-in/out, and power metrics.
- Supported power metrics: NVIDIA NVML (OpenCL/PTX) and oneAPI Level Zero SYSMAN (SPIRV).
- Save profiler output with
--dumpProfiler <FILENAME>.
Customization
- The dashboard uses a custom logo (
static/pulse-logo.png). - You can further customize the UI and add new visualizations as needed.
License
MIT License
Owner
- Name: Michalis Papadimitriou
- Login: mikepapadim
- Kind: user
- Location: Remote
- Company: University of Manchester
- Website: https://mpapadimitriou.com/
- Twitter: mikepapadim
- Repositories: 63
- Profile: https://github.com/mikepapadim
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this dashboard in your research, please cite it as below."
title: "TornadoVMPulse"
authors:
- family-names: Papadimitriou
given-names: Michail
orcid: "https://orcid.org/0000-0000-0000-0000"
affiliation: "[Your Institution or Organization]"
email: "mpapadimitriou92@gmail.com"
version: "1.0"
date-released: "2024-04-27"
repository-code: "https://github.com/mikepapadim/TornadoVMPulse"
license: "MIT"
keywords:
- TornadoVM
- Profiler
- Visualization
- Performance Analysis
doi: "10.5281/zenodo.XXXXXXX" # Replace with your Zenodo DOI if available
url: "https://tornadovm.readthedocs.io/en/latest/profiler.html"
abstract: |
The TornadoVMPulse is an interactive web application for visualizing and analyzing profiling data from TornadoVM. It supports both raw JSON/log files and pre-processed CSV files, providing deep insights into kernel execution, data transfer, memory, and power usage. If you use this tool in your research, please cite this repository.
GitHub Events
Total
- Watch event: 1
- Member event: 4
- Push event: 7
- Create event: 2
Last Year
- Watch event: 1
- Member event: 4
- Push event: 7
- Create event: 2
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| mikepapadim | m****m@h****m | 14 |
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- json5 ==0.9.14
- numpy ==1.26.0
- pandas ==2.2.0
- plotly ==5.18.0
- streamlit ==1.32.0