Today LBNL released version 2.0 of its innovative Singularity container software.
Mobility of Compute is the encapsulation of an environment in such a manner to make it portable between systems. This operating system environment can contain the necessary applications for a particular work-flow, development tools, and/or raw data. Once this environment has been developed it can be easily copied and run from any other Linux system. Singularity implements this by using an image file which contains a particular operating system environment. Once you have configured this environment as needed, you can copy this file to any other Linux system that has Singularity installed, and you can execute programs within this container or launch an interactive shell and use that container environment as if you were logged into it.
Many of the feature updates in this release make it even more applicable for HPC solutions:
- Support for non-root container contexts (user outside container, is same user inside container)
- Support of “live” container sparse image files
- Utilizing the operating system’s build and dependency resolution subsystems (e.g. YUM, Apt, etc.)
- Support for Open MPI 2.1 (pre-release)
- Updates for usage with non-local file systems
- Performance optimizations
- Support for native X11
Singularity containers are designed to be as portable as possible, spanning many flavors and vintages of Linux. The only known i86 limitation is the version of Linux running on the host. Singularity has been ported to distributions going as far back as RHEL 5 (and compatibles) and works on all flavors of Debian, Gentoo and Slackware. Within the container, there are almost no limitations aside from basic binary compatibility.
Each Singularity image includes all of the application’s necessary run-time libraries and can even include the required data and files for a particular application to run. This encapsulation of the entire user-space environment facilitates not only portability but also reproducibility.
Singularity is released under a modified BSD license and is available now on Github.