Palacios and Kitten: New High Performance Operating Systems For Scalable Virtualized and Native Supercomputing John R. Lange and Kevin Pedretti Trammell Hudson, Peter Dinda, Zheng Cui, Lei Xia, Patrick Bridges, Andy Gocke, Steven Jaconette, Mike Levenhagen and Ron Brightwell Northwestern University Sandia National Labs University of New Mexico Summary • Palacios – First VMM for scalable HPC – Open Source and available • Kitten – First open source Lightweight Kernel for High Performance Computing (HPC) – Open Source and available • Proved HPC virtualization is effective at scale – Performance within 5% of native – Largest scale study of virtualization 2 What is a virtual machine? • Run an OS as an application – Run multiple OS environments on a single machine – Start, stop, pause – Can easily move entire OS environments Page Tables CPU state Hardware Application Application Application Guest Application OS VMM Hardware Hardware Guest OS Page Tables CPU state Hardware Guest OS Guest OS Host OS/VMM Emulate Hardware 3 What are VMMs currently used for? • • • • • • • Server Consolidation Fault tolerance Legacy application support Debugging Isolation Virtual appliances Failover and disaster recovery $7.58 Billion $16.70 Billion • Market size – 2007: $5.5 billion – 2011: $11.7 billion 4 High Performance Computing (HPC) • Large scale simulations to solve Big Problems 5 Virtualization in HPC • Fault tolerance – RedStorm MTBI target: 50 hours – RedStorm Min TTR: 30 minutes – 1 hour A.B. Nagarajan, F. Mueller, C. Engelmann, and S.L. Scott Proactive Fault Tolerance for HPC with Xen Virtualization ICS 2007 • Broader usage – Allow applications to select best OS • Only if it doesn’t degrade performance… – Tightly coupled parallel applications – Very large scale 6 Palacios VMM • OS-independent embeddable virtual machine monitor • Developed at Northwestern and University of New Mexico • Open source and freely available – Downloaded over 1000 times as of July 2009 • Users: – Kitten: Lightweight supercomputing OS from Sandia National Labs – MINIX 3 – Modified Linux versions • Successfully used on supercomputers, clusters (Infiniband and Ethernet), and servers http://www.v3vee.org/palacios 7 Palacios as an HPC VMM • Minimalist interface – Suitable for an LWK • Compile and runtime configurability – Create a VMM tailored to specific environments • Low noise • Contiguous memory pre-allocation • Passthrough resources and resource partitioning 8 Lightweight Kernel Timeline 1991 – Sandia/UNM OS (SUNMOS), nCube-2 1991 – Linux 0.02 1993 – SUNMOS ported to Intel Paragon (1800 nodes) 1993 – SUNMOS experience used to design Puma First implementation of Portals communication architecture 1994 – Linux 1.0 1995 – Puma ported to ASCI Red (4700 nodes) Renamed Cougar, productized by Intel 1997 – Stripped down Linux used on Cplant (2000 nodes) Difficult to port Puma to COTS Alpha server Included Portals API 2002 – Cougar ported to ASC Red Storm (13000 nodes) Renamed Catamount, productized by Cray Host and NIC-based Portals implementations 2004 – IBM develops LWK (CNK) for BG/L/P (106000 nodes) 2005 – IBM & ETI develop LWK (C64) for Cyclops64 (160 cores/die) Kitten: An Open Source LWK • Better match for user expectations – Provides mostly Linux-compatible user environment • Including threading – Supports unmodified compiler toolchains and ELF executables • Better match vendor expectations – Modern code-base with familiar Linux-like organization • Drop-in compatible with Linux – Infiniband support • End-goal is deployment on future capability system http://software.sandia.gov/trac/kitten 10 Complexity • Scalable HPC performance requires minimal overhead Component Lines of code Kitten ~33,000 Palacios ~28,000 Total ~61,000 Xen: 580k lines (50k – 80k core) KVM: 50k-60k lines + Kernel dependencies (??) + User level devices (180k) 11 HPC Performance Evaluation • Virtualization is very useful for HPC, but… Only if it doesn’t hurt performance • Virtualized RedStorm with Palacios – Evaluated with Sandia’s system evaluation benchmarks 17th fastest supercomputer Cray XT3 38208 cores ~3500 sq ft 2.5 MegaWatts $90 million 12 Virtualized performance (Catamount) Within 5% Scalable 13 HPCCG: conjugant gradient solver Comparison of Operating Systems Shadow Paging Compute Node Linux Catamount 14 HPCCG: conjugant gradient solver Comparison of Operating Systems Compute Node Linux Catamount 15 CTH: multi-material, large deformation, strong shockwave simulation Large Scale Study • Evaluation on full RedStorm system – 12 hours of dedicated system time on full machine – Largest virtualization performance scaling study to date • Measured performance at exponentially increasing scales – Up to 4096 nodes • Publicity – New York Times – Slashdot – HPCWire – Communications of the ACM – PC World 16 Scalability at Large Scale (Catamount) Within 3% Scalable 17 CTH: multi-material, large deformation, strong shockwave simulation Commodity Systems • Kitten and Palacios fully support commodity systems – Infiniband clusters – Ethernet servers – Generic PC hardware • Palacios embeddable in many OSes – – – – Kitten MINIX 3 Linux GeekOS 18 Infiniband on Commodity Linux (Linux guest on IB cluster) 19 2 node Infiniband Ping Pong bandwidth measurement Summary • Virtualization can scale – Near native performance for optimized VMM/guest (within 5%) • VMM needs to know about guest internals – Should modify behavior for each guest environment – Example: Paging method to use depends on guest • Black Box inference is not desirable in HPC environment – Unacceptable performance overhead – Convergence time – Mistakes have large consequences • Need guest cooperation – Guest and VMM relationship should be symbiotic – Paper forthcoming (4096 scaling results and techniques) 20 Future Work • Continue exploring virtualization in HPC – NU, UNM and SNL collaboration – Granted 5 million hours on Jaguar • Current fastest supercomputer in the world Oak Ridge National Labs Cray XT5 224,256 cores 4352 sq. ft 6.95 MegaWatts $104 million 21 Conclusion • Palacios and Kitten – Two open source tools for HPC – Proved virtualization of HPC systems can scale • Contributions Welcome!! • http://www.v3vee.org • http://software.sandia.gov/trac/kitten 22