Papers
Topics
Authors
Recent
Search
2000 character limit reached

ClusterGather: Locality-Aware Aggregation Mechanisms

Updated 4 July 2026
  • ClusterGather is a family of locality-aware approaches that include hierarchical all-gather operations in MPI/GPU contexts and adaptive clustering in gravitational-wave searches.
  • In high-performance computing, it reduces redundant data transfers by leveraging shared-memory windows, leader coordinations, and DSMEM-based block exchanges.
  • In continuous-wave searches, it implements seed-centered adaptive clustering to improve false alarm rejection and efficiency in candidate signal detection.

ClusterGather is a non-unified research term used for several locality-aware gather or clustering mechanisms. In high-performance communication, it denotes hierarchical all-gather designs that exploit shared memory either across MPI ranks on the same node or across thread blocks within a Hopper GPU cluster. In continuous gravitational-wave postprocessing, it denotes an adaptive clustering procedure that forms seed-centered candidate clusters in frequency–spin-down and sky coordinates. Related literatures on rr-gather clustering and multi-agent gathering address adjacent mathematical problems—minimum-size clustering in metric spaces and rendezvous of mobile agents—but they do not define the same primitive or workflow (Zhou et al., 2020, Luo et al., 26 Aug 2025, Singh et al., 2017, Epasto et al., 2021, Barel et al., 2019).

1. Terminological scope

The term is best understood as a family of domain-specific constructions rather than a standardized abstraction. Across the cited works, “ClusterGather” refers either to an all-gather operation confined to a locality with explicit synchronization and shared storage, or to an adaptive clustering rule that collects nearby objects around a seed only when the local density profile supports doing so.

Context Object called ClusterGather Core mechanism
Multi-core clusters Hybrid MPI+MPI allgather Shared-memory window per node plus leader-only inter-node MPI_Allgatherv
Hopper GPU LLM inference Cluster-level all-gather primitive DSMEM block-to-block exchange in log2N\log_2 N rounds
Continuous-wave searches Adaptive clustering procedure Seed-centered over-density detection in F-space and S-space

A related but distinct usage of “gather” appears in the rr-gather problem, where the objective is to partition points into clusters of size at least rr while minimizing the maximum radius. Another related usage appears in geometric consensus, where “gathering” means that all pairwise distances tend to zero. These neighboring formulations clarify the broader semantic field around ClusterGather, but they are not interchangeable with the communication primitives or adaptive clustering procedure described above (Epasto et al., 2021, Barel et al., 2019).

2. Hybrid MPI+MPI ClusterGather on multi-core clusters

In the MPI setting, ClusterGather is a hierarchical allgather designed for hybrid MPI+MPI codes that use MPI-3 shared-memory extensions for on-node parallelism. The construction begins by splitting MPI_COMM_WORLD into one shared-memory subcommunicator per node with MPI_Comm_split_type(..., MPI_COMM_TYPE_SHARED, ...), selecting one leader per node, and then forming a bridge communicator containing exactly one rank per node with MPI_Comm_split. On the shared-memory communicator, all ranks call MPI_Win_allocate_shared; the leader allocates P_total·m elements for an allgather of mm-element messages, while non-leaders allocate zero bytes and then recover the same base pointer via MPI_Win_shared_query. Each rank ii sets mybuf = baseptr + i·m, writes its own mm elements directly into that segment, and thereby avoids intra-node peer-to-peer copies (Zhou et al., 2020).

