Software containers for engineering applications in the cloud
In 2013, when Docker 1.0 container software has been released, we decided to use it as the basis for our High-Performance Computing (HPC) containers and developed - layer-by-layer - two dozen of additional HPC features and tools on top of the open-source Docker technology. One year later we started ‘containerizing’ engineering software from ANSYS, COMSOL, Siemens/CD-adapco, Dassault/Simulia, Numeca, OpenFOAM, Gromacs, and from many other engineering software providers, and implemented them on a dozen of different single- and multi-node cloud provider resources such as Amazon AWS, Atos/Bull, Microsoft Azure, and HPE Hybrid Cloud partners like Advania and Opin Kerfi, and even hybrid and private clouds. These containers bring a number of great benefits to traditional HPC environments with the goal to make HPC widely available, ubiquitous:
Packageability: Bundle applications together with libraries and configuration files:
A container image bundles the needed libraries and tools as well as the application code and the necessary configuration for these components to work together seamlessly. There is no need to install software or tools on the host compute environment, since the ready-to-run container image has all the required components.
Portability: Build container images once, deploy them rapidly in various infrastructures:
Having a single container image makes it easy for the workload to be rapidly deployed and moved from host to host, between development and production environments, and to other computing facilities easily. The container allows the end user to select the appropriate environment such as a public cloud, a private cloud, or an on-premise server.
Accessibility: Bundle tools such as SSH into the container for easy access:
The container is setup to provide easy access via tools such as VNC for remote desktop sharing. In addition, containers running on computing nodes enable both end-users and administrators to have a consistent implementation regardless of the underlying compute environment.
Usability: Provide familiar user interfaces and user tools with the application:
The container has only the required components to run the application. By eliminating other tools and middleware, the work environment is simplified and the usability is improved. The ability to provide a full featured desktop increases usability (especially for pre and post processing steps) and reduces training needs.
Security: We understand that engineers need to know their data is secure:
Engineers care about the safety of their designs. With HPC containers you run in a private compute environment. We enable encryption for data transfers, remote access, and data storage. Your cloud resources are dedicated to you, and they are not shared. This way, potential security threats are completely eliminated. And when your processing is finished and you have saved the results, your container environment is deleted. We only use professionally managed cloud infrastructures, with strong physical security controls including biometric entry authentication and armed guards. You have fine grained access control which gives you the flexibility to define your security requirements. Your IT team tells us what firewall rules and authentication methods they need. We implement them. Done.
Why are HPC software containers becoming more and more popular? (from high to low priority)
Together with recent advances in application software and HPC hardware technologies, the advent of lightweight pervasive, packageable, portable, scalable, interactive, easy to access and use software containers running seamlessly on workstations, servers, and any cloud, is bringing us ever closer to what Intel – in 2012– called the democratization of high performance technical computing. You can download the full article and the UberCloud Compendium of 21 HPC container-based engineering case studies HERE.