Beitragstitel: Der Wal im Windkanal - Container für Scientific Computing Full Description: Docker und Konsorten haben innerhalb sehr kurzer Zeit ihren Weg in die Herzen der Admins gefunden, wenn es darum geht, Anwendungen inklusive ihrer Abhängigkeiten in Linux-Container verpackt und voneinander separiert zur Verfügung zu stellen. Auch im Bereich des High Performance Computings (HPC) und allgemein dem Feld des wissenschaftlichen Berechnens bietet sich der Einsatz von Docker durch geringe Leistungsverluste als interessante Alternative zur Simulation direkt auf der Hardware an. So bietet der Container-Ansatz eine wesentlich flexiblere Lösung, wenn es darum geht, Software und speziell komplexe Workflows zu paketieren, zu verteilen und einzusetzen. Dadurch erfreuen sich Container beispielsweise in der Genome Sequenzierung, zur Abbildung und Reproduzierbarkeit der dortigen Arbeitsabläufe, großer Beliebtheit. Generell lässt sich diese Stärke von Containern zur konfliktfreien Bereitstellung und zum Einsatz von "Legacy Anwendungen" auf aktuellen Distributionen oder zum problemlosen Test von neuen Versionen auf konservativen Distributionsständen auch im "normalen IT-Alltag" einsetzen, wie Beispiele aus der Praxis zeigen. Auch wenn sich diese Szenarien nach wie vor "klassisch" mit virtuellen Maschinen abbilden lassen, bieten Container in leistungskritischen Bereichen teils deutliche Geschwindigkeitsvorteile, wie beispielsweise das "IBM Docker Paper" [1] gezeigt hat. So zeichnet sich Virtualisierung auf Betriebssystemebene mit Containern prinzipbedingt durch drastisch kürzere "Bootzeiten" und geringeren Virtualisierungsoverhead aus, als bei der weitverbreiteten Hypervisor-basierten Virtualisierung der Fall ist. Ein Umfeld das von diesen Stärken speziell profitieren kann ist der Bereich des High Performance Computings. Dort ist der Einsatz von Virtualisierung in der Regel "verpöhnt", da je nach Anwendungsfall der Virtualisierungsverlust zu hoch ist, so dass Anwendungen direkt "bare-metal" bereitgestellt werden - mit allen Herausforderungen die sich so beim parallelen Betrieb einer breiten Palette von Anwendungen mit oft widersprüchlichen Anforderungen ergeben. Welchen Nutzen Container im HPC-Umfeld bieten können stellt beispielsweise das Paper "Container-Based Virtualization for HPC" [2] dar, das zum Schluss kommt, dass Container in einem solchen Umfeld durchaus eine interessante Option und Alternative zur klassischen Anwendungsbereitstellung bei geringem Performanceverlust darstellen können. Dies ist speziell für kleinere HPC-Installationen relevant, wenn ein dynamischer Einsatz von Ressourcen für mehrere Bereiche mit unterschiedlichen Anforderungen gewünscht ist. Der Vortrag gibt einen kurzen Einblick in die spannende Welt des Scientific Computings, der dortigen Anforderungen und Problemfelder und zeigt welche Vorteile und Nutzen die flexible Containerlösung auch dort bieten können - und stellt vor, warum man hier eher mit Containern als mit virtuellen Maschinen "rechnen" möchte. Da der Einsatz von Docker in der Regel nicht ohne Sicherheitsimplikationen bleibt, soll auch betrachtet werden, wie sich Docker in einem solchen Bereich "bändigen" lässt und welche Herausforderungen aktuell allgemein bei der Integration noch zu beachten sind. Hinweise und Vorwissen: Die thematisierten Punkte sind selbstverständlich nicht ausschließlich für HPC-Umgebungen relevant, sondern lassen sich praktisch auf alle Umgebungen mit komplexen Softwareanforderungen übertragen, so dass von den Zuhörern kein besonderes HPC-Vorwissen erwartet wird ;-) Dies gilt auch für das nötige Vorwissen zu Containern und speziell Docker - tiefergehende Vorkenntnisse werden nicht erwartet. Wer noch erste Schritte machen möchte kann dies unter Verwendung von [3] gerne tun. Allgemein (Linux) HPC-Interessierte seien auf den Vortrag [4] bei den letztjährigen Chemnitzer Linux-Tagen verwiesen, der eine Einführung in Linux im HPC-Umfeld gegeben hat, oder auch den Artikel [5]. Weiterführende Links, Zugriff 11.01.2016 [1] Geschwindigkeitsvergleich Docker, KVM, native Ausführung - "An Updated Performance Comparison of Virtual Machines and Linux Containers" http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf [2] Paper zum Thema - "Container-Based Virtualization for HPC" http://www.scitepress.org/DigitalLibrary/Link.aspx?doi=10.5220/0005485605430550 [3] Tutorial - Get Started with Docker for Linux https://docs.docker.com/linux/ [4] Einstiegsvortrag - "Verkehrte Welt - Linux im High Performance Computing" https://chemnitzer.linux-tage.de/2015/de/programm/beitrag/313 [5] Artikel - Linux im High Performance Computing http://www.linux-magazin.de/Online-Artikel/Linux-im-High-Performance-Computing-HPC