File size: 1,220 Bytes
6b56858
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env bash
# Submit with an explicit site-specific array, e.g. --array=0-129.
# No partition, GPU type, or walltime is hard-coded here.
#SBATCH --job-name=dlb-generate
#SBATCH --output=results/logs/slurm-generate-%A_%a.out
#SBATCH --error=results/logs/slurm-generate-%A_%a.err
set -euo pipefail

ROOT="${DLB_ROOT:-${SLURM_SUBMIT_DIR}}"
MATRIX="${DLB_MATRIX:-$ROOT/results/matrix/generation.tsv}"
if [[ ! -f "$MATRIX" ]]; then
  PYTHONPATH="$ROOT/src${PYTHONPATH:+:$PYTHONPATH}" "${DLB_PYTHON:-python}" -m dlb.matrix \
    --root "$ROOT" --output "$MATRIX" --sample-count 1024 --seed 42
fi
line_number=$((SLURM_ARRAY_TASK_ID + 3))
IFS=$'\t' read -r task_id category model dataset steps sample_count seed environment adapter source provenance sample_dir metrics_path timing_path \
  < <(sed -n "${line_number}p" "$MATRIX")
[[ -n "${task_id:-}" && "$task_id" != "task_id" ]] || { echo "invalid matrix row $line_number" >&2; exit 2; }
mkdir -p "$ROOT/results/logs"
export PYTHONPATH="$ROOT/src${PYTHONPATH:+:$PYTHONPATH}"
exec "${DLB_CONDA:-conda}" run -n "$environment" python -m dlb.runner \
  --root "$ROOT" --model "$model" --dataset "$dataset" --steps "$steps" \
  --num-samples "$sample_count" --seed "$seed"