Techniques for Preserving Scientific Software Executions: Preserve the Mess or Encourage Cleanliness?

Abstract

An increasing amount of scientific work is performed in silico, such that the entire process of investigation, from experiment to publication, is performed by computer. Unfortunately, this has made the problem of scientific reproducibility even harder, due to the complexity and imprecision of specifying and recreating the computing environments needed to run a given piece of software. Here, we consider from a high level what techniques and technologies must be put in place to allow for the accurate preservation of the execution of software. We assume that there exists a suitable digital archive for storing digital objects; what is missing are frameworks for precisely specifying, assembling, and executing software with all of its dependencies. We discuss the fundamental problems of managing implicit dependencies and outline two broad approaches: preserving the mess, and encouraging cleanliness. We introduce three prototype tools for preserving software executions: Parrot, Umbrella, and Prune.

Details

Creators
Douglas Thain; Peter Ivie; Haiyan Meng
Institutions
Date
Keywords
software preservation; dependency management
Publication Type
paper
License
CC BY 4.0 International
Download
781009 bytes

View This Publication