The inter-node phase is executed only by leaders. They call MPI_Allgatherv(mybuf, m, …, baseptr, recvcounts[], displs[], …) on the bridge communicator, with recvcounts[k] = m·(size of node k) and displs[k] = (starting [offset](https://www.emergentmind.com/topics/generalized-inner-outer-offset-degeneracy) of node k in baseptr). A barrier on the shared-memory communicator before the inter-node exchange ensures that every leader’s local block is ready; a second barrier after MPI_Allgatherv ensures that all on-node ranks observe the fully updated shared buffer. Because every on-node rank points into the same window, there is exactly one copy of each block of the result per node, and no on-node broadcast or local copy loop is invoked (Zhou et al., 2020).

The cost model makes the intended savings explicit. For pure MPI allgather, memory per node is

Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),

where PP is the total number of MPI ranks and pp is the number of ranks per node. For the hybrid MPI+MPI method, memory per node is

log2N\log_2 N0

so the memory reduction factor is approximately log2N\log_2 N1. The communication-time models are summarized as

log2N\log_2 N2

and

log2N\log_2 N3

where log2N\log_2 N4 is network latency, log2N\log_2 N5 is per-byte transmission time, and log2N\log_2 N6 is a small shared-memory synchronization cost. The comparison given in the paper is that, if log2N\log_2 N7, the total log2N\log_2 N8-bytes term in log2N\log_2 N9 is smaller by approximately rr0, while the added overhead is two barriers of order rr1 (Zhou et al., 2020).

The reported measurements validate these trade-offs on a Cray XC40 system using Cray MPI and on an NEC cluster using OpenMPI. In single-node tests with rr2 up to rr3, pure MPI latency grows linearly with rr4, whereas the hybrid method remains at a few microseconds; at rr5 elements, the reported example is approximately rr6 for hybrid versus approximately rr7 for pure MPI. In the mixed case on rr8 nodes with rr9, hybrid overtakes pure once rr0 on OpenMPI at small rr1, and always on Cray MPI for rr2. In an irregular case with rr3 nodes with rr4 ranks and one node with rr5 ranks, hybrid remains at approximately rr6 while pure rises to approximately rr7. Application-level validation shows that hybrid SUMMA can be up to rr8 faster at small block size rr9 when all ranks lie on one node, and that hybrid BPMF reduces total runtime by up to mm0 at mm1 cores while cumulative allgather time drops by approximately mm2, barriers included (Zhou et al., 2020).

3. ClusterGather as a Hopper on-chip collective primitive

In the LLM-inference setting, ClusterGather is a cluster-level all-gather primitive that runs entirely on-chip within a Hopper GPU thread-block cluster. The primitive is defined for up to mm3 blocks, with mm4 required to be a power of two. Each block owns a shared-memory buffer mm5 of length mm6, with D_b[0:size] initially holding that block’s local segment. ClusterGather then replicates each block’s local data segment to every other block through the SM-to-SM interconnect, DSMEM, without off-chip global-memory round-trips (Luo et al., 26 Aug 2025).

The protocol is a binary-tree all-gather executed in mm7 rounds. At round mm8, with stride = 2^{r-1}, block mm9 computes

ii0

Each block sends the prefix it has gathered so far, of length ii1, to send_to, placing it at offset stride * size in the peer’s buffer; symmetrically, it receives the next chunk of the same size from recv_from into its own buffer at the same offset. A barrier-like wait guarantees visibility before the next round, and the stride doubles until it reaches ii2. The semantics are strict: shared memory per block must accommodate ii3, all ii4 blocks must participate, and no block may exit early (Luo et al., 26 Aug 2025).

The on-chip traffic formula given for all-gather is

ii5

For comparison, the paired primitive ClusterReduce has

ii6

The paper uses these formulas to guide which dimensions should be gathered and which reduced in the fused execution plan. It also distinguishes ClusterGather from standard CUDA intrinsics: warp intrinsics operate within a warp, __syncthreads and grid-level synchronization coordinate threads within a block, whereas ClusterGather leverages DSMEM for direct on-chip block-to-block transfer that is not exposed by standard CUDA C++ APIs (Luo et al., 26 Aug 2025).

Within ClusterFusion, ClusterGather is invoked after each block computes its local Q, K, and V segments: ii7 After that call, every block has the full Q, K, and V for its attention head, allowing the kernel to continue with per-block partial attention, ClusterReduce for softmax statistics, and the final ii8 projection while keeping intermediates on-chip. In the collective microbenchmark reported in Table 5, for a data size of ii9, off-chip gather takes mm0 and on-chip ClusterGather takes mm1, a mm2 speedup; for mm3, the times are mm4 and mm5, a mm6 speedup. The ablation in Figure 1 reports that disabling DSMEM increases end-to-end TPOT by up to mm7. At the framework level, ClusterFusion reports an average mm8 reduction in end-to-end latency on H100 GPUs across different models and configurations (Luo et al., 26 Aug 2025).

4. ClusterGather as adaptive candidate clustering in continuous-wave searches

In continuous gravitational-wave searches, ClusterGather denotes an adaptive clustering procedure for post-processing stage-1 candidates. The input is

mm9

where Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),0 are template parameters and Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),1 is the detection statistic. Clustering proceeds iteratively: select the loudest candidate Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),2 with Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),3, form a cluster Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),4 around that seed, remove Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),5 from the current candidate set, and stop when no remaining candidate exceeds the seed threshold Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),6. Typical thresholds quoted in the procedure are Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),7 and Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),8 for Mpure=p(Pm),M_{\text{pure}} = p \cdot (P \cdot m),9, or PP0 and PP1 for PP2 (Singh et al., 2017).

