论文标题
可重复性和性能:为什么选择?
Reproducibility and Performance: Why Choose?
论文作者
论文摘要
研究过程通常依赖于高性能计算(HPC),但是HPC通常被视为与“可重复性”相反:一个人必须在获得高性能的软件和可以以可重现方式部署的软件之间进行选择。但是,通过放弃可重复性,我们将放弃验证性,这是科学过程的基础。我们如何和解性能和可重复性?本文着眼于HPC中的两个关键性能方面:消息传递(MPI)和CPU微体系结构调整。已经证明已进入性能可移植性的工程工作已经证明是富有成果的,但是在CPU调整方面,有些领域仍未得到解决。我们提出了软件包多反转,这是一种针对GNU GUIX开发的技术,是一种可再现软件部署的工具,并表明它使我们能够实施CPU调整而不会损害可重复性和出处跟踪。
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.