Containers for portable, productive and performant scientific computing
This work addresses the challenge of software distribution and execution efficiency for developers and users in scientific computing, offering incremental improvements in container technology for HPC environments.
The study investigated the use of Linux containers to enhance portability and productivity in scientific computing, showing that containers cause no performance penalties on workstations and HPC systems and can reduce Python run times on parallel computers due to faster library imports.
Containers are an emerging technology that hold promise for improving productivity and code portability in scientific computing. We examine Linux container technology for the distribution of a non-trivial scientific computing software stack and its execution on a spectrum of platforms from laptop computers through to high performance computing (HPC) systems. We show on a workstation and a leadership-class HPC system that when deployed appropriately there are no performance penalties running scientific programs inside containers. For Python code run on large parallel computers, the run time is reduced inside a container due to faster library imports. The software distribution approach and data that we present will help developers and users decide on whether container technology is appropriate for them. We also provide guidance for the vendors of HPC systems that rely on proprietary libraries for performance on what they can do to make containers work seamlessly and without performance penalty.