lowRISC / lowRISC/dvsim

Reduce size of tool usage graph in HTML instrumentation report

Open
#212 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.