File size: 4,339 Bytes
ae8e0ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
# ============================================================
# QR-SPPS NB-3 + NB-4: ADAPT-VQE Policy + DOS-QPE
# ============================================================
# Run from: ~/QARPdemo
#   cd ~/QARPdemo && sbatch run_nb3_nb4.sh
#
# All .pkl files are read/written relative to the working directory.
#
# NB-3 (ADAPT-VQE Policy Optimisation):
#   6 counterfactual policies ranked by gradient screening.
#   Warm-starts from NB2 vqe_params_sub_A (30q ansatz parameters).
#   Each policy runs in ~0.7s (O(1) expectation values, no re-opt).
#   Runtime: ~15 min total.
#
# NB-4 (DOS-QPE Spectral Reconstruction + Cascade Dynamics):
#   64 Trotter steps, T_max=15.0, dt=0.2381, Nyquist=2.10 (no aliasing).
#   Cascade: 10 snapshots, T_casc=6.0, dt_casc=0.6.
#   Tail risk: 6 policies x 60 temperature values.
#   Runtime: ~20-30 min.
#
# Both scripts set QARP_DISABLE_MPI=1 internally.
# Execution: single-node, NO MPI for either notebook.
#
# Depends on: QRSPPS_hamiltonians.pkl  (NB1)
#             QRSPPS_vqe_results.pkl   (NB2)
# Produces:   QRSPPS_policy_results.pkl
#             QRSPPS_dosqpe_results.pkl
#             QRSPPS_policy_effectiveness.png
#             QRSPPS_policy_heatmap.png
#             QRSPPS_policy_map.png
#             QRSPPS_policy_roi.png
#             QRSPPS_dosqpe_full.png
#
# Expected key results (verifiable against .pkl files):
#   NB3: Stockpile release best dE[40q] = -7.4505 (16.67% reduction)
#        Supplier subsidy top ADAPT gradient g = 4.1955
#   NB4: |A(0)| = 1.0000  |A(T_max)| = 0.0746
#        E_cutoff = -43.2197  spectral_width = 1.7333
#        cascade final mean stress = 0.7945
# ============================================================
#SBATCH --job-name=qrspps_nb3nb4
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=12
#SBATCH --partition=Interactive
#SBATCH --time=48:00:00
#SBATCH --output=log_nb3_nb4.txt

source ~/QARPdemo/setup_env.sh

export QARP_DISABLE_MPI=1
export OMP_NUM_THREADS=48

echo "================================================================"
echo " QR-SPPS NB-3 + NB-4: ADAPT-VQE + DOS-QPE"
echo "================================================================"
echo " Start : $(date)"
echo " Node  : $(hostname)"
echo " Job   : $SLURM_JOB_ID"
echo " Dir   : $(pwd)"
echo "================================================================"

# Dependency check
for PKL in QRSPPS_hamiltonians.pkl QRSPPS_vqe_results.pkl; do
    if [ ! -f "$PKL" ]; then
        echo "ERROR: $PKL not found in $(pwd)"
        echo "Ensure NB1 (Jupyter) and NB2 (run_nb2_vqe.sh) completed."
        exit 1
    fi
    echo "Found : $PKL  ($(du -h $PKL | cut -f1))"
done
echo ""

# NB-3
echo "=== Starting NB-3: QRSPPS_NB3_Policy_30q.py ==="
echo "    6 policies via ADAPT-VQE gradient screening"
echo "    Baseline E0[30q]=-33.5198 | E0[40q]=-44.6931"
echo "    Start: $(date)"

python3 QRSPPS_NB3_Policy_30q.py

NB3_EXIT=$?
echo "NB3 exit: $NB3_EXIT  ($(date))"

if [ $NB3_EXIT -ne 0 ]; then
    echo "ERROR: NB-3 failed (exit $NB3_EXIT). NB-4 will not run."
    exit $NB3_EXIT
fi

if [ ! -f "QRSPPS_policy_results.pkl" ]; then
    echo "ERROR: QRSPPS_policy_results.pkl not created. Check log_nb3_nb4.txt."
    exit 1
fi
echo "Output: QRSPPS_policy_results.pkl  ($(du -h QRSPPS_policy_results.pkl | cut -f1))  OK"
echo ""

# NB-4
echo "=== Starting NB-4: QRSPPS_NB4_DOSQPE_30q.py ==="
echo "    64 Trotter steps | T_max=15.0 | dt=0.2381 | Nyquist=2.10"
echo "    Cascade: 10 snapshots | T_casc=6.0"
echo "    Start: $(date)"

python3 QRSPPS_NB4_DOSQPE_30q.py

NB4_EXIT=$?
echo "NB4 exit: $NB4_EXIT  ($(date))"

if [ $NB4_EXIT -ne 0 ]; then
    echo "ERROR: NB-4 failed (exit $NB4_EXIT). Check log_nb3_nb4.txt."
    exit $NB4_EXIT
fi

if [ ! -f "QRSPPS_dosqpe_results.pkl" ]; then
    echo "ERROR: QRSPPS_dosqpe_results.pkl not created. Check log_nb3_nb4.txt."
    exit 1
fi
echo "Output: QRSPPS_dosqpe_results.pkl  ($(du -h QRSPPS_dosqpe_results.pkl | cut -f1))  OK"

echo ""
echo "================================================================"
echo " NB-3 + NB-4 ALL DONE"
echo " End: $(date)"
echo "================================================================"
echo ""
echo "Next steps:"
echo "  Step A: cd ~/QARPdemo && sbatch run_nb5_30q.sh    (12h MPI benchmark)"
echo "  Step B: cd ~/QARPdemo && sbatch run_nb5_final.sh  (after Step A)"
exit 0