Skip to content

Introduction to containers

Containers provide a way to package up applications, libraries, scripts, configurations and data in a way that enables applications or even complex workflows to run consistently on a laptop as well as on a supercomputer. A container encapsulates an entire runtime environment that can be transferred, shared and deployed rapidly while being lighter on host system resources than a full virtual machine environment.

Container systems

Multiple container systems exist, oriented to:

On MeluXina the Apptainer container system is provided to support containerized workloads.

Highlighted features of Apptainer:

  • Simplifies the creation and execution of containers, ensuring software components are encapsulated for portability and reproducibility.
  • Easy execution of parallel (MPI) containerized applications
  • Support for GPU accelerated applications
  • Support for creating and running encrypted containers
  • Support for trusted containers that are PGP-signed and verified
  • Support for using Docker containers and downloading them from public or private registries
  • Support for Open Containers Initiative (OCI) containers

For a complete list of features, check out the Apptainer documentation.

Apptainer/Singularity

Users of the Apptainer/Singularity container system can develop their own as well as run pre-existing containers.

The build stage requires administrative (root/sudo) privileges, and thus has to be performed on a system under user's control (laptop, workstation, server ...).

Once a container has been created, or an existing one selected from a container registry (such as Docker Hub, the Nvidia Cloud (NGC), or a private one), it can be run on one of the MeluXina computational modules.

Examples of using Apptainer on MeluXina are provided in the dedicated section.