Containers
In many domains, hypervisor-based virtualization using virtual machines (VMs) has become commonplace, offering customizable software environments with portability and security. However, High-Performance Computing (HPC) has been cautious about this approach due to performance overhead introduced by the layers between applications and hardware. A more efficient alternative in HPC is operating-system level virtualization through containers. Unlike VMs, where applications run with a complete guest OS and a hypervisor, containers execute directly on the host OS, sharing its kernel and some software. This minimizes execution overheads, potentially reaching near native-OS performance. Containers, being leaner, faster to deploy, and requiring less storage space, present a compelling solution compared to VMs.
Containers bring a series of potential benefits to HPC, such as improved software environment flexibility and portability, as well as enhanced research reproducibility. Portability is arguably one of the main advantages containers bring to HPC. They allow the application a high degree of independence from the underlying platform. This limitates the need to install and configure these dependencies, as well as the application itself, on every system where it needs to be executed. Besides advantages in terms of system management, this feature reduces or eliminates the need for rebuilding and reconfiguration when attempting to run the application on a new system.
The portability of containers allows the same software environment to be used to repeat experiments on different systems, by different researchers. Therefore, containers can provide enhanced reproducibility of execution for scientific application. This is an important aspect in attaining reproducible of research results. Especially in view of the large array of scientific and engineering fields that rely on computational data processing and simulation.
Apptainer on amplitUDE
Apptainer serves as a secure alternative to Docker and is specifically designed for high-performance computing. It maintains compatibility with all Docker images and offers support for GPUs and MPI applications.
Apptainer is installed on all the nodes of amplituDE.
To verify installation and the version of Apptainer, use the following command:
apptainer --version
Also, you can check the available option and subcommands using –help option as follows:
apptainer --help
NOTE: Work in Progress.