Total Recall: flmake and the Quest for Reproducibility
Anthony Scopatz
FLASH is a high-performance computing (HPC) multi-physics code which is used to perform
astrophysical and high-energy density physics simulations.
To run a FLASH simulation, the user must go through three basic steps: setup, build, and
execution. Canonically, each of these tasks are independently handled by the user.
However, with the recent advent of flmake - a Python workflow management utility for
FLASH - such tasks may now be performed in a fully reproducible way.
To achieve such reproducibility a number of developments and abstractions were needed,
some only enabled by Python. These methods are widely applicable outside of FLASH.
The process of writing flmake opens many questions to what precisely is meant
by reproducibility in computational science. While posed here, many of these
questions remain unanswered.
FLASH, reproducibility
DOI10.25080/Majora-54c7f2c8-003