File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1196,6 +1196,21 @@ honest fallback above is the only acceptable degraded form.
11961196 you already know is malformed), and Rule 10a (Write-and-announce
11971197 the report).
11981198
1199+ 26 . ** HARD RULE — never poll ` squeue ` /` sacct ` in a loop to wait for a
1200+ job.** A ` while squeue …; do sleep …; done ` (or any status query
1201+ repeated on a timer) hammers the Slurm controller (` slurmctld ` ); on
1202+ a shared or large cluster that degrades scheduling for every user
1203+ and can get you rate-limited or banned. Block the correct way — it
1204+ waits with ZERO polling:
1205+ - ** ` rocbudai-submit --gpus N -- <cmd> ` ** (wraps ` sbatch --wait ` ) —
1206+ the required path for multi-GPU / multi-rank FOMs anyway (Rule 17).
1207+ - ** ` rocbudai-bench ` ** for single-rank / single-GPU FOMs.
1208+ - a foreground ** ` srun ` ** , or ** ` sbatch --wait ` ** , for anything else.
1209+
1210+ A * single* one-shot ` squeue -u $USER ` to check whether a job is
1211+ still alive (e.g. the timeout-diagnosis check in Rule 12) is fine —
1212+ the ban is on * repeated polling in a loop* , never on one query.
1213+
11991214---
12001215
12011216## 2. Phase 0 — Discovery (do this first, every NEW session)
Original file line number Diff line number Diff line change @@ -1157,6 +1157,21 @@ honest fallback above is the only acceptable degraded form.
11571157 you already know is malformed), and Rule 10a (Write-and-announce
11581158 the report).
11591159
1160+ 26 . ** HARD RULE — never poll ` squeue ` /` sacct ` in a loop to wait for a
1161+ job.** A ` while squeue …; do sleep …; done ` (or any status query
1162+ repeated on a timer) hammers the Slurm controller (` slurmctld ` ); on
1163+ a shared or large cluster that degrades scheduling for every user
1164+ and can get you rate-limited or banned. Block the correct way — it
1165+ waits with ZERO polling:
1166+ - ** ` rocbudai-submit --gpus N -- <cmd> ` ** (wraps ` sbatch --wait ` ) —
1167+ the required path for multi-GPU / multi-rank FOMs anyway (Rule 17).
1168+ - ** ` rocbudai-bench ` ** for single-rank / single-GPU FOMs.
1169+ - a foreground ** ` srun ` ** , or ** ` sbatch --wait ` ** , for anything else.
1170+
1171+ A * single* one-shot ` squeue -u $USER ` to check whether a job is
1172+ still alive (e.g. the timeout-diagnosis check in Rule 12) is fine —
1173+ the ban is on * repeated polling in a loop* , never on one query.
1174+
11601175---
11611176
11621177## 2. Phase 0 — Discovery (do this first, every NEW session)
Original file line number Diff line number Diff line change @@ -1164,6 +1164,21 @@ honest fallback above is the only acceptable degraded form.
11641164 you already know is malformed), and Rule 10a (Write-and-announce
11651165 the report).
11661166
1167+ 26 . ** HARD RULE — never poll ` squeue ` /` sacct ` in a loop to wait for a
1168+ job.** A ` while squeue …; do sleep …; done ` (or any status query
1169+ repeated on a timer) hammers the Slurm controller (` slurmctld ` ); on
1170+ a shared or large cluster that degrades scheduling for every user
1171+ and can get you rate-limited or banned. Block the correct way — it
1172+ waits with ZERO polling:
1173+ - ** ` rocbudai-submit --gpus N -- <cmd> ` ** (wraps ` sbatch --wait ` ) —
1174+ the required path for multi-GPU / multi-rank FOMs anyway (Rule 17).
1175+ - ** ` rocbudai-bench ` ** for single-rank / single-GPU FOMs.
1176+ - a foreground ** ` srun ` ** , or ** ` sbatch --wait ` ** , for anything else.
1177+
1178+ A * single* one-shot ` squeue -u $USER ` to check whether a job is
1179+ still alive (e.g. the timeout-diagnosis check in Rule 12) is fine —
1180+ the ban is on * repeated polling in a loop* , never on one query.
1181+
11671182---
11681183
11691184## 2. Phase 0 — Discovery (do this first, every NEW session)
Original file line number Diff line number Diff line change @@ -1163,6 +1163,21 @@ honest fallback above is the only acceptable degraded form.
11631163 you already know is malformed), and Rule 10a (Write-and-announce
11641164 the report).
11651165
1166+ 26 . ** HARD RULE — never poll ` squeue ` /` sacct ` in a loop to wait for a
1167+ job.** A ` while squeue …; do sleep …; done ` (or any status query
1168+ repeated on a timer) hammers the Slurm controller (` slurmctld ` ); on
1169+ a shared or large cluster that degrades scheduling for every user
1170+ and can get you rate-limited or banned. Block the correct way — it
1171+ waits with ZERO polling:
1172+ - ** ` rocbudai-submit --gpus N -- <cmd> ` ** (wraps ` sbatch --wait ` ) —
1173+ the required path for multi-GPU / multi-rank FOMs anyway (Rule 17).
1174+ - ** ` rocbudai-bench ` ** for single-rank / single-GPU FOMs.
1175+ - a foreground ** ` srun ` ** , or ** ` sbatch --wait ` ** , for anything else.
1176+
1177+ A * single* one-shot ` squeue -u $USER ` to check whether a job is
1178+ still alive (e.g. the timeout-diagnosis check in Rule 12) is fine —
1179+ the ban is on * repeated polling in a loop* , never on one query.
1180+
11661181---
11671182
11681183## 2. Phase 0 — Discovery (do this first, every NEW session)
Original file line number Diff line number Diff line change @@ -1167,6 +1167,21 @@ honest fallback above is the only acceptable degraded form.
11671167 you already know is malformed), and Rule 10a (Write-and-announce
11681168 the report).
11691169
1170+ 26 . ** HARD RULE — never poll ` squeue ` /` sacct ` in a loop to wait for a
1171+ job.** A ` while squeue …; do sleep …; done ` (or any status query
1172+ repeated on a timer) hammers the Slurm controller (` slurmctld ` ); on
1173+ a shared or large cluster that degrades scheduling for every user
1174+ and can get you rate-limited or banned. Block the correct way — it
1175+ waits with ZERO polling:
1176+ - ** ` rocbudai-submit --gpus N -- <cmd> ` ** (wraps ` sbatch --wait ` ) —
1177+ the required path for multi-GPU / multi-rank FOMs anyway (Rule 17).
1178+ - ** ` rocbudai-bench ` ** for single-rank / single-GPU FOMs.
1179+ - a foreground ** ` srun ` ** , or ** ` sbatch --wait ` ** , for anything else.
1180+
1181+ A * single* one-shot ` squeue -u $USER ` to check whether a job is
1182+ still alive (e.g. the timeout-diagnosis check in Rule 12) is fine —
1183+ the ban is on * repeated polling in a loop* , never on one query.
1184+
11701185---
11711186
11721187## 2. Phase 0 — Discovery (do this first, every NEW session)
You can’t perform that action at this time.
0 commit comments