An introduction to Docker for reproducible research, with examples from the R environment
arXiv:1410.0846 · doi:10.1145/2723872.2723882
Abstract
As computational work becomes more and more integral to many aspects of scientific research, computational reproducibility has become an issue of increasing importance to computer systems researchers and domain scientists alike. Though computational reproducibility seems more straight forward than replicating physical experiments, the complex and rapidly changing nature of computer environments makes being able to reproduce and extend such work a serious challenge. In this paper, I explore common reasons that code developed for one research project cannot be successfully executed or extended by subsequent researchers. I review current approaches to these issues, including virtual machines and workflow systems, and their limitations. I then examine how the popular emerging technology Docker combines several areas from systems research - such as operating system virtualization, cross-platform portability, modular re-usable elements, versioning, and a `DevOps' philosophy, to address these challenges. I illustrate this with several examples of Docker use with a focus on the R statistical environment.
References in corpus (1)
Cited by in corpus (27)
- 5G network slicing using SDN and NFV- A survey of taxonomy, architectures and future challenges
- Opening the black box of energy modelling: Strategies and lessons learned
- A Privacy-Preserving Healthcare Framework Using Hyperledger Fabric
- Privacy and Trust Redefined in Federated Machine Learning
- ir_metadata: An Extensible Metadata Schema for IR Experiments
- Privacy Preserving Passive DNS
- USID and Pycroscopy -- Open frameworks for storing and analyzing spectroscopic and imaging data
- KernelHaven -- An Experimentation Workbench for Analyzing Software Product Lines
- A framework for fostering transparency in shared artificial intelligence models by increasing visibility of contributions
- Implementing a scalable and elastic computing environment based on Cloud Containers
- The Technologies Required for Fusing HPC and Real-Time Data to Support Urgent Computing
- KernelHaven -- An Open Infrastructure for Product Line Analysis
- A Collaborative Approach to Computational Reproducibility
- Reproducibility of Build Environments through Space and Time
- Using Unity to Help Solve Intelligence
- Monte Carlo modeling photon-tissue interaction using on-demand cloud infrastructure
- Improving Software Engineering Research through Experimentation Workbenches
- Kooplex: collaborative data analytics portal for advancing sciences
- SwarmRob: A Toolkit for Reproducibility and Sharing of Experimental Artifacts in Robotics Research
- Lightweight Container-based User Environment
- Design and Execution of make-like, distributed Analyses based on Spotify's Pipelining Package Luigi
- Integrated Benchmarking and Design for Reproducible and Accessible Evaluation of Robotic Agents
- Provenance tracking in the LHCb software
- Lack of evidence for a substantial rate of templated mutagenesis in B cell diversification
- Idiomatic and Reproducible Software Builds using Containers for Reliable Computing
- Context-Aware Task Handling in Resource-Constrained Robots with Virtualization
- WebMIaS on Docker: Deploying Math-Aware Search in a Single Line of Code