#!/bin/bash #SBATCH --job-name=EHD_v3zoo #SBATCH --nodes=5 #SBATCH --exclusive #SBATCH --time=08:00:00 #SBATCH --output=/home/tanpv/Progs/claude/QG_1/logs/v3zoo_%j.out #SBATCH --error=/home/tanpv/Progs/claude/QG_1/logs/v3zoo_%j.err set -euo pipefail ROOT=/home/tanpv/Progs/claude/QG_1 PY=/home/tanpv/.conda/envs/ehd/bin/python # torch/sklearn need the conda libstdc++ ahead of the system one (no CXXABI_1.3.9 in /lib64) export LD_LIBRARY_PATH=/home/tanpv/.conda/envs/ehd/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} cd "$ROOT" mkdir -p logs outputs/loyo_pred_v3zoo CAP=${CAP:-200000} INNER=${INNER:-4} YEARLIST=$(seq 2003 2022) # 20 LOYO folds NFOLD=$(echo $YEARLIST | wc -w) # Each fold = one srun task on 5 cores; 4 tasks/node x 5 nodes = 20 folds at once. # Pin every math/tree library to the 5 cpus of its task so tasks don't oversubscribe the node. export OMP_NUM_THREADS=5 MKL_NUM_THREADS=5 OPENBLAS_NUM_THREADS=5 EHD_NJOBS=5 echo "=== v3zoo LOYO: $NFOLD folds | cap=$CAP inner=$INNER | 5 nodes x 4 tasks x 5 cpus ===" srun --nodes=5 --ntasks=$NFOLD --ntasks-per-node=4 --cpus-per-task=5 \ --kill-on-bad-exit=1 bash -c \ "YEARS=($YEARLIST); YR=\${YEARS[\$SLURM_PROCID]}; \ echo \"[proc \$SLURM_PROCID @ \$(hostname)] fold \$YR start \$(date +%T)\"; \ $PY scripts/21_run_loyo_v3zoo.py --folds \$YR --cap $CAP --inner $INNER; \ echo \"[proc \$SLURM_PROCID] fold \$YR done \$(date +%T)\"" echo "=== all folds returned; pred files: $(ls outputs/loyo_pred_v3zoo/pred_v3zoo_*.npz 2>/dev/null | wc -l)/$NFOLD ===" echo "=== stage 25 whole-dataset verification (per-family binary inventory) ===" $PY scripts/25_verify_v3zoo.py echo "=== stage 23 diversity-driven lead-dependent stack ===" $PY scripts/23_v3_diversity_stack.py echo "=== done $(date +%T) ==="