docs(claude): teach bodhi-compute to size walltime around maintenance windows - #9
Merged
Merged
Conversation
… windows Bodhi takes a maintenance reservation about once a month and it carries ALL_NODES, so there is nowhere on the cluster to run during the window. The failure mode is quiet, which is what makes it worth writing down: a job asking for more walltime than remains before the start is not rejected, it is deferred to after the window. The job queues, looks entirely normal, and the cost shows up only if someone checks. Measured against a window 21h49m out, -t 21:00:00 started immediately and -t 22:00:00 was pushed to the reservation's end time. One extra hour of requested walltime bought two days of waiting. The section covers reading scontrol show reservation, computing the gap, confirming with srun --test-only, and recognising the aftermath in squeue. Two real jobs were sitting in exactly that state while this was written, both having asked for three days with the window a day out: 243393 krausmeg 3-00:00:00 ReqNodeNotAvail, Reserved for maintenance That state is not stuck and does not want resubmitting; shortening -t is what makes it run sooner. IGNORE_JOBS means jobs already running when the reservation was created are not killed up front, but nothing survives the window itself — sinteractive sessions included, so a session should be launched to end before the start rather than reach past it. slurm-discovery gains the matching reason row, and a note that reservations are weather rather than structure: they recur monthly but each one carries a date, so they are read live and never written to the cached map, where a stale window is exactly the sort of thing that would get trusted. Every command, boundary and output here was measured against Bodhi. The gap snippet was extracted back out of the finished skill and run verbatim. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bodhi takes a maintenance reservation about once a month, and it carries
ALL_NODES— there is nowhere on the cluster to run during the window.The failure mode is quiet, which is what makes it worth writing down. A job
asking for more walltime than remains before the start is not rejected — it is
deferred to after the window. The job queues, looks entirely normal, and the
cost only shows up if someone checks.
Measured live, against a window 21h49m out:
One extra hour of requested walltime bought two days of waiting.
What the section covers
Reading
scontrol show reservation— whatState=INACTIVE/ACTIVE,Users=rootandALL_NODESeach mean for you.A snippet that prints how long until the window starts. It was extracted
back out of the finished skill and run verbatim to confirm it works as
published:
monthly-maint starts in 21h47m.srun --test-onlyas the cheap confirmation either way.Recognising the aftermath in
squeue. Two real jobs were sitting in exactlythat state while this was written, both having asked for three days with the
window a day out:
That state is not stuck and does not want resubmitting — shortening
-tiswhat makes it run sooner.
IGNORE_JOBSmeans jobs already running when the reservation was createdare not killed up front, but nothing survives the window itself —
sinteractive sessions included. Launch a session to end before the start
rather than reach past it.
Also
slurm-discoverygains the matchingsqueuereason row, and a note thatreservations are weather, not structure: they recur monthly but each one
carries a date, so they are read live and never written to the cached map,
where a stale window is exactly the sort of thing that would get trusted.
Every command, boundary and output here was measured against Bodhi rather than
recalled. All four
validate.ymlgates pass locally, and every skill'sfrontmatter still parses with a
name:matching its directory.🤖 Generated with Claude Code