The method is explicitly two-space. In frequency–spin-down space, distances from the seed are measured by

PP3

so contours of constant PP4 are ellipses in normalized PP5 coordinates. Distances are binned into equal-area annuli with edges PP6, where

PP7

The histogram PP8 is smoothed by first fitting a superposition PP9 of Gaussians and sinusoids and then re-fitting the result by a single Gaussian pp0. The first local minimum of pp1 near pp2 yields the F-space cluster radius pp3. The procedure then evaluates three hill parameters,

pp4

and accepts the F-cluster only if pp5, pp6, and pp7. Example values given are pp8, pp9, and log2N\log_2 N00. If the test fails, the radius is reset to log2N\log_2 N01, which restricts the shortlist to the first bin (Singh et al., 2017).

In sky space, the procedure transforms log2N\log_2 N02 to a uniform plane log2N\log_2 N03 and defines

log2N\log_2 N04

Sky annuli have edges log2N\log_2 N05, with

log2N\log_2 N06

where log2N\log_2 N07 is the log2N\log_2 N08 containment diameter and log2N\log_2 N09 is a tuning term that may increase with seed loudness. If the first sky bin is the most populated, the smallest log2N\log_2 N10 satisfying

log2N\log_2 N11

with log2N\log_2 N12 determines log2N\log_2 N13; otherwise log2N\log_2 N14, yielding a single-occupant sky cluster. The final cluster is

log2N\log_2 N15

The stated rationale is that real CW signals produce a strong local over-density both in F-space and in sky, whereas noise disturbances often do not (Singh et al., 2017).

The computational trade-off differs sharply from the communication uses of ClusterGather. Per seed, AdCl performs log2N\log_2 N16 distance computations, log2N\log_2 N17 histogram binning, two-stage fitting, and hill checks, whereas fixed-volume clustering only requires distance computations and a simple radius cut. However, the adaptive method typically produces at most half as many clusters as fixed clustering, reducing downstream follow-up cost. In the Einstein@Home O1 results quoted in the summary, for the high-significance log2N\log_2 N18 search, AdCl has noise rejection approximately log2N\log_2 N19 versus old clustering at at most log2N\log_2 N20, with efficiency approximately log2N\log_2 N21 versus log2N\log_2 N22. In the sub-threshold log2N\log_2 N23 search, AdCl has noise rejection approximately log2N\log_2 N24 versus old clustering at at most log2N\log_2 N25 at efficiency approximately log2N\log_2 N26 (Singh et al., 2017).

A neighboring formalism is the log2N\log_2 N27-gather problem. Given a metric space log2N\log_2 N28 and a point set log2N\log_2 N29, an log2N\log_2 N30-gather clustering is a partition

log2N\log_2 N31

with centers log2N\log_2 N32 such that log2N\log_2 N33 for all log2N\log_2 N34, and with objective

log2N\log_2 N35

