The container engine for combining container portability with native HPC performance
Sarus is a container engine for high-performance computing (HPC) systems that provides a user-friendly way to instantiate feature-rich containers from Docker images. It is designed to blend the portability of containers with the unique requirements of HPC installations, such as: native performance from dedicated hardware, improved security due to the multi-tenant nature of the systems, support for network parallel filesystems and diskless computing nodes, and compatibility with a workload manager or job scheduler.
With flexibility, extensibility and community efforts at its core, Sarus relies on industry standards and open-source software. The adoption of the OCI specifications allows Sarus to implement a modular architecture and to extend the capabilities of the container runtime through external plugin programs, called “OCI hooks”. Hooks can customize containers to enable specific high-performance features, and they can be developed independently by third parties to introduce new technologies or improve support for existing ones.
HPC native performance for common Docker containers
By injecting system-specific resources (e.g. device files, libraries) during container creation, Sarus provides the missing link between non-HPC specific software stack of a portable container and HPC specific hardware available at runtime. The container images stay portable but the container achieve native performance.
Integrates with HPC infrastructures and software
Sarus has been developed by a team including experts of large and complex HPC systems. Sarus provides a simple integration into HPC ecosystem by storing images on a shared parallel filesystem, enabling MPI (PMI2 interface) and exposes GPU accelerators in a container and by securing container usage in a multi-user context.
Customizes containers at runtime with standard plugins
Sarus adopts the OCI open industry standards, allowing for modularity and extensibility of its installation and configuration. Sarus is designed to use and configure third-party plugins, called “OCI Hooks”, which customize the container at runtime. The core runtime of Sarus is a replaceable upstream low-level runtime (runc): better maintainability, flexibility, and choice.
Provides a Docker-like command-line interface