#!/bin/bash
#SBATCH --job-name=EHD_ffcache
#SBATCH --nodes=5
#SBATCH --exclusive
#SBATCH --time=02:00:00
#SBATCH --output=/home/tanpv/Progs/claude/QG_1/logs/ffcache_%j.out
#SBATCH --error=/home/tanpv/Progs/claude/QG_1/logs/ffcache_%j.err
set -euo pipefail
ROOT=/home/tanpv/Progs/claude/QG_1
PY=/home/tanpv/.conda/envs/ehd/bin/python
export LD_LIBRARY_PATH=/home/tanpv/.conda/envs/ehd/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
cd "$ROOT"
mkdir -p logs outputs/fullfield_cache

# Stage 27 is pure I/O + block-mean (no fitting): one year per task, 20 years across 5 nodes.
YEARLIST=$(seq 2003 2022)
NYEAR=$(echo $YEARLIST | wc -w)
export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 OPENBLAS_NUM_THREADS=4

echo "=== full-field cache: $NYEAR years | 5 nodes x 4 tasks ==="
srun --nodes=5 --ntasks=$NYEAR --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)] year \$YR start \$(date +%T)\"; \
      $PY scripts/27_build_fullfield_cache.py --years \$YR; \
      echo \"[proc \$SLURM_PROCID] year \$YR done \$(date +%T)\""

echo "=== done: $(ls outputs/fullfield_cache/ff_*.npz 2>/dev/null | wc -l)/$NYEAR files, $(du -sh outputs/fullfield_cache 2>/dev/null | cut -f1) ==="
