The Goal and Motivation
The goal of BEE is to create a unified software stack to containerize HPC applications. BEE utilizes both virtual machines (VMs) and software containers to create a workflow system that establishes a uniform build and execution environment beyond the capabilities of current systems. In this environment, applications will run reliably and repeatably across heterogeneous hardware and software. Containers define the runtime that isolates all software dependency from the machine operating system. Workflows may contain multiple containers that run different operating systems, different software, and even different versions of the same software. Containers are placed in open-source virtual machine (KVM) and emulators (QEMU) so that workflows run on any machine entirely in user-space.
– Put complex HPC codes/workflows in a software container
– Run the same container on multiple platforms
– Without rebuilding—containers are composable binaries
– Without system administration—no dependencies needs to be installed
– Without root/privileged code—using virtual machines
Practice at LANL
BEE-atified Applications w/ or w/o Paraview-Catalyst
– MPAS-Ocean : Ocean system simulation.
– H3D: Export controlled Plasma Simulation.
– VPIC : Vector Particle in Cell simulation.
– CLAMR: LANL mini app.
– VM+Containers is better
– VMs widely available, even on legacy systems- VMs are more secure (than unprivileged containers or OS container runtimes)
– VMs create future management opportunities (Checkpointing/restoration/migration)
Single Node Performance
Single Node Threaded Performance (Raw & VM+Docker very similar!)
Correct VM configuration matters
BEE on HPC and Cloud
Released BEE Resources
We are planning to release the BEE launcher (including aws-launcher, darwin-launcher and ic-launcher), BEE-vm-builder, BEE-monitor and BEE-portor in FY17.