A Compilation-Based Approach to Performant Reduction and Redistribution Collective Communication Algorithms — Detailed Summary

Andreas Jocksch (ETH Zurich / CSCS), C. Nicole Avans, Riley Shipley, Anthony Skjellum (Tennessee Technological University) | The International Journal of High Performance Computing Applications (IJHPCA), Special Issue Paper, 2026, Vol. 40(2), pp. 219–239 | DOI: 10.1177/10943420251363423

Per-section summary organized by the paper's headings. Each section includes paragraph-level bullet points and exact quantitative results where the paper provides them. This is an expanded version of the authors' PPAM 2024 conference paper "Flexible algorithms for persistent MPI allreduce communication" (LNCS 15579, pp. 273–286). Code: github.com/eth-cscs/ext_mpi_collectives. Funded by NSF Grants 2405142 and 2412182. Benchmarked on the CSCS Alps supercomputer.


Abstract


1. Introduction


2. Newly Optimised Algorithms

2.1 Recursive exchange

2.1.1 Intra-node communication

2.1.2 Inter-node communication

2.1.3 Parametrisation

Number of tasks Recursive exchange Cyclic shift
2 1 1
4 2 3
8 4 10
64 32 409
128 64 1378
12 8 20
72 76 483
288 544 5421

2.1.4 In-place versus out-of-place

2.2 Cyclic shift

2.2.1 Intra-node communication

2.2.2 Parametrisation

2.3 Tree algorithm

2.4 Cyclic copy-in reduction

2.5 Other collective operations


3. Hardware Mapping

3.1 Barrier implementation

3.2 Translation of the algorithm

Colour Syntactical meaning
Red Point-to-point MPI communication
Blue On-node copy or reduce operations
Green Memory buffer
Brown Barriers

3.3 Mapping on the GPU


4. Persistent Versus Blocking Interface


5. Benchmarks

5.1 Standalone communication

System hardware Factors
AMD EPYC 7003 (128 cores / two sockets) {−16, −4, −2, 2, 4, 16}
NVIDIA Grace-Hopper (72 cores / one socket) {−9, −8, 8, 9} or {−72, 72}
NVIDIA Grace-Hopper (288 cores / four sockets) {−9, −8, −4, 4, 8, 9} or {−72, −4, 4, 72}

5.2 Application

Message size (bytes) Method Split Factors
≥1 Copy 64 bytes {−4, −4, 4, 4}
≥512 Copy Equal {−4, −4, 4, 4}
≥2048 XPMEM Equal {−4, −4, 4, 4}
Message size (bytes) Method Split Factors
≥1 Copy Equal {−16}
≥80000 CUDA IPC Equal {−16}

QS/H2O-512:

Collective Calls Msg size (B) Time/call original (s) Time/call optimised (s) Δ Time/call (s)
allreduce 295000 ± 2221 3649 ± 1.528 2.949·10⁻⁵ ± 2.982·10⁻⁷ 1.410·10⁻⁵ ± 2.797·10⁻⁷ 1.539·10⁻⁵ ± 5.779·10⁻⁷
allreduce (ext_mpi) 281900 ± 4327 3730 ± 2.324
reduce_scatter_block 46 ± 0 2097200 ± 0 0.09834 ± 0.001937 0.004390 ± 0.001822 0.09395 ± 0.003795
total 278.4 ± 2.627 271.8 ± 2.350 6.6 ± 4.977

QS_mp2_rpa/64-H2O/H2O-64-RI-dRPA-TZ:

Collective Calls Msg size (B) Time/call original (s) Time/call optimised (s) Δ Time/call (s)
allreduce 59000 ± 0 8665 ± 0.001765 2.808·10⁻⁵ ± 8.496·10⁻⁷ 1.959·10⁻⁵ ± 4.078·10⁻⁷ 0.849·10⁻⁵ ± 1.257·10⁻⁶
allreduce (ext_mpi) 47740 ± 0 3501 ± 0.002619
reduce_scatter_block 166 ± 0 18940000 ± 0 0.2959 ± 0.002437 0.2562 ± 0.002635 0.0397 ± 0.005072
total 423.2 ± 2.629 416.4 ± 2.463 6.8 ± 5.092


7. Conclusions


8. Future Work and Opportunities


9. Limitations


10. Discussion of NCCL

Note on NCCL Tuning

The paper's central lever — choosing a multi-radix factorisation per hardware tier (quadrant → socket → node) and a message split whose smallest piece stays at the cache-line size — is structurally the same decision NCCL exposes through algorithm, protocol, and chunkSize selection. The authors show that the optimal factor set is strongly hardware- and message-size-dependent (Table 3: {−16,−4,−2, 2,4,16} on dual-socket EPYC versus {−9,−8,8,9} on single-socket Grace), and that a wrong choice such as the forced {127} prime factorisation collapses performance — evidence that per-collective configuration search, not a fixed default, is what recovers the speedup. Their explicit future-work goal of replacing empirical parameter selection with a machine-learning-guided heuristic is the same problem statement as learned NCCL configuration tuning, applied to a compiled MPI stack.