Skip to content

Phase 3 Third-Backend ZNE Extension: ibm_kingston

Date: 2026-05-20

Decision

The fourth paper review requested a stronger endpoint before treating the Phase 3 paper as complete: either a third-backend ZNE replication or an n=6 extension. The implemented lane is a third-backend n=4 ZNE replication, because it reuses the already preregistered five-channel reduced-Pauli ZNE stress test without introducing a rushed new n=6 protocol.

Accessible IBM backends for the account at selection time:

Backend Qubits Operational Pending jobs
ibm_fez 156 True 0
ibm_marrakesh 156 True 1
ibm_kingston 156 True 38

ibm_sherbrooke and ibm_torino were probed first and were not available to the account. Since ibm_marrakesh and ibm_fez are already in the manuscript, ibm_kingston is the only accessible third-backend candidate.

Readiness

No-submit readiness command:

PYTHONDONTWRITEBYTECODE=1 python scripts/phase3_entanglement_tomography_ibm.py \
  --backend ibm_kingston \
  --zne-subset-rows data/phase3_entanglement_tomography/entanglement_tomography_rows_2026-05-20_ibm_fez_pinned_full_readout.csv \
  --zne-noise-scales 1,3,5 \
  --max-depth 1900 \
  --max-total-gates 5000

Readiness artefact:

  • data/phase3_entanglement_tomography/entanglement_tomography_live_ibm_kingston_2026-05-20T030151Z.json
  • SHA256: 858520263a8a855e12438391311545159a6971e42818131cd98756da0cf1a165

Readiness result:

Field Value
Status readiness_passed
Physical qubits [141, 142, 143, 144]
Main circuits 45
Readout circuits 16
Total circuits 61
Estimated QPU minutes 0.5591666666666667
Budget ceiling minutes 25.0
Maximum transpiled depth 1686
Maximum basis-expansion ratio 4.574585635359116

Submission

Approved submission command:

PYTHONDONTWRITEBYTECODE=1 python scripts/phase3_entanglement_tomography_ibm.py \
  --backend ibm_kingston \
  --zne-subset-rows data/phase3_entanglement_tomography/entanglement_tomography_rows_2026-05-20_ibm_fez_pinned_full_readout.csv \
  --zne-noise-scales 1,3,5 \
  --max-depth 1900 \
  --max-total-gates 5000 \
  --submit \
  --confirm-budget

Execution artefact:

  • data/phase3_entanglement_tomography/entanglement_tomography_live_ibm_kingston_2026-05-20T030211Z.json
  • SHA256 after pending-job registration: 56baf1812ba8193fc67b05f27fcf99ae8ce4960a9e16e604e9c8b09e7884d635

IBM jobs:

Role Job ID Final status
Main ZNE circuits d86i8fas46sc73f70vg0 DONE
Full 16-state readout calibration d86ijr9789is738vnh30 DONE

The main job was submitted by the guarded runner. The readout job was submitted independently after the main job entered the IBM queue, because the guarded runner waits for the main result before launching readout. The local sequential runner was then stopped to prevent a duplicate readout submission.

Reduction

The completed jobs were retrieved into the canonical execution artefact and reduced with:

PYTHONDONTWRITEBYTECODE=1 python scripts/analyse_phase3_entanglement_zne.py \
  data/phase3_entanglement_tomography/entanglement_tomography_live_ibm_kingston_2026-05-20T030211Z.json \
  --result-tag 2026-05-20_ibm_kingston_zne

Reducer outputs:

  • data/phase3_entanglement_tomography/entanglement_zne_summary_2026-05-20_ibm_kingston_zne.json
  • data/phase3_entanglement_tomography/entanglement_zne_scale_rows_2026-05-20_ibm_kingston_zne.csv
  • data/phase3_entanglement_tomography/entanglement_zne_channel_summary_2026-05-20_ibm_kingston_zne.csv
  • docs/campaigns/phase3_entanglement_zne_manifest_2026-05-20_ibm_kingston_zne.md

Result snapshot:

Field Value
Scale rows 15
Channels 5
Scale-1 mean absolute deviation 0.4533514489822172
Linear ZNE mean absolute deviation 0.4729152510655504
Readout-mitigated linear ZNE mean absolute deviation 0.480609277847894
Quadratic ZNE mean absolute deviation 0.45559754273221703

Channel-level result: all four DLA transverse channels move farther from exact under linear ZNE, while the FIM control improves. This is a qualitative third-backend replication of the Fez ZNE stress-test pattern, still bounded to the preregistered five-channel small-system stress test.

