Home · ASPLOS 2024 · Machine Learning Systems

Centauri: Enabling Efficient Scheduling for Communication-Computation Overlap in Large Model Training via Communication Partitioning

Chang Chen, Xiuhong Li, Qianchao Zhu, Jiangfei Duan, Peng Sun, Xingcheng Zhang and 1 other

Conference
ASPLOS 2024
Published
2024
Pages
178-191
Citations
47

Hiding communication behind computation in LLM training has been tried with fused kernels and with graph schedulers, each missing what the other sees — Centauri observes that any collective can be partitioned three ways (substitute the primitive, split the device group, chunk the workload) and schedules the pieces at operation, layer, and model tiers, for up to 1.49× faster training.

The argument in one glance

  1. Problem

    Hybrid parallelism means hybrid communication

    Training a large language model spreads work by data parallelism (gradient allreduce), tensor parallelism (activation collectives), pipeline parallelism (activation sends), and fully-sharded data parallelism (weight allgathers and gradient reduce-scatters) — often all at once. Each injects collectives into the graph, and on clusters where inter-node bandwidth is a fraction of intra-node NVSwitch bandwidth, communication becomes a large share of every training step.

  2. What people did

    Overlap it: schedule coarsely or fuse finely

    Frameworks overlap collectives with computation by graph-level scheduling (prefetch weights early, reduce gradients during backward — PyTorch FSDP, ZeRO, Megatron-LM), by multi-stream concurrency, or by compiler-level kernel fusion that splits a collective and its neighbor computation into interleaved chunks (CoCoNet, the decomposition approach).

  3. Why it fell short

    Each method sees only a slice of the overlap space

    Coarse graph scheduling leaves visible idle gaps — whole collectives wait on whole computations. Fine kernel fusion optimizes one operator pair but can lose globally: the paper’s opening example shows a plain MatMul finishing before its cleverly-fused equivalent because fusion forecloses a better graph-level order. Single-parallelism schedulers cannot navigate hybrid mixes where forward and backward passes want different strategies.

  4. This paper's idea

    Partition communication in three dimensions, schedule in three tiers

    A collective is just a mapping of a workload across a device group — so it can be partitioned by primitive substitution (allreduce → reduce-scatter + allgather…), group partitioning (topology-aligned sub-groups), and workload chunking. Prior methods’ spaces are subsets of this one; even SP and ZeRO fall out as points in it. A hierarchical scheduler then optimizes cheaply at operation, layer, and model tiers, exploiting LLMs’ repetitive structure. Result: up to 1.45× on single-parallel and 1.49× on hybrid LLaMA training across two clusters, up to 256 GPUs.

Why this problem is worth solving

This page completes a trilogy on this site. CoCoNet (ASPLOS 2022) broke the computation/communication abstraction barrier with a DSL and fused GPU kernels; Google’s decomposition work (ASPLOS 2023) made overlap automatic in XLA for TPU pods. Centauri arrives at the GPU-cluster frontier where LLM training actually happens — hybrid parallelism on heterogeneous networks — and argues both prior philosophies explore corners of a larger space.

The setting: pre-training scales by combining

running data parallelism (replicate the model, allreduce gradients), tensor parallelism (split layers, communicate activations), pipeline parallelism (split the model into stages, send activations), and fully-sharded data parallelism/ZeRO (shard weights and optimizer state, allgather weights before use, reduce-scatter gradients after) simultaneously
. Every method adds collectives, and the network is lopsided: in the paper’s Cluster A, GPUs inside a node share 600 GB/s NVSwitch links while each device gets just 25 Gb/s across nodes — a three-orders-of- magnitude gap. Under such asymmetry, communication overhead “occupies a substantial portion of end-to-end execution time,” and hiding it behind computation is the difference between paying for GPU-hours and using them.

The paper’s survey table makes the fragmentation concrete: each prior system — Megatron-LM, DeepSpeed ZeRO, PyTorch FSDP, out-of-order backprop, breadth-first pipelines, CoCoNet, Dist-Einsum — exercises a subset of the possible partitioning and scheduling dimensions. Nobody had named the whole space, let alone searched it.

What people did before, and where it broke

Graph-level scheduling. FSDP prefetches the next layer’s weight allgather during the current layer’s compute; ZeRO overlaps gradient reduction with backward. Effective but coarse: whole collectives overlap whole computations, and the paper’s Figure-1 timeline shows the tell-tale idle gaps when a collective outlasts its computation partner.

Multi-stream concurrency. Running collectives on parallel GPU streams (Better-Together-style) parallelizes communication with communication, not with computation — a narrower win.

Fine-grained kernel fusion. CoCoNet and the decomposition approach split a collective and its dependent matmul into chunks inside fused kernels — powerful for that pair, but locally greedy: Centauri’s motivating example shows the unfused MatMul B finishing earlier under a better graph-level order than the fused kernel achieves. Fusing an operator pair forecloses reorderings around it.

