Making Containers Easier with HPC Container Maker Scott McMillan NVIDIA Corporation Champaign IL, USA
[email protected] Abstract—Containers make it possible for scientists and engi- the HPC data center must be redeployed inside the container. neers to easily use portable and reproducible software environ- This paper describes HPC Container Maker (HPCCM), an ments. However, if the desired application is not already available open source project to address the challenges of creating HPC from a container registry, generating a custom container image from scratch can be challenging for users accustomed to a bare application containers [7]. metal software environment. HPC Container Maker (HPCCM) is an open source project to address these challenges. HPCCM A. Related Work provides a high level, configurable Python recipe format for Environment modules [8] are typically used on HPC sys- deploying HPC components into container images according to tems to manage the software development and runtime envi- best practices. HPCCM recipes are more portable and powerful than native container specification formats, easier to create, and ronment. Whether building an application from source or using produce smaller, well-constructed container images. a pre-compiled binary, the user loads the set of environment Index Terms—containers, singularity, docker, high- modules appropriate for the application, e.g., a compiler, performance computing MPI library, math libraries, and other supporting software components. The software packages have been pre-installed I. INTRODUCTION on the system by the system administrator. A typical HPC Containers simplify software deployments in HPC data system may have hundreds of inter-dependent environment centers by wrapping applications into isolated virtual en- modules.