Reduce size of tool usage graph in HTML instrumentation report
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13
- Forks
- 21
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 8
Description
See https://github.com/lowRISC/dvsim/pull/204.
This graph isn't huge (around 2MB for 50-60k jobs), but it's larger than the other graphs by some factor due to the amount of data being rendered. But it also isn't large enough that we can make huge savings by exporting to a PNG.
It would be worth exploring converting the [`ConcurrencyLineGraph`](https://github.com/lowRISC/dvsim/blob/445d759ccba40e967f6c8e67a050690cc4b7de2b/src/dvsim/instrumentation/report/usage.py#L25) to use e.g. `pandas` or `scipy` to quantize/smooth the input data to reduce the size of the generated graph, as for regular runs, most changes in concurrency are just noise (a job finishing and then something new immediately being scheduled).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/dvsim/instrumentation/report/usage.py at ConcurrencyLineGraph and inspect how the HTML graph data is generated. Explore pandas or scipy quantization and smoothing, then compare report output sizes for typical runs. Done means the tool usage graph is materially smaller without losing useful concurrency information.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- pandas, python
- Domain
- data-visualization, performance
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100