Buckets:
| # cwm3/eval/run_joint_evals_c4.sh — R2 WP4 batch 2 C4 (pre-registration docs/decisions.md 2026-09-17T19:44:28Z): paired evaluations of the latent-auxiliary | |
| # variants of the ECAN joint model, CPU, layout guards on, several pairings in parallel (xargs -P; each call gated on MemAvailable >= MIN_AVAIL_GB). | |
| # Runs I1_all_minus_road2drv_lat{01,03,0}_s<k>_final_ecan vs the FROZEN ECAN main I1_all_minus_road2drv_s<k>_final_ecan (read-only), identical rows, driver | |
| # populations from the v2 causal kin targets; every tag idempotent (skipped when its rows exist). Through eval/pc_joint_locked.py (flock-guarded CSV append). | |
| # finalcv_s<k>_allminusecanlat{01,03,0}_vs_allminusecan VALIDATION split, every cell — the pre-registered ADOPTION / lam-selection reading | |
| # finalcv_s<k>_allminusecanlat{01,03}_vs_allminusecanlat0 validation, vs the lam = 0 RE-TRAINING control (the re-training noise band) | |
| # finalc_s<k>_allminusecanlat{01,03,0}_vs_allminusecan TEST split — confirmation (Δ [CI] + acceptable-degradation margins; hazard NLL cost cells) | |
| # finalc_s<k>_allminusecanlat{01,03}_vs_allminusecanlat0 test, vs the lam = 0 control | |
| # finalc_s<k>_allminusecanlat{01,03}_vs_k0 driver cells vs the k0 heuristic (B1 on the variant) | |
| # finalP_s<k>_allminusecanlat{01,03,0}_vs_allminusecan P road cells (eval/pressure_eval.py), test | |
| # bash eval/run_joint_evals_c4.sh "0 1 2" [par=3] [render=1] | |
| set -u | |
| cd "$(dirname "$0")/.." | |
| PY=python | |
| export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 | |
| SEEDS="${1:-0 1 2}"; PAR="${2:-3}"; RENDER="${3:-1}" | |
| MIN_AVAIL_GB="${MIN_AVAIL_GB:-10}" | |
| C="--kin-targets causal_routes --kin-version v2" | |
| have_tag() { grep -q ",$1,$2,$3," results/paired_compare.csv 2>/dev/null; } # tag regime split | |
| done_run() { [[ -f results/runs/$1/PRED_DONE && -f results/runs/$1/TRAIN_DONE ]]; } | |
| JOBS=$(mktemp /tmp/c4_jobs.XXXXXX) | |
| add() { # kind(pc|pe) split tag a b [extra...] | |
| local kind="$1" split="$2" tag="$3" a="$4" b="$5"; shift 5 | |
| done_run "$a" || { echo "skip $tag ($a not finished)"; return; } | |
| [[ "$b" == none ]] || done_run "$b" || { echo "skip $tag ($b not finished)"; return; } | |
| for reg in manual engaged; do | |
| have_tag "$tag" "$reg" "$split" && continue | |
| echo "$kind $split $tag $a $b $reg${*:+ $*}" >> "$JOBS" # no trailing blank: xargs -L would join the next job line | |
| done | |
| } | |
| for s in $SEEDS; do | |
| M=I1_all_minus_road2drv_s${s}_final_ecan; L0=I1_all_minus_road2drv_lat0_s${s}_final_ecan | |
| for v in 01 03; do | |
| A=I1_all_minus_road2drv_lat${v}_s${s}_final_ecan | |
| add pc val "finalcv_s${s}_allminusecanlat${v}_vs_allminusecan" $A $M $C | |
| add pc val "finalcv_s${s}_allminusecanlat${v}_vs_allminusecanlat0" $A $L0 $C | |
| add pc test "finalc_s${s}_allminusecanlat${v}_vs_allminusecan" $A $M $C | |
| add pc test "finalc_s${s}_allminusecanlat${v}_vs_allminusecanlat0" $A $L0 $C | |
| add pc test "finalc_s${s}_allminusecanlat${v}_vs_k0" $A none $C --b-k0 | |
| add pe test "finalP_s${s}_allminusecanlat${v}_vs_allminusecan" $A $M | |
| done | |
| add pc val "finalcv_s${s}_allminusecanlat0_vs_allminusecan" $L0 $M $C | |
| add pc test "finalc_s${s}_allminusecanlat0_vs_allminusecan" $L0 $M $C | |
| add pe test "finalP_s${s}_allminusecanlat0_vs_allminusecan" $L0 $M | |
| done | |
| n=$(wc -l < "$JOBS" | tr -d ' ') | |
| echo "[$(date -u +%H:%M:%SZ)] $n pairing calls to run ($PAR in parallel; MemAvailable gate ${MIN_AVAIL_GB} GB)" | |
| export PY C MIN_AVAIL_GB | |
| run_one() { | |
| local kind="$1" split="$2" tag="$3" a="$4" b="$5" reg="$6"; shift 6 | |
| while [[ $(awk '/MemAvailable/ {printf "%d", $2/1048576}' /proc/meminfo) -lt $MIN_AVAIL_GB ]]; do sleep 30; done | |
| echo "[$(date -u +%H:%M:%SZ)] == $tag $reg ($split)" | |
| if [[ "$kind" == pe ]]; then | |
| $PY eval/pressure_eval.py --regime "$reg" --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD|no rows" | cut -c1-220 | |
| elif [[ "$b" == none ]]; then | |
| $PY eval/pc_joint_locked.py --regime "$reg" --split "$split" --a "results/runs/$a" --b none --tag "$tag" "$@" 2>&1 | grep -E "locked-append|appended|Error|Traceback|File \"|LAYOUT GUARD|no rows" | cut -c1-220 | |
| else | |
| $PY eval/pc_joint_locked.py --regime "$reg" --split "$split" --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" "$@" 2>&1 | grep -E "locked-append|appended|Error|Traceback|File \"|LAYOUT GUARD|no rows" | cut -c1-220 | |
| fi | |
| } | |
| export -f run_one | |
| if [[ "$n" -gt 0 ]]; then | |
| xargs -P "$PAR" -L 1 bash -c 'run_one "$@"' _ < "$JOBS" | |
| fi | |
| rm -f "$JOBS" | |
| if [[ "$RENDER" == "1" ]]; then | |
| $PY eval/report_latent_aux_c4.py --seeds ${SEEDS// /,} 2>&1 | grep -E "written|VERDICT|SELECT|READING" | |
| fi | |
| echo "[$(date -u +%H:%M:%SZ)] C4_EVALS_DONE" | |
Xet Storage Details
- Size:
- 4.67 kB
- Xet hash:
- 682753900187cb6e9b6c986f07acea7df14dda8fd6637c2b3c405c26e22f56ec
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.