Single-parallelism focus. Most schedulers optimize one parallelism’s pattern. Hybrid reality is messier: the best backward schedule under tensor parallelism (activation gradients first) differs from the best under FSDP (weight gradients first) — a choice prior systems hard-coded one way.

Centauri: a partition space and a scheduling hierarchy

  1. Dimension 1: primitive substitution new

    Rewrite collectives into equivalent sub-primitives: allreduce → reduce-scatter + allgather (or reduce + broadcast); reduce-scatter → per-root reduces; allgather → per-root broadcasts. Costed and pruned (unrooted forms preferred — root ranks become contention hotspots). A lovely aside: substituting DP’s allreduce and repositioning the allgather past elementwise ops literally derives ZeRO-1/2 and sequence parallelism from DP and TP.

  2. Dimension 2: group partitioning new

    Split the device group into a topology-aligned mesh of sub-groups (e.g., intra-node × inter-node), so a collective becomes iterated sub-collectives. Pruned by network reality: sub-groups with unbalanced bandwidths are excluded, and splits that would break NCCL’s carefully-built ring channels are avoided.

  3. Dimension 3: workload partitioning new

    Chunk the tensor itself, splitting the collective and its adjacent computation into a chain of overlappable pieces — with chunk counts bounded because too-fine partitions drown in kernel-launch and data-movement overheads.

  4. Scheduling tier 1 — operation (forward) new

    Per collective, greedily pick the partition + schedule with minimal modeled cost: chunk counts sized to the ratio of communication to independent-computation cost; uneven intra/inter-node splits launched in the order that hides the slow part.

  5. Tiers 2 and 3 — layer (backward) and model new

    Layer: choose between activation-gradient-first (best for TP) and weight-gradient-first (best for FSDP prefetch) by comparing two closed-form cost expressions. Model: partition the DP allreduce into allgather-overlapping-forward and reduce-scatter-overlapping-backward, and pick how many pipeline micro-batches launch together — between memory-minimal depth-first and overlap-maximal breadth-first — under the device memory budget.

The hierarchy is what keeps search cheap: LLMs' repetitive layers and gradient-accumulation loops mean each tier's decision amortizes across the whole model. Implemented atop Megatron-LM / PyTorch / NCCL.

The idea

Name the space first. Centauri’s conceptual move is the observation that a collective is nothing but a mapping transformation of a data volume across a device group — so there is nothing sacred about its granularity. It can be rewritten (primitive), subdivided across machines (group), or sliced across data (workload), and any combination preserves semantics. The three dimensions are searched in that order because each stage’s choice sets the cost model for the next. Two satisfying corollaries: the optimization spaces of eight prior systems are subsets of this space, and famous parallelism strategies themselves — ZeRO-1/2, sequence parallelism — turn out to be specific substitution-and- repositioning choices within it. What the field treats as distinct algorithms, Centauri treats as coordinates.

Prune with topology, not hope. The space is huge, and much of it is bad. Pruning rules encode network physics: rooted primitives lose to unrooted ones as device counts grow (root contention); sub-groups mixing fast and slow links are excluded (the slow link sets the pace); chunk counts are capped (launch overhead); on some architectures finer group splits would fragment NCCL’s ring channels and are rejected. What survives is a tractable menu of genuinely plausible partitions.

Schedule where the structure is. A global schedule over a partitioned billion-parameter graph is intractable — but LLMs are towers of identical layers trained with gradient accumulation, so the problem factorizes. Operation tier: within a forward layer, each collective greedily picks its best partition-and-overlap scheme (Algorithm 1 sizes chunks by the communication-to- independent-compute ratio and orders intra/inter-node pieces). Layer tier: the backward pass has a natural binary choice — activation gradients first (the classical order, right for TP) or weight gradients first (right for FSDP, whose next-layer weight allgather wants to start early) — decided per configuration by comparing two cost formulas. Model tier: the DP gradient allreduce is split into an allgather hidden under the next forward pass and a reduce-scatter hidden under backward, chunk-by-chunk; and in pipelines, the number of micro-batches launched together interpolates between depth-first (minimum activation memory, minimum overlap) and breadth-first (maximum both) — chosen to maximize overlap within the memory budget.

Different clusters, different winners — automatically. Because every choice is costed against the actual topology, the same model gets different schedules on the bandwidth-starved Cluster A (25 Gb/s/device inter-node) and the well-fed Cluster B (100 Gb/s) — and the gains concentrate exactly where bandwidth is scarce, which is where they are needed.

One training step of LLaMA under FSDP + DP, Centauri-scheduled

