English

Reproducibility and Performance: Why Choose?

Distributed, Parallel, and Cluster Computing 2022-03-16 v1 Software Engineering

Abstract

Research processes often rely on high-performance computing (HPC), but HPC is often seen as antithetical to "reproducibility": one would have to choose between software that achieves high performance, and software that can be deployed in a reproducible fashion. However, by giving up on reproducibility we would give up on verifiability, a foundation of the scientific process. How can we conciliate performance and reproducibility? This article looks at two performance-critical aspects in HPC: message passing (MPI) and CPU micro-architecture tuning. Engineering work that has gone into performance portability has already proved fruitful, but some areas remain unaddressed when it comes to CPU tuning. We propose package multi-versioning, a technique developed for GNU Guix, a tool for reproducible software deployment, and show that it allows us to implement CPU tuning without compromising on reproducibility and provenance tracking.

Keywords

Cite

@article{arxiv.2203.07953,
  title  = {Reproducibility and Performance: Why Choose?},
  author = {Ludovic Courtès},
  journal= {arXiv preprint arXiv:2203.07953},
  year   = {2022}
}
R2 v1 2026-06-24T10:14:06.568Z