Atlas Scheduler
Batch scheduler with gang scheduling, MPI and NCCL. Runs on top of Managed Kubernetes.
What it is
Atlas Scheduler is a Kubernetes operator that adds first-class batch semantics on top of clusters: gang scheduling (all pods or none), queue prioritisation, preemption, MPI and NCCL launcher CRDs. Use it when your training job needs N nodes simultaneously, or when you want a fair-share queue across teams.
When to use it
- Multi-node distributed training: all-or-nothing pod placement.
- Shared cluster across multiple teams with quota + fair-share.
- Long batch queues where small jobs need to skip past big ones.
Quickstart
asc scheduler install --cluster prod
kubectl apply -f - <<'YAML'
apiVersion: batch.aiarco.com/v1
kind: GangJob
metadata: { name: train-7b }
spec:
replicas: 16
gpu: h100
command: ["torchrun", "--nproc-per-node=8", "train.py"]
YAMLclient.scheduler.submit_gang_job(cluster='prod', name='train-7b', replicas=16, gpu='h100', command=['torchrun','--nproc-per-node=8','train.py'])await client.scheduler.submitGangJob({ cluster: 'prod', name: 'train-7b', replicas: 16, gpu: 'h100', command: ['torchrun','--nproc-per-node=8','train.py'] });Limits & quotas
| Limit | Default | Burst | Notes |
|---|---|---|---|
| Queues per cluster | 32 | — | |
| Max replicas per gang | 1,024 | — | Lift via sales |
| Preemption grace | 60 s | — | Configurable per queue |
Pricing
See pricing. Pay-as-you-go, billed monthly via Stripe.
API surface
POST /v1/atlas/scheduler/jobsGET /v1/atlas/scheduler/jobs/{id}
Required scope(s): scheduler:write. See Scopes.
Security
All access is authenticated and scoped. See Auth & scopes and Network controls.