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



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.


Attribute NameValues
  • Douglas Thain

  • Peter Ivie

  • Haiyan Meng

  • University of Notre Dame

Date Created
  • 2015-10-28

Bibliographic Citation
  • English

Related Resource(s)
Departments and Units
Record Visibility Public
Content License

Digital Object Identifier


This DOI is the best way to cite this article.


Please Note: You may encounter a delay before a download begins. Large or infrequently accessed files can take several minutes to retrieve from our archival storage system.