#!/bin/bash # The HARD-benchmark firm-up on an L40S (46 GB): runs moe_hard_hpc then directed_hard_hpc in one job. # moe trains the hard specialists (cached spec_*_hard); directed reuses them — so training happens once # and both experiments share it. Harder tasks (multi-step lists, Caesar ciphers, multi-step arith) keep # 7B off saturation, giving routing/fusion/selection real headroom to separate — the fair test the easy # 7B runs could not provide. Same env as the other LLM jobs (see hpc/README.md). # submit: qsub hpc/llm_hard.pbs status: qstat -u $USER #PBS -l select=1:ncpus=8:mem=64gb:ngpus=1:gpu_type=L40S #PBS -l walltime=01:00:00 #PBS -N lam_llm_hard cd "$PBS_O_WORKDIR" export HF_HOME="$EPHEMERAL/hf_cache" export TOKENIZERS_PARALLELISM=false export UV_CACHE_DIR="$EPHEMERAL/uvcache" source .venv/bin/activate nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader python -m llm.experiment configs/llm/moe_hard_hpc.yaml # trains spec_*_hard + fusion/union python -m llm.experiment configs/llm/directed_hard_hpc.yaml # reuses spec_*_hard + offspring select # results/{llm_moe_hard_hpc,llm_directed_hard_hpc}/ written in-place (parquet gitignored). Sync back: # rsync -avz hpc:'…/results/llm_moe_hard_hpc/' results/llm_moe_hard_hpc/ # rsync -avz hpc:'…/results/llm_directed_hard_hpc/' results/llm_directed_hard_hpc/ echo "done: $(date)"