> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/automodel/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/automodel/_mcp/server.

# Job Launchers

NeMo AutoModel provides several ways to launch training. The right choice depends on your hardware and environment.

## Which Launcher Should I Use?

| Launcher              | Best for                                                    | GPUs               | Guide                                                             |
| --------------------- | ----------------------------------------------------------- | ------------------ | ----------------------------------------------------------------- |
| **Local Workstation** | Getting started, debugging, single-node training            | 1-8 on one machine | [Run on Your Local Workstation](/job-launchers/local-workstation) |
| **NeMo-Run**          | Managed execution on Slurm, Kubernetes, Docker, local       | 1+                 | [NeMo-Run](/job-launchers/nemo-run)                               |
| **SkyPilot**          | Cloud training or Kubernetes clusters                       | Any                | [SkyPilot](/job-launchers/skypilot)                               |
| **Slurm**             | Scheduled batch jobs on HPC clusters, single- or multi-node | 1+                 | [Run on a Cluster](/job-launchers/slurm-cluster)                  |

### I Have 1–2 GPUs on My Workstation

Use the **interactive** launcher. No scheduler or cluster software is needed:

```bash
automodel examples/llm_finetune/llama3_2/llama3_2_1b_squad.yaml
```

See the [Run on Your Local Workstation](/job-launchers/local-workstation) guide.

### I Have Access to a Slurm Cluster

From the repository root, copy the reference `slurm.sub`, edit the copy for
your cluster and recipe, and submit it directly with `sbatch`:

```bash
cp slurm.sub my_cluster.sub
# Edit CONFIG, the #SBATCH directives, container image, and mount paths.
sbatch my_cluster.sub
```

The submission script launches `torchrun` across the Slurm allocation and runs
the recipe selected by its `CONFIG` variable. Do not add a `slurm:` section to
the recipe YAML; the `automodel` CLI does not dispatch Slurm jobs.

See the [Run on a Cluster](/job-launchers/slurm-cluster) guide.

### I Want Managed Job Submission (Slurm, Kubernetes, Docker)

Add a `nemo_run:` section to your YAML config. NeMo-Run loads a pre-configured executor for your compute target and submits the job:

```bash
automodel config_with_nemo_run.yaml
```

See the [NeMo-Run](/job-launchers/nemo-run) guide.

### I Want to Train on the Cloud

Add a `skypilot:` section to your YAML config. SkyPilot provisions VMs on any
major cloud. AutoModel submits with unmanaged `sky.launch`, so spot instances
can be preempted and this path does not recover them automatically. Managed
recovery requires SkyPilot's jobs API, which this launcher does not use:

```bash
automodel config_with_skypilot.yaml
```

See the [SkyPilot](/job-launchers/skypilot) guide.

### I Want to Train on Kubernetes with SkyPilot

Use the same `skypilot:` launcher, but set `cloud: kubernetes`. This is a good fit when your team already has a GPU-backed Kubernetes cluster and you want SkyPilot to handle job submission and multi-node orchestration:

```bash
automodel examples/llm_finetune/llama3_2/llama3_2_1b_squad_skypilot_kubernetes.yaml
```

See the [SkyPilot + Kubernetes tutorial](/job-launchers/skypilot-k8s).

## All Launchers Use the Same Config

Every launch path shares the same YAML recipe format. The `automodel` CLI
recognizes `nemo_run:` and `skypilot:` as optional launcher sections; without
either section, training runs interactively on the current machine. Slurm is a
separate submission path: configure the repository-root `slurm.sub`, point its
`CONFIG` variable at the recipe YAML, and submit the script with `sbatch`.