Home Knowledge Base Floating-Point Reproducibility in Parallel Computing

Floating-Point Reproducibility in Parallel Computing is the challenge of obtaining identical numerical results across different parallel runs, hardware configurations, and thread counts — arising from the non-associativity of floating-point arithmetic where (a+b)+c ≠ a+(b+c) in finite precision, causing reductions performed in different orders (due to non-deterministic scheduling) to produce different final bit patterns even when mathematically equivalent.

The Non-Associativity Problem

IEEE 754 floating-point operations are not associative because of rounding: each operation rounds to the nearest representable value. Adding 1e15 + 1.0 + (-1e15) in left-to-right order gives 0.0 (catastrophic cancellation), but 1.0 + (-1e15) + 1e15 = 1.0. In parallel reductions, threads accumulate partial sums in non-deterministic order depending on scheduling, producing run-to-run variation.

Sources of Non-Determinism

Techniques for Reproducibility

Reproducibility vs Performance

Fully reproducible algorithms typically have 1.5–5× overhead vs fastest non-reproducible. The tradeoff:

Practical Mitigation

Floating-Point Reproducibility is the often-overlooked numerical correctness challenge that transforms seemingly equivalent parallel computations into divergent results — a fundamental tension between the mathematical ideal of associativity and the computational reality of finite-precision arithmetic in massively parallel systems.

floating point reproducibility paralleldeterministic parallel computationfloating point non-associativityreproducible hpc simulationkahan compensated summation

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.