Skip to content

[GDPVal] Add model-agnostic Slurm orchestration for multi-allocation rollouts - #2162

Merged
cmunley1 merged 14 commits into
gdpval-develfrom
spanev/gdpval-slurm-orchestration
Oct 30, 2026
Merged

cmunley1 merged 14 commits into
gdpval-develfrom
spanev/gdpval-slurm-orchestration

Conversation

@Kh4L

@Kh4L Kh4L commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Reference scripts for collecting GDPVal rollouts on a Slurm cluster with a
self-hosted vLLM endpoint, across more wall-clock time than a single allocation
provides.

They exist because a GDPVal rollout batch does not fit in one job. Tasks run for
tens of minutes each, allocations are time-boxed, and a run that is merely
restarted after an allocation expires silently loses or duplicates work. These
keep the model server and the rollout client in separate jobs, hand off between
allocations, and refuse to resume when the state is not provably consistent.

Nothing here is required to run GDPVal — gym eval run is. This is for batches
too large for one allocation.

Configuration is three independent layers

Layer File Holds
Site slurm/cluster.env Slurm account, partition, filesystem paths, weights + image location
Model models/<model>.env Parallelism, context, tool/reasoning parsers, KV dtype
Batch datasets/<batch>.env Input JSONL, expected count/hash, task-id pattern, turn budget

Serving a different model is a new file in models/, not an edit to any script.
run_parallel_vllm.sh builds its vllm serve invocation from the profile —
TP/PP/DP, GPU memory, context, --tool-call-parser, --reasoning-parser,
--kv-cache-dtype, expert-parallel, enforce-eager — plus a
GDPVAL_VLLM_EXTRA_ARGS passthrough so a new model never requires touching the
launcher. models/glm-5.2-fp8.env and glm-5.2-bf16.env ship as worked
examples: the same weights shaped for latency (2 nodes, TP=8, fp8 KV cache)
versus throughput (16 nodes, TP=4, DP=16).

Required settings have no defaults

GDPVAL_SLURM_ACCOUNT, GDPVAL_MODEL_PATH, GDPVAL_VLLM_IMAGE and
GDPVAL_MODEL_BASE_NAME exit 2 with the variable name when unset. A default
that looks plausible but points at the wrong model or account does not fail at
submit time — it fails hours later as bad numbers, which is far more expensive
than an error message.

Resume safety

validate_gdpval_resume_state.py gates every continuation: no duplicate or
missing task indices, and launch/source files unchanged since the run started.
Editing the launcher or validator mid-run changes their hashes and the gate
refuses to resume. That is deliberate — silently resuming against changed code
produces a batch that is two experiments stitched together.

Verification

CI does not exercise these: there is no shellcheck hook and no test covers
benchmarks/gdpval/slurm/, so a green tick here means the rest of the repo is
unaffected, not that the scripts work. What they have behind them is bash -n
on all 13 scripts, py_compile on the validator, and a completed 200-task
GDPVal rollout collection driven by them end to end across 7 allocations.

Job shapes reflect the one cluster they were built and run on. Partition names,
QOS and GPUs per node are configurable, but expect to adjust cluster.env for
yours.

Kh4L added 2 commits July 27, 2026 17:58
Signed-off-by: Serge Panev <spanev@nvidia.com>
Signed-off-by: Serge Panev <spanev@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Kh4L added 4 commits July 28, 2026 10:26
…lection

Signed-off-by: Serge Panev <spanev@nvidia.com>
…ault

Signed-off-by: Serge Panev <spanev@nvidia.com>
…izing

Signed-off-by: Serge Panev <spanev@nvidia.com>
Signed-off-by: Serge Panev <spanev@nvidia.com>
@github-actions github-actions Bot added the sla:triage-overdue Review assignment is over the one-business-day SLA label Jul 29, 2026
@anwithk
anwithk requested a review from agronskiy July 29, 2026 16:40
@github-actions github-actions Bot added sla:review-overdue Review response is over the one-business-day SLA and removed sla:triage-overdue Review assignment is over the one-business-day SLA labels Jul 29, 2026
Kh4L added 2 commits August 5, 2026 13:59
Signed-off-by: Serge Panev <spanev@nvidia.com>
Signed-off-by: Serge Panev <spanev@nvidia.com>
@Kh4L
Kh4L changed the base branch from main to gdpval-devel August 5, 2026 22:48
Kh4L added 6 commits August 5, 2026 16:09
Signed-off-by: Serge Panev <spanev@nvidia.com>
…g it

Signed-off-by: Serge Panev <spanev@nvidia.com>
…pfile

Signed-off-by: Serge Panev <spanev@nvidia.com>
…r wait

Signed-off-by: Serge Panev <spanev@nvidia.com>
Signed-off-by: Serge Panev <spanev@nvidia.com>
Signed-off-by: Serge Panev <spanev@nvidia.com>
@svcnvidia-nemo-ci svcnvidia-nemo-ci added area:orchestration Job submission, deployment, services, and lifecycle management feature New capabilities, enhancements, or enablement work needs-review PR is ready for code review and waiting on a reviewer labels Oct 20, 2026
@cmunley1
cmunley1 merged commit 5990161 into gdpval-devel Oct 30, 2026
11 checks passed
@cmunley1
cmunley1 deleted the spanev/gdpval-slurm-orchestration branch October 30, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:orchestration Job submission, deployment, services, and lifecycle management feature New capabilities, enhancements, or enablement work needs-review PR is ready for code review and waiting on a reviewer sla:review-overdue Review response is over the one-business-day SLA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants