Virtualization lets us create isolated execution environments for software. Virtual machines, which offer us a very mature solution, have been superseded by container-based virtualization due to its lighter design and greater practicality.
Supercomputing systems have many users who don’t have permission to install software into environment modules. Users can circumvent this limitation by compiling source code and installing it in a user directory or using virtual machines and containers. The latter solution is promising; however, popular implementations are often unsuitable for supercomputing systems. Therefore, some specialized solutions have been developed to abolish these drawbacks.
This work tested and evaluated four container-based solutions for supercomputing environments: Apptainer, Enroot, Podman, and udocker. We assessed their performance with five different benchmarks: memory performance with the STREAM benchmark, CPU performance with the Sysbench benchmark, network performance with the NetPIPE benchmark, the performance of typical scientific applications with the HPCG benchmark, and the performance of graphics accelerators with the Nvidia HPCG benchmark. All four solutions deliver similar performance, so the differences between their other functionalities are more relevant to the choice.
|