minimized. The paper states that log2N\log_2 N36-gather is NP-hard and has a tight log2N\log_2 N37-approximation via Gonzalez–Shalita–Zwick. It then gives two algorithmic regimes beyond the usual offline setting: an MPC algorithm for Euclidean input points that computes an log2N\log_2 N38-approximation in log2N\log_2 N39 rounds with total space log2N\log_2 N40, and a fully dynamic algorithm in doubling metrics with amortized update time log2N\log_2 N41 and query time log2N\log_2 N42. These are minimum-size clustering results rather than ClusterGather collectives, but they formalize the “gather” motif as a radius-minimization problem under cardinality constraints (Epasto et al., 2021).

A second adjacent body of work studies gathering as geometric consensus of mobile agents. In that literature, the gathering objective is

log2N\log_2 N43

or its discrete-time analogue. The survey classifies eight systems by visibility range, sensing modality, and continuous versus discrete time. The listed results include exponential asymptotic gathering to the initial centroid for continuous infinite-visibility position sensing, asymptotic convergence in discrete time when log2N\log_2 N44, finite-time gathering under infinite-visibility bearing-only dynamics, finite-time gathering to a single point for several limited-visibility models, and finite expected-time clustering into an log2N\log_2 N45-disk for a randomized semi-synchronous bearing-only model. These results concern anonymous, oblivious agents in log2N\log_2 N46, not shared-memory collectives or seed-based postprocessing, but they supply a formal notion of “gathering” that is conceptually adjacent to the uses above (Barel et al., 2019).

This broader landscape helps prevent a common conflation. ClusterGather in MPI or Hopper GPU papers is a communication primitive; ClusterGather in CW searches is a density-adaptive clustering rule; log2N\log_2 N47-gather and multi-agent gathering are formal optimization or dynamical-system problems with different state spaces, guarantees, and cost models.

6. Comparative themes, constraints, and common misconceptions

The three direct ClusterGather usages share a common locality principle, but they operationalize it differently. In hybrid MPI+MPI, locality is the node: data are written once into a shared-memory window, leaders perform the inter-node exchange, and barriers protect data integrity. In Hopper GPUs, locality is the thread-block cluster: all blocks participate in a power-of-two binary-tree all-gather over DSMEM, with shared-memory buffers sized to hold the full gathered result. In CW postprocessing, locality is the seed neighborhood in two parameter spaces, and clustering is allowed to grow only while histogram shape and hill-parameter checks remain consistent with a signal-like over-density (Zhou et al., 2020, Luo et al., 26 Aug 2025, Singh et al., 2017).

These usages also embody different optimization criteria. The MPI and GPU variants are explicitly bandwidth- and memory-traffic-oriented: both remove unnecessary copies, and both replace repeated off-locality movement with a structured local exchange. The CW variant is explicitly false-alarm- and follow-up-budget-oriented: it spends more work per seed on density estimation and consistency testing in order to reduce the number of downstream seeds. This suggests a shared design pattern—local aggregation with strict participation and validation rules—but not a shared objective function.

A frequent misconception is that ClusterGather denotes a single standardized API or algorithmic schema. The cited papers do not support that view. Another misconception is that “gather” always means an all-gather collective. The CW usage is not a communication primitive at all; it is an adaptive clustering procedure over candidate sets. Conversely, the log2N\log_2 N48-gather and mobile-agent literatures should not be read as implementations of ClusterGather, even though they articulate mathematically precise gather or clustering objectives. A plausible implication is that the term is best treated as a family resemblance across locality-constrained aggregation problems rather than as a canonically defined operator.

From a systems perspective, the cited works converge on one practical lesson. When the relevant locality is exploited explicitly—whether by a shared-memory communicator, a bridge communicator of leaders, a DSMEM-resident block cluster, or a signal-consistent seed neighborhood—the resulting design can reduce redundant replication, suppress unnecessary movement, or narrow downstream search. The exact mechanism, however, remains domain-specific, and the term “ClusterGather” acquires its technical meaning only within that domain’s communication model, geometry, or statistical postprocessing pipeline.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to ClusterGather.