---
id: "slurm"
type: "component"
kind: "big-data-cluster"
provider: "default"
category: "compute"
docs: "https://slurm.schedmd.com/sched_config.html"
url: "https://localhost:3000/catalogue/components/slurm"
---

# Slurm

Open source HPC workload manager that queues jobs onto compute node partitions.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Big data cluster](https://localhost:3000/catalogue/kinds/big-data-cluster) |
| Category | Compute |
| Official docs | [https://slurm.schedmd.com/sched_config.html](https://slurm.schedmd.com/sched_config.html) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `accountingStorage` | boolean | — | no | false | inherited |
| `autoscaling` | boolean | — | no | false | **false** |
| `backupController` | boolean | — | no | false | inherited |
| `engine` | enum | `spark`, `hadoop`, `presto`, `flink`, `hpc`, `ray`, `dask`, `kubernetes-batch` | no | — | **"hpc"** |
| `managed` | boolean | — | no | false | **false** |
| `partitions` | integer | — | no | — | inherited |
| `runtimeVersion` | string | — | no | — | inherited |
| `schedulerType` | enum | `backfill`, `builtin` | no | "backfill" | inherited |
| `spotInstances` | boolean | — | no | false | **false** |
| `workerNodes` | integer | — | no | — | inherited |
| `zoneRedundant` | boolean | — | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Other products of the same kind · 25

- [Elastic High Performance Computing](https://localhost:3000/catalogue/components/alibaba-e-hpc.md) `alibaba-e-hpc` — alibabacloud
- [E-MapReduce](https://localhost:3000/catalogue/components/alibaba-e-mapreduce.md) `alibaba-e-mapreduce` — alibabacloud
- [AWS Clean Rooms](https://localhost:3000/catalogue/components/aws-clean-rooms.md) `aws-clean-rooms` — aws
- [Amazon EMR](https://localhost:3000/catalogue/components/aws-emr.md) `aws-emr` — aws
- [Amazon EMR Serverless](https://localhost:3000/catalogue/components/aws-emr-serverless.md) `aws-emr-serverless` — aws
- [AWS Parallel Computing Service](https://localhost:3000/catalogue/components/aws-pcs.md) `aws-pcs` — aws
- [Amazon SageMaker HyperPod](https://localhost:3000/catalogue/components/aws-sagemaker-hyperpod.md) `aws-sagemaker-hyperpod` — aws
- [Azure CycleCloud](https://localhost:3000/catalogue/components/azure-cyclecloud.md) `azure-cyclecloud` — azure
- [Azure Databricks](https://localhost:3000/catalogue/components/azure-databricks.md) `azure-databricks` — azure
- [Azure HDInsight](https://localhost:3000/catalogue/components/azure-hdinsight.md) `azure-hdinsight` — azure
- [Armada](https://localhost:3000/catalogue/components/armada.md) `armada` — default
- [Generic big data cluster](https://localhost:3000/catalogue/components/big-data-cluster.md) `big-data-cluster` — default
- [Dask](https://localhost:3000/catalogue/components/dask.md) `dask` — default
- [Databricks](https://localhost:3000/catalogue/components/databricks.md) `databricks` — default
- [Apache Hadoop YARN](https://localhost:3000/catalogue/components/hadoop-yarn.md) `hadoop-yarn` — default
- [Ray](https://localhost:3000/catalogue/components/ray.md) `ray` — default
- [Apache Spark cluster](https://localhost:3000/catalogue/components/spark-cluster.md) `spark-cluster` — default
- [Volcano](https://localhost:3000/catalogue/components/volcano.md) `volcano` — default
- [Cluster Director](https://localhost:3000/catalogue/components/google-cluster-director.md) `google-cluster-director` — gcp
- [Dataproc](https://localhost:3000/catalogue/components/google-dataproc.md) `google-dataproc` — gcp
- [Managed Service for Apache Spark (serverless)](https://localhost:3000/catalogue/components/google-dataproc-serverless.md) `google-dataproc-serverless` — gcp
- [IBM Analytics Engine](https://localhost:3000/catalogue/components/ibm-analytics-engine.md) `ibm-analytics-engine` — ibm
- [OCI AI Data Platform](https://localhost:3000/catalogue/components/oci-ai-data-platform.md) `oci-ai-data-platform` — oci
- [OCI Big Data Service](https://localhost:3000/catalogue/components/oci-big-data-service.md) `oci-big-data-service` — oci
- [OCI Data Flow](https://localhost:3000/catalogue/components/oci-data-flow.md) `oci-data-flow` — oci

## Use it in a design

```yaml
nodes:
  - { id: "slurm", component: "slurm" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Slurm: open source HPC workload manager, slurmctld plus per-node slurmd, jobs queued in partitions.
# Defaults from "Slurm Workload Manager Overview" and "Scheduling Configuration Guide":
# backfill scheduling plugin loaded by default, backup controller optional.
schemaVersion: "1"
type: "component"
id: "slurm"
kind: "big-data-cluster"
provider: "default"
docs: "https://slurm.schedmd.com/sched_config.html"
defaults:
  engine: "hpc"
  autoscaling: false
  spotInstances: false
  managed: false
properties:
  schedulerType:
    type: "enum"
    values: ["backfill", "builtin"]
    default: "backfill"
  backupController:
    type: "boolean"
    default: false
  accountingStorage:
    type: "boolean"
    default: false
  partitions:
    type: "integer"
```

Human page: https://localhost:3000/catalogue/components/slurm
