Accurate and Efficiently Vectorized Sums and Dot Products in Julia - Archive ouverte HAL Accéder directement au contenu
Pré-Publication, Document De Travail Année : 2019

Accurate and Efficiently Vectorized Sums and Dot Products in Julia

Chris Elrod
  • Fonction : Auteur
  • PersonId : 1052306
François Févotte

Résumé

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.
Fichier principal
Vignette du fichier
main.pdf (353.9 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02265534 , version 1 (10-08-2019)
hal-02265534 , version 2 (14-08-2019)
hal-02265534 , version 3 (21-08-2019)

Identifiants

  • HAL Id : hal-02265534 , version 3

Citer

Chris Elrod, François Févotte. Accurate and Efficiently Vectorized Sums and Dot Products in Julia. 2019. ⟨hal-02265534v3⟩
642 Consultations
1463 Téléchargements

Partager

Gmail Facebook X LinkedIn More