Computing Library › HPC & Compute
HPC & Compute

Domain Decomposition

Domain decomposition splits a spatial problem into subdomains, one per process, so a large mesh can be solved in parallel across many nodes.

Divide the space

Most physical simulations discretize a spatial domain into a mesh. Domain decomposition partitions that mesh into subdomains and assigns one to each process, which owns and updates its portion. Because most physics is local, a process needs only its own cells plus a thin layer of neighbor data at the boundaries, so communication is limited to boundary exchange rather than global sharing. This locality is what makes spatial simulations scale.

Partitioning quality

Kronos motion — parallel

A good partition minimizes two things at once: the edge cut (the amount of boundary shared between subdomains, which sets communication volume) and the imbalance (differences in per-subdomain work, which cause waiting). For simple geometries a regular block or slab decomposition suffices. For complex or unstructured meshes, graph-partitioning tools compute partitions that keep subdomains compact and balanced, reducing both surface-to-volume ratio and work skew.

Surface-to-volume ratio

Computation scales with a subdomain's volume (its cell count) while boundary communication scales with its surface. As subdomains shrink under strong scaling, the surface-to-volume ratio rises, so communication grows relative to computation, which is precisely why strong scaling eventually saturates. Keeping subdomains compact (low surface for a given volume) delays this crossover, one reason cube-like partitions beat thin slabs at high process counts.

In practice

A Hyperion field or transport simulation decomposes its mesh across ranks, each exchanging halos with its spatial neighbors every timestep. Choosing compact, balanced subdomains, and reweighting them where an adaptive mesh concentrates work, controls both the communication volume and the load imbalance that would otherwise cap scaling.