Distributed Sheaf Solve

Coordinating a fleet on a cellular sheaf reduces, at every control step, to one linear system, the harmonic extension

\[H\, q^\star = -B\, p,\]

where $H$ is the agent block of the sheaf Laplacian and $p$ the current target positions. This feature solves that system exactly, and in a distributed way. The factor of $H$ is computed once, cut into per-worker slices along its elimination tree, and each solve is a short message-passing protocol, so no machine ever holds the whole problem.

The 12-agent two-ring formation and its elimination tree of nine supernodes

The claims, and where each is established

claimwhere
Coordination is one SPD solve, and moving targets change only the right-hand sideCoordination as a harmonic extension
The multifrontal factorization organizes that solve per supernode, with disjoint ownershipThe multifrontal factorization
The tree can be cut across machines, and the cross-cut messages are small and provably sufficientDistributing the solve
Under one fair radio model, it beats a centralized coordinator and accelerated diffusion by 10–36×, with measured caveatsThree methods, one communication model
Exact to $10^{-16}$, $O(\log n)$ slots under nested dissection, 12% worst-case memory per agentBenchmarks
How to call all of itUsage and API

The worked example, Distributed Harmonic Extension: Tracking Without a Central Solver, runs the full pipeline on twelve simulated agents across three real processes and matches the central answer to $8.9\times10^{-16}$.

What it provides

  • distributed_tree_solve, the multi-process solve: one chunk of the factor per worker, boundary corrections over RemoteChannels.
  • partition_tree / worker_factorization, the minimally-cut connected partition and each worker's self-contained slice.
  • TreeWorkspace with three-argument tree_forward_ldiv! / tree_backward_ldiv!, the allocation-free cached re-solve for the per-step tracking loop.

Why this is not "just call a sparse solver"

A monolithic sparse Cholesky stores its factor on one node and threads its solve through one shared stack, and neither survives being split across machines. The work here is doing the identical arithmetic with the tree cut into pieces: same answer to machine precision, but the memory, the factor, and the communication are all decentralized. The communication scales with the tree's depth, which the elimination ordering keeps logarithmic, rather than with the size of the fleet.