Skip to content

Commit 3ae5809

Browse files
committed
Adding rule for agent to not poll squeue
1 parent 4072506 commit 3ae5809

5 files changed

Lines changed: 75 additions & 0 deletions

File tree

share/rocbudai/AGENTS-default-container.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

share/rocbudai/AGENTS-default.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

share/rocbudai/AGENTS-gfx90a.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

share/rocbudai/AGENTS-gfx942-mi300x.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

share/rocbudai/AGENTS-gfx950.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

0 commit comments

Comments
 (0)