Parallel trace transformation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1k
- Forks
- 212
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 65
Description
Is your feature request related to a problem? Please describe.
We could improve QRE runtime when expensive trace transforms are in place by applying trace transforms in parallel. This currently happens sequential in TraceQuery.enumerate even though resource estimation makes use of threading.
Describe the solution you'd like
Making this parallel in Python won't help much because most of the trace code is in rust and we would need pickling which requires a large amount of serialization (this may get easier if we re-factor the internal trace data type). A better way would be to move the enumeration code into Rust and apply multi-threading there.
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 by locating the Rust implementation behind Python's TraceQuery.enumerate and the existing threaded resource-estimation path. Read how trace transformations and internal trace data are represented, then determine how enumeration can run in parallel without Python pickling. Done means expensive trace transforms are applied concurrently in Rust while preserving the existing enumeration behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance, quantum-computing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100