feat: add Slurm retry and deterministic collection - #915
Conversation
|
28e7efe to
1300bc0
Compare
b994ac3 to
b7e8653
Compare
1300bc0 to
a4f4035
Compare
b7e8653 to
8b1996f
Compare
a4f4035 to
91129f8
Compare
8b1996f to
2be1a46
Compare
91129f8 to
57e9671
Compare
359b53f to
76b8a30
Compare
57e9671 to
b00ccb1
Compare
76b8a30 to
9dfa408
Compare
b00ccb1 to
506de48
Compare
9dfa408 to
4ddab96
Compare
4ddab96 to
70cbc43
Compare
70cbc43 to
381adc2
Compare
381adc2 to
8a89ed5
Compare
f38f7a1 to
b4af3be
Compare
8a89ed5 to
ad4476b
Compare
b4af3be to
98b7bf7
Compare
ad4476b to
277b30c
Compare
98b7bf7 to
b1924e0
Compare
277b30c to
c80681a
Compare
b1924e0 to
8139aa0
Compare
c80681a to
a79acf5
Compare
|
Ownership note on the latest Greptile summary: I verified that both flagged execute-path behaviors—the production factory leaving |
8139aa0 to
6fedd31
Compare
a79acf5 to
26b0ba0
Compare
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Render retry allocations with the same profile-configured Slurm command path as initial generation attempts so cluster-local srun and scontrol binaries remain discoverable. Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
f88bc82 to
ee6d9bf
Compare
Apply persisted timestamp floors per scheduler identity so a clock-ahead sibling cannot expire another attempt's preemption-requeue window. Persist each active attempt with its own reconciled observation time. Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
|
Addressed the remaining Greptile summary finding in da8793b. The issue was valid: service status used the maximum timestamp from every active attempt as the observation time for all attempts, so a clock-ahead sibling could immediately expire another attempt’s five-minute preemption/requeue window. Scheduler evidence now uses per-identity timestamp floors, and service persistence uses each attempt’s own reconciled time. The new regression failed before the fix and now proves the preempted attempt remains pending and can reappear in the queue. Validation: 110 focused retry/reconciliation/service/renderer/shell tests and all 1,427 Slurm tests pass; make check-slurm and git diff --check also pass. Summary reviewed: #915 (comment) |
andreatnvidia
left a comment
There was a problem hiding this comment.
Thanks for addressing the feedback! Everything looks good to me.
b5bbb6d
into
codex/869-observation-reconciliation
* feat: reconcile persisted Slurm state Persist normalized scheduler observations and compose fresh-process run, shard, attempt, readiness, generation, and winner status. Preserve bounded accounting lag and immutable terminal evidence for status and benchmark refresh consumers. Part of #869 Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): harden state reconciliation Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): bound preemption reconciliation Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): bound public preemption status Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * feat: add Slurm retry and deterministic collection (#915) * feat(slurm): add retry and deterministic collection Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): recover ambiguous submissions Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): preserve collection snapshots Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): bind retries and collection ownership Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): preserve scheduler path on retry Render retry allocations with the same profile-configured Slurm command path as initial generation attempts so cluster-local srun and scontrol binaries remain discoverable. Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> * fix(slurm): isolate attempt observation clocks Apply persisted timestamp floors per scheduler identity so a clock-ahead sibling cannot expire another attempt's preemption-requeue window. Persist each active attempt with its own reconciled observation time. Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> --------- Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com> --------- Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
📋 Summary
Implements the #869 retry-and-collection slice for persisted Slurm runs. Failed shards can be retried from fresh reconciliation state, and exactly one validated winner per planned shard is collected by a zero-GPU CPU Slurm job into a deterministic, atomically published dataset.
This PR is stacked on #913. PR #913 must merge first. The branch is exactly six retry/collection commits above the current #913 head (
ce1fe44b). It consumes #913's public observation/reconciliation APIs, composes retry binding into #929's shell-phase one-node runtime, and adds capability APIs only; CLI wiring remains owned by #874#3.🔗 Related Issue
Closes #869
🔄 Changes
✨ Added
🔧 Changed
sacctJobID values for recoverable array shape.🐛 Fixed
profile.scheduler.bin_pathin retry allocation scripts through the same bounded PATH policy used by initial generation scripts.PREPARED.PREPARED.🧪 Testing
make check-slurm— 194 files formatted and lintedgit diff --check✅ Checklist
Description updated with AI