#!/bin/bash # Phase 1 - the bound, measured rather than asserted. # # Four graph families spanning total correlation from 0.11 to 8.44 bits, where # the one-pass ceiling V* is known in closed form (V* >= 2^-TC, with equality # for fixed-edge-count families). The question each run answers: does a trained # masked diffusion model REACH that ceiling at one pass? # # reaches it -> the residual gap is mode (ii), provably not trainable # falls short -> the shortfall is mode (i), and budget conditioning should # close it, which the anybudget arm tests directly # # Runs on a 5GB MIG slice: these are 15-token sequences and sub-3M-parameter # models, and that partition bills at 9/min against the H100's 144 - a 16x # saving that makes the whole phase cost well under one H100-hour. #SBATCH -J gr1 #SBATCH -p gpu-a100_1g.5gb #SBATCH --gres=gpu:a100_1g.5gb:1 #SBATCH -c 4 #SBATCH --mem=16g #SBATCH -t 4:00:00 #SBATCH -o logs/gr1-%A_%a.out #SBATCH --array=0-15%8 source /etc/profile SCR=/scratch/zt1/project/msml612/user/$USER module load python/3.10.10 export PYTHONPATH= cd $SCR/pcmd/src FAMS=(matching 2regular tree bipartite); MODES=(mdlm anybudget); SEEDS=(0 1) I=$SLURM_ARRAY_TASK_ID F=${FAMS[$((I / 4))]}; M=${MODES[$(((I % 4) / 2))]}; S=${SEEDS[$((I % 2))]} NAME="gr1-$F-$M-s$S" echo "=== $NAME ===" $SCR/hf_env/bin/python -u train_graph.py --family $F --n 6 --mode $M --seed $S \ --d 256 --layers 6 --heads 8 --bs 256 --steps 30000 --lr 1e-4 --warmup 1000 \ --n_gen 4096 --gen_bs 512 --out $SCR/pcmd/runs/$NAME