microsoft / microsoft/qdk

Parallel trace transformation

Open
#3,096 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement needs triage
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.