FSDP = weights sharded; each layer needs a weight allgather before use and a gradient reduce-scatter after backward. DP = replica groups needing gradient allreduce. AG/RS = allgather/reduce-scatter. Cluster A: 600 GB/s intra-node, 25 Gb/s per device inter-node. The walkthrough composes the paper's Figures 1, 6, and 7.

Step 1 of 6

Partition: rewrite before you schedule

The DP allreduce is substituted by reduce-scatter + allgather — not for kernel fusion, but so its halves can hide under DIFFERENT phases (RS under backward, AG under the next forward). FSDP’s weight allgathers get group-partitioned into an intra-node stage (fast, on NVSwitch) and an inter-node stage (slow, on InfiniBand), and workload-partitioned into chunks per weight tensor.

AR → RS + AG (phase-splittable)
AG → [intra-node × inter-node] × chunks

Why it works

  • A collective is a workload mapping over a group → partitioning by primitive, group, and workload preserves semantics while multiplying overlap opportunities → the spaces of eight prior systems (and even ZeRO/SP themselves) become searchable points rather than competing doctrines.
  • Topology-aware pruning encodes network physics → unbalanced sub-groups, rooted contention, and over-fine chunks are excluded a priori → the surviving space is small enough for greedy, per-collective decisions.
  • LLM structure factorizes the schedule → identical layers and gradient accumulation let three cheap tiers (operation, layer, model) compose into a global schedule → no monolithic graph-scheduling problem is ever solved.
  • The backward pass has a genuine binary degree of freedom (activation- vs weight-gradient priority) → costing it per configuration instead of hard-coding captures wins that single-parallelism schedulers structurally miss.
  • Overlap potential is bounded by concurrent computation → the micro-batch count knob converts spare activation memory directly into hidden communication → memory, not cleverness, becomes the binding constraint, and it is spent deliberately.

What it costs

  • Search and modeling machinery. Cost models for every partition scheme, per topology; greedy tier-wise choices are cheap but the framework must be maintained against evolving NCCL/cluster behavior.
  • Memory spent on overlap. The model-tier knob deliberately raises activation memory (more concurrent micro-batches) to buy overlap — capacity that competes with model size and batch size.
  • Kernel-launch granularity limits. Chunking is capped by launch overheads; on very fast networks the whole approach yields little (~5% at 256 GPUs on Cluster B) because there is little to hide.
  • Greedy, not optimal. Operation-tier decisions are sequential and local; the hierarchy trades global optimality for tractability.
  • Training-loop scope. The techniques lean on LLM regularity (uniform layers, gradient accumulation); irregular models or inference serving are outside the demonstrated envelope.

The evaluation

LLaMA models at four sizes trained under FSDP, DP, FSDP+DP, and TP+PP+DP on two deliberately different clusters: Cluster A (8× A100-80G per node, 600 GB/s NVSwitch intra-node, but PCIe 3.0 hosts and a shared InfiniBand HDR port — 25 Gb/s per device inter-node) and Cluster B (4× HDR ports — 100 Gb/s per device), scaling to 256 GPUs. Baselines: Megatron-LM, DeepSpeed ZeRO-1/2/3 with direct overlap, and per-configuration overlap variants.

Three generations of communication-computation overlap

PropertyGraph-level scheduling (FSDP/ZeRO/Megatron)Fine-grained kernel fusion (CoCoNet / decomposition)Centauri (partition + hierarchical scheduling)
Unit of overlap
Hybrid-parallel awareness
Measured gains (LLaMA)Baseline
Where it strugglesDuration-mismatched pairs; heterogeneous networksGraph-level opportunities beyond the fused pair
LLaMA at four sizes; Cluster A = 8×A100-80G/node, NVSwitch 600 GB/s intra-node, 25 Gb/s/device inter-node (shared HDR port); Cluster B = 100 Gb/s/device (4 HDR ports); up to 256 GPUs; CUDA 11.7, NCCL 2.14, PyTorch 2.0, Megatron-LM base. Hybrid configurations include DP3+FSDP16 through DP12+FSDP4 (48 GPUs) and TP+PP+DP mixes with interleaved 1F1B pipelining.Underlined values explain themselves when clicked.

Check your understanding

  1. 1. Centauri’s opening example shows a plain, unfused MatMul finishing EARLIER than the same MatMul fused with its allgather by a CoCoNet-style kernel. How can fine-grained fusion lose?

  2. 2. Substituting DP’s allreduce with reduce-scatter + allgather, then repositioning the allgather past elementwise operations, "derives ZeRO-1/2 and sequence parallelism from DP and TP." What is the significance of this observation?

  3. 3. Backward passes traditionally compute activation gradients before weight gradients. Why does Centauri sometimes flip this order under FSDP?

  4. 4. At the model tier, Centauri launches MORE pipeline micro-batches together than memory-minimal depth-first scheduling would. What is being purchased, and with what currency?

Related papers on Machine Learning Systems

See all 212 →