Claim Boundary

This is a completed third-backend ZNE replication for the preregistered five-channel reduced-Pauli stress test only. It is not an n=6 extension, not a backend-general entanglement-dynamics claim, not full tomography, and not a quantum-advantage claim. The paper may now describe Kingston as a third-backend qualitative replication of the Fez ZNE pattern once the manuscript is updated from the committed reducer artefacts.

Next Gate

Update the LaTeX manuscript and PDF with the Kingston reducer outputs. The safe paper language is qualitative third-backend replication: DLA transverse channels again worsen under linear ZNE, while the FIM control improves.

Restart Runbook

Use this section when returning to the queued jobs. Do not start a replacement Kingston run unless one of the two job IDs below is cancelled or failed and the failure is recorded first.

Canonical pending artefact:

data/phase3_entanglement_tomography/entanglement_tomography_live_ibm_kingston_2026-05-20T030211Z.json

Job roles:

main    d86i8fas46sc73f70vg0
readout d86ijr9789is738vnh30

Check live job status without exposing credentials:

PYTHONDONTWRITEBYTECODE=1 python - <<'PY'
from pathlib import Path
import importlib.util
from qiskit_ibm_runtime import QiskitRuntimeService

spec = importlib.util.spec_from_file_location(
    "phase1", "scripts/phase1_mini_bench_ibm_kingston.py"
)
phase1 = importlib.util.module_from_spec(spec)
spec.loader.exec_module(phase1)
token, instance = phase1.parse_vault(
    Path("~/.config/scpn-quantum-control/credentials.md").expanduser()
)
service = QiskitRuntimeService(channel="ibm_cloud", token=token, instance=instance)
for role, job_id in {
    "main": "d86i8fas46sc73f70vg0",
    "readout": "d86ijr9789is738vnh30",
}.items():
    job = service.job(job_id)
    print(f"{role}\t{job_id}\t{job.status()}")
PY

Expected current pre-completion state:

status: pending_jobs_submitted
job_ids: ["d86i8fas46sc73f70vg0", "d86ijr9789is738vnh30"]
pending_job_roles.main: d86i8fas46sc73f70vg0
pending_job_roles.readout: d86ijr9789is738vnh30

After both jobs are DONE, hydrate the canonical artefact with:

  • status: completed;
  • wall_time_main_s and wall_time_readout_s if recoverable from runtime metadata, otherwise an explicit wall_time_*_s: null plus a recovery note;
  • circuits: 45 main count rows and 16 readout count rows, each preserving the original meta, job_id, counts, and transpiled-circuit metadata.

The pending artefact already contains metas_main and metas_readout; preserve their ordering when attaching counts. The readout submission metadata is stored under readout_submission_metadata because the readout job was launched by the recovery helper rather than by the sequential guarded runner.

Then run the reducer:

PYTHONDONTWRITEBYTECODE=1 python scripts/analyse_phase3_entanglement_zne.py \
  data/phase3_entanglement_tomography/entanglement_tomography_live_ibm_kingston_2026-05-20T030211Z.json \
  --result-tag 2026-05-20_ibm_kingston_zne

Expected reducer outputs:

data/phase3_entanglement_tomography/entanglement_zne_summary_2026-05-20_ibm_kingston_zne.json
data/phase3_entanglement_tomography/entanglement_zne_scale_rows_2026-05-20_ibm_kingston_zne.csv
data/phase3_entanglement_tomography/entanglement_zne_channel_summary_2026-05-20_ibm_kingston_zne.csv
docs/campaigns/phase3_entanglement_zne_manifest_2026-05-20_ibm_kingston_zne.md

Paper update gate:

  • If all four DLA transverse channels again move farther from exact under linear ZNE while the FIM control improves or behaves differently, update the paper as a third-backend structured-distortion replication.
  • If Kingston weakens, reverses, or randomises the Fez pattern, update the paper as a limited two-backend result plus third-backend falsification or partial replication.
  • If either job fails or is cancelled, do not replace it silently. Record the failure status, then rerun readiness before deciding whether another ibm_kingston attempt is scientifically and budget-wise justified.

Minimum verification before committing the completed result:

PYTHONDONTWRITEBYTECODE=1 python -m pytest \
  tests/test_phase3_entanglement_zne_analysis.py \
  tests/test_phase3_entanglement_paper_assets.py \
  tests/test_doc_claim_boundaries.py -q
PYTHONDONTWRITEBYTECODE=1 python tools/audit_release_readiness.py --fail-on-blocker
git diff --check