SysadminNews

AMD Spur: Slurm compatibility needs a workload check

On this page
  1. What AMD published
  2. Four GPUs are not a complete placement description
  3. Separate compatibility from operational recovery

Accepting a batch script is the start of scheduler compatibility. The useful question is whether its resource requests, dependencies and accounting retain the same meaning.

Invented placement of four allocated GPUs: four on one node or two on each of two nodes. The total count is identical while the communication path differs. No throughput measurement.
Invented placement of four allocated GPUs: four on one node or two on each of two nodes. The total count is identical while the communication path differs. No throughput measurement. Chart : PeopleAreGeek. Data source.
View full-size image

What AMD published

AMD’s July 22 Spur introduction describes a Rust scheduler with Slurm-style commands, topology-aware GPU placement, CDI device handling and Raft replication. The Apache-2.0 repository is available. AMD explicitly qualifies broader Slurm parity as work in progress; the announcement is not proof that every existing script or plugin works unchanged.

The deployment documentation separates controllers and compute agents, recommends three or five controllers for high availability, and points production deployments toward its Ansible toolkit. A successful single-node demonstration does not exercise that architecture.

Four GPUs are not a complete placement description

Our diagram uses an invented cluster with two nodes, each containing four GPUs. One job can receive four GPUs on one node, or two on each node. Both allocations satisfy a total count of four; communication crosses different links.

Whether either placement is acceptable depends on the job. A workload constrained to one node cannot simply substitute a split allocation. A distributed program may accept both but show different communication costs. This example makes no throughput claim about Spur or a particular GPU fabric.

For an evaluation, record the requested node count, accelerator type, tasks per node, visible device IDs and actual host assignment. Then verify the application launches the expected number of workers. A queue entry saying “running” answers none of those questions by itself.

Separate compatibility from operational recovery

Use a small representative job set: one array with a failed element, a dependent job that must remain blocked, a cancelled task and a multi-node run. Compare exit status, dependency release, resource cleanup and accounting records with the current scheduler. This is a proposed evaluation, not a test performed by PeopleAreGeek.

Raft-backed scheduling state also does not mean every service needs no database: AMD’s description gives Spur-Cloud a separate PostgreSQL role. Losing a controller and losing a majority of controllers are different scenarios. Check both submission recovery and what happens to jobs already running; an advertised failover time cannot replace measurements of your deployment.

September 8: qualify Slurm compatibility, distinguish scheduler state from accounting, and add a placement example without claiming migration or failover measurements.