wai-quantum-service: the quantum stack as a public job service; wai-quantum 0.6.3: the wide tableau, any-angle MPS, tiled state vectors, branching trajectories, threaded sparse Pauli #297
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/quantum-service"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR adds
wai-quantum-service, an HTTP job service over the WAI quantum stack. Anyone can send an OpenQASM program, with no account and no key. Each result says which method produced it, how accurate it is, and carries an Ed25519 signature that anyone can check.Live at https://wai.transaction.science/quantum-jobs/v1, deployed from this branch. The smoke checks pass against the public URL.
It also releases wai-quantum 0.6.3, which adds
quantum_tableau: wide stabilizer simulation on up to 32768 qubits.The service's
stabilizermethod runs on it, so it now takes up to 32768 qubits and answers expectations as well as counts. Over the public URL, a 2000-qubit GHZ state with a phase flip gives ⟨X^⊗2000⟩ = −1 in 260 ms.It also adds
quantum_mpsim: matrix product states for circuits with any angles, on up to 4096 qubits.M. It keeps the leading eigenvectorsUofM·M†and makesU†·Mthe new center, so no singular value is divided by. The update is truncated to the bond limit and a cutoff. Gates on distant qubits are routed by swaps. The eigensolver (Householder, then QL with implicit shifts) is new inlinalgand deterministic.In the service,
mpssits after the exact methods inauto, at bond dimension up to 256 within a work estimate. A truncated result is labelled heuristic, carries its fidelity estimate, and gets a warning below 0.9. Over the public URL, a 300-qubit continuous-angle circuit was sampled in 7 ms.Speed work, folded in
The ranked next items from the research are folded into this release, so one CI run covers everything.
quantum_sv).rungroups consecutive gates into passes. Each tile, the amplitudes that agree outside the pass's local bits, is copied into a cache-sized buffer; every gate is applied there, and the tile is copied back.quantum_noisy::branching_trajectories). Every shot is an independent noisy trajectory in law, but shots that took the same errors share one state.quantum_spd). Workers start once per run. Consecutive Clifford gates go in one pass. A rotation's new terms have distinct strings, so each coefficient receives at most one addition.trajectoriesruns every shot as a branching trajectory and reportshistories;paulireturns a thresholdladder(the value and bound a decade at a time), so convergence is visible and signed;mpsgoes to bond 256.What's in it
OpenQASM front end (
src/qasm.rs). It reads OpenQASM 3 and the OpenQASM 2 forms in common use: registers with broadcast, usergatedefinitions inlined with their parameters, angle expressions, and every terminal-measurement form. Mid-circuit measurement, classical control and gate modifiers are refused, with the line they're on.rz(0.3)was refused.Seven methods plus
auto(src/catalog.rs,src/run.rs):exactstatevectorstabilizerpaulimpstensor_networkdensity_matrixtrajectoriesautopicks the first method that can take the job, and explains why it rejected the others.Running safely on a shared host (
src/jobs.rs):Receipts (
src/receipt.rs): a BLAKE3 digest over the request and the result, signed with Ed25519.POST /v1/verifychecks one.Measured
-D warnings. All 632 library tests pass with every feature, and the wasm32 build succeeds.smoke.sh, run against local instances and the public URL. All of these held:Deployment
The service runs on the build host under launchd (
science.transaction.wai-quantum-service), from~/wai-quantum-service/bin, with its key at~/.config/wai-quantum-service/signing.key.tailscale serve --tcp 8241publishes that on the tailnet. This avoids opening the host's firewall to an unsigned binary./quantum-jobs/*to it. The commit is in site-ops, not pushed.X-Forwarded-For, so per-client limits apply to real clients.Next
🤖 Generated with Claude Code
wai-quantum-service 0.1.0: the quantum stack as a public job serviceto wai-quantum 0.6.3 (wide stabilizer tableau) and wai-quantum-service 0.1.0: the quantum stack as a public job servicewai-quantum 0.6.3 (wide stabilizer tableau) and wai-quantum-service 0.1.0: the quantum stack as a public job serviceto wai-quantum 0.6.3 (wide stabilizer tableau, any-angle MPS) and wai-quantum-service 0.1.0: the quantum stack as a public job servicewai-quantum 0.6.3 (wide stabilizer tableau, any-angle MPS) and wai-quantum-service 0.1.0: the quantum stack as a public job serviceto wai-quantum-service: the quantum stack as a public job service; wai-quantum 0.6.3: the wide tableau, any-angle MPS, tiled state vectors, branching trajectories, threaded sparse Pauli