SLURM Deployment
Distribute evaluations across an HPC cluster using SLURM.
Quick start
This generates an sbatch script, deploys vLLM on the allocated GPU node, and runs the benchmark.
Sharded evaluation
Split a large benchmark across multiple independent SLURM jobs:
This submits 16 independent shard jobs under shard_0/, shard_1/, and so on. Each job evaluates a disjoint slice of the dataset. After all tasks complete, merge results:
Generated scripts
nel eval run with a SLURM cluster config generates an sbatch script in --output-dir:
nel_eval.sbatch
For sharded runs, each shard directory gets its own script:
Each script exports fixed shard coordinates, for example NEL_SHARD_IDX=0 and NEL_TOTAL_SHARDS=16, and writes into that shard’s output directory.
Resume after failure
If a benchmark fails within a multi-benchmark SLURM suite, re-submit with --resume to skip already-completed benchmarks:
ai-dynamo deployment
Deploy NVIDIA ai-dynamo (sglang engine) as a managed service. Dynamo is multi-process by design — NEL launches the NATS broker, etcd, the dynamo.frontend HTTP server, and the dynamo.sglang worker(s) in one sbatch job. The OpenAI-compatible endpoint is the frontend on svc.port.
Aggregated (one worker):
For multi-node TP the worker rendezvouses via sglang’s torch.distributed (--nnodes/--node-rank/--dist-init-addr); set num_nodes: 2 and tensor_parallel_size: 16 and NEL gates the NATS/etcd/frontend bootstrap on rank 0.
Disaggregated (separate prefill + decode workers, KV transfer over NIxl/UCX-CUDA):
Mode is implicit: presence of prefill AND decode switches to disaggregated; their absence (default) is aggregated. Setting only one of the pair is a validation error.
Default image: nvcr.io/nvidia/ai-dynamo/sglang-runtime:1.1.1-cuda13 from NGC. Override per service with image: or globally via containers.toml.
Heterogeneous jobs
For configurations that require separate GPU and CPU nodes (e.g., model on GPU + sandboxes on CPU), define multiple node pools:
Services and sandboxes reference pools via node_pool: gpu or node_pool: sandbox.
Note: shards is incompatible with heterogeneous jobs (multiple node pools).
Manual workflow
Serve on SLURM
Long-running environment server for Gym training:
Wrap in an sbatch script for SLURM submission.
Cluster config options
For remote SLURM execution (hostname set), output.dir must be an absolute path visible on the remote login and compute nodes. Relative output paths are rejected because scripts, logs, and shard outputs must be copied and mounted predictably.