Accurate and Efficient Sums and Dot Products in Julia

Abstract : This paper presents an efficient, vectorized implementation of various summation and dot product algorithms in the Julia programming language. These implementations are available under an open source license in the AccurateArithmetic.jl Julia package. Besides naive algorithms, compensated algorithms are implemented: the Kahan-Babuška-Neumaier summation algorithm, and the Ogita-Rump-Oishi simply compensated summation and dot product algorithms. These algorithms effectively double the working precision, producing much more accurate results while incurring little to no overhead, especially for large input vectors. This paper also tries and builds upon this example to make a case for a more widespread use of Julia in the HPC community. Although the vectorization of compensated algorithms is no particularly simple task, Julia makes it relatively easy and straightforward. It also allows structuring the code in small, composable building blocks, closely matching textbook algorithms yet efficiently compiled.
Document type :
Preprints, Working Papers, ...
Complete list of metadatas

Cited literature [13 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-02265534
Contributor : François Févotte <>
Submitted on : Wednesday, August 14, 2019 - 12:10:17 AM
Last modification on : Wednesday, August 21, 2019 - 10:30:58 AM

File

27baf0e.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-02265534, version 2

Citation

Chris Elrod, François Févotte. Accurate and Efficient Sums and Dot Products in Julia. 2019. ⟨hal-02265534v2⟩

Share

Metrics

Record views

122

Files downloads

37