- Changed from:
sc_d3_r3_p0010_z(p=0.010) - Changed to:
sc_d3_r3_p0001_z(p=0.001) - Dataset contains 10,000 syndrome samples
- Changed from:
BP_MAX_ITER = 20 - Changed to:
BP_MAX_ITER = 50 - Rationale: More iterations needed for convergence at lower error rates
- Maintained:
OSD_ORDER = 15(searches 2^15 = 32,768 candidates) - This provides good balance between accuracy and runtime
- Samples: 1000 (for reasonable runtime ~1.6 hours)
- Batch size: 50
- Device: CUDA (GPU acceleration enabled)
According to paper http://arxiv.org/abs/2005.07016:
- Target logical error rate: 0.0001 (0.01%)
- Code: d=3 rotated surface code
- Physical error rate: p=0.001
The decoder is running with the updated configuration:
- File:
run_batch_demo.py - Output log:
decoder_output_1000.log - Monitor script:
monitor_decoder.sh
- BP-only: 0.0000 (0 errors)
- BP+OSD-15: 0.0100 (1 error)
- ~6 seconds per sample
- 1000 samples: ~1.6 hours
- Full 10,000 samples: ~16 hours
To monitor the decoder progress:
./monitor_decoder.shOr check the log directly:
tail -f decoder_output_1000.log- Wait for 1000-sample run to complete
- If logical error rate is close to target (0.0001), consider running with more samples
- If error rate is higher, may need to:
- Increase OSD order (e.g., OSD-20 or OSD-25)
- Further increase BP iterations
- Adjust damping parameter
run_batch_demo.py: Updated dataset path, BP_MAX_ITER, and NUM_SAMPLES