Docker & HEP: Containerization of applications for development, distribution and preservation. Issue 2 (December 2015) - Binet, S.; Couturier, B.
Abstract: HEP software stacks are not shallow. Indeed, HEP experiments' software is usually many applications in one (reconstruction, simulation, analysis, ...) and thus require many libraries - developed in-house or by third parties - to be properly compiled and installed. Moreover, because of resource constraints, experiments' software is usually installed, tested, validated and deployed on a very narrow set of platforms, architectures, toolchains and operating systems. As a consequence, bootstrapping a software environment on a developer machine or deploying the software on production or user machines is usually perceived as tedious and iterative work, especially when one wants the native performances of bare metal. Docker containers provide an interesting avenue for packaging applications and development environment, relying on the Linux kernel capabilities for process isolation, adding git-like capabilities to the filesystem layer and providing (close to) native CPU, memory and I/O performances.