For almost a decade now, the cloud has been pitched as a cost-effective way to bring supercomputing out of the queue and into public IaaS or HPC on-demand environments. While there are certainly many use cases to prove that tightly-coupled problems can still work in the cloud despite latency hits (among other issues), application portability is one sticking point.
For instance, let’s say you have developed a financial modeling application on an HPC on demand service to prove that the model works so you can make the case for purchasing a large cluster to run it at scale on-prem. This application requires low latency, access to a high-speed file system and storage, and with MPI as the umbrella. Building and moving that application around with Docker would be possible, but not at all simple. However, being able to package that application up in a container that supports native HPC elements, including GPU acceleration, MPI, and the Lustre file system, for example would be a game-changer.
This HPC-specific container approach is what has moved the open source Singularity project from national lab research to growing mainstream adoption—and it is not just about high performance computing applications these days, either. Many in HPC, government, and high-end enterprise dipped their toes in the Docker waters early on to get a sense of how containers fit into their operations, which was useful from a first-steps perspective. But now, Singularity is filling in the gaps in usability, security, and ecosystem richness—and the traction is fast and furious, according to project lead and creator, Gregory Kurtzer.
Kurtzer, known for his development of CentOS, OpenHPC, Warewulf, and other popular code projects in HPC,is maintaining his day job at Lawrence Berkeley National Lab while continuing work on the HPC container source code he developed. Goals are to keep building on the security and support for HPC features and elements, including MPI—the very elements that are pushing the rise of Singularity in both research and enterprise.
For HPC users that want to test workloads at scale in an HPC environment on demand, containers are incredibly useful. However, according to Will Cottay, who manages cloud infrastructure for Penguin Computing, which just added Singularity containers for their Penguin on Demand (POD) service, Docker lacked many of the features required for users running tightly-coupled jobs that required access to Lustre and other HPC storage systems, MPI and GPU integration, and other usability features. He tells The Next Platform that his users were asking for container capabilities so they could bring their applications to POD but they could not do so with Docker. “We can’t make Docker as secure as we want for public HPC clusters and the integration of schedulers and MPI and pure access to hardware doesn’t exist in Docker. It’s designed to isolate the user from all of that so they have a nice, well-defined environment. But we need complete transparency down to the hardware since we run bare metal compute.”
Penguin has a wide array of users on POD, but if he had to make any generalizations, Cottay says they are engineering-focused (with CFD and other tightly coupled applications). In addition to users designing and testing (crashes, products, etc.) he says there is a new crop of POD users that are working on new weather applications to deliver as weather forecasting products. “They are doing things differently and need to prove the model on hardware at scale before they justify a multi-million cluster. These new users have been particularly excited about Singularity because they can build their own environment, bring it in, and get what they need from HPC—high speed, low-latency networks, especially.” Cottay says they have pushing Docker (which Penguin uses internally) to add these features for a long time, but even basic HPC aspects, including MPI support, are a couple of years away, at best.
Because maintaining such a hefty project takes time, Kurtzer created SingularityWare LLC, which has partnered with the mysterious stealth storage startup RStor, Inc. to allow them to hire a pool of talent to maintain and develop Singularity. This is all worth paying attention to because from our vantage point, this is open source software that the ability to pick up where Docker leaves off for users at the high end of the computing spectrum. Not just in terms of security, but also built-in support for features HPC end users count on (as mentioned before, parallel file system and MPI books, automatic GPU support and detection, integration with HPC-oriented schedulers, etc.).
In terms of the immense community and financial backing pushed to Docker over the last two years, Cottay says he thinks Singularity has legs. “People are always coming up with new ideas that need HPC. They’ve been trying to use Docker but found it was not good for building these kinds of environments. For HPC this is much more transparent to use; building and maintaining images and connecting it to high performance hardware just is not simple in Docker.” He says commercial POD users are leading the uptake on Singularity for many of the same reasons and secure ranks highest on the priority order.
This brings us back to the future of Singularity. With most national labs and an increasing number of universities and research centers adopting Singularity, it will be interesting to see what some full-time backing adds to the feature set. It will also be interesting to see how the addition of Singularity to POD plays out for users and to see what the ability use Singularity via AWS or other cloud providers does for HPC in the cloud. Since so much HPC cloud work is done to test ideas before moving them onto expensive, HPC gear, making that easier with HPC-specific containers could be a real game-changer.
Kurtzer agrees with the role Singularity might play in broadening HPC cloud user bases, but also points to how government agencies, labs, and universities are using this between their own clusters and project centers. While Docker wasn’t designed to work in these environments, he says that Singularity, now with the added development force, can keep enrichening the platform for further security, performance and integration just for this community.
Kurtzer tells The Next Platform that he is encouraged by interest from government end users who are attracted by the security and high performance features in Singularity compared to Docker, which he says is a great secure solution for microservices, but for protected data, is not robust enough for the job.
As a side note for those who follow progress with Singularity, we can consider open source project under the SingularityWare, LLC and RStor banner as a new path for the main project, which LBNL owns the copyright (source code), as happens when develop projects while on national lab salary. RStor is quietly working on a cloud-based storage platform that relies on the features baked into Singularity.