microsoft / microsoft/qdk-ec

RemoteConditionalCorrection blocks finalizing logical readout even when the correction commutes with logical observables

Open
#110 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
64
Forks
16
Avg merge
1d 5h
Merged PRs (30d)
5

Description

First of all, thank your for building deq and open-sourcing it! It is a fantastic tool!

I'm using RemoteConditionalCorrection to implement Pauli-feedforward. However, I find that such feedforward blocks readouts, even when the propagated Pauli correction commutes with the logical observable.

Problem. A gadget's frame is only computed once every remote conditional readout it references has a resolved frame (deq_runtime/src/misc/pauli_frame_tracker.rs, the early returns in propagate_from). Since downstream gadgets in turn require their input peers' frames, one unresolved conditional correction blocks decode() (via wait_for_pauli_frame, deq_runtime/src/coordinator/window_coordinator.rs) for the entire downstream cone — even when the conditional Pauli commutes with the measured logical observable, so the readout provably cannot depend on it.

Example. A conditional logical Z (remote conditional correction hitting only LX residual rows) followed by a Z-basis logical measurement whose readout_propagation reads only the LZ column: the influence of the condition bit on the readout is identically zero over GF(2), yet the measurement's readout is withheld until the remote readout's frame resolves. For feed-forward that puts an unrelated decode's latency on the critical path.

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 deq_runtime/src/misc/pauli_frame_tracker.rs at the early returns in propagate_from, then trace decode() through wait_for_pauli_frame in deq_runtime/src/coordinator/window_coordinator.rs. Compare the conditional correction's propagated frame with the measurement's readout_propagation, including the LX/LZ example. Done means an unrelated unresolved remote frame no longer withholds a commuting logical readout.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.