MYTHOS VIELKERN-BETRIEBSSYSTEME FÜR HPC

Ähnliche Dokumente
Seminar: Multi-Core Architectures and Programming

Beispielvortrag: HPCG auf Intel Haswell-EP

Aktuelle RTOS-Entwicklungen aus der Forschung

Rückschlüsse durch Host- Performance-Daten auf das Datenbankverhalten. DOAG Regio Karlsruhe 13. Juni 2013

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Computergrundlagen Moderne Rechnerarchitekturen

Multi- und Many-Core

Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum

Computergrundlagen Moderne Rechnerarchitekturen

Übung zu Betriebssystemtechnik

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

Cell and Larrabee Microarchitecture

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Analyse von Synchronisation

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Mehrprozessorarchitekturen

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Foliensatz. Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

11.1 Inhalte der Vorlesung Was ist ein Betriebssystem Zwei Sichten. Was ist ein Betriebssystem Zwei Sichten (Forts.) Abstraktionen

Linux mit harter Echtzeit durch Preempt-RT zum Messen und Steuern

Embedded OS für ARM Cortex Microcontroller

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

OpenCL Implementierung von OpenCV Funktionen

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

Linux-Kernel- Programmierung

Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

High Performance Embedded Processors

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Windows CE. Process Control and Robotics. Fabian Garagnon

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

Inhaltsverzeichnis XII

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

Technische Informatik II

Homogene Multi-Core-Prozessor-Architekturen

Teil 3: Konzepte von Betriebssystemen

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

Evaluierung der QoS-Unterstützung in TAO/ACE. Großer Beleg - Zwischenstand. Ansgar Konermann 16. Juli 2002

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Betriebssysteme und Microkern

Multi-threaded Programming with Cilk

Client - Server Architektur

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Architektur paralleler Plattformen

Konzepte von Betriebssystem-Komponenten: Effiziente Manycore-Systeme

Kosten der Abschirmung von Code und Daten

Am Beispiel der SHARC-DSPs Jan Kiene

Javakurs für Fortgeschrittene

Rechnerorganisation. 1. Juni 201 KC Posch

Grundkurs Betriebssysteme

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Intel Xeon Phi. Praktikum Parallele Rechnerarchitekturen May 13,

Digital UNIX. André Kloth, Sven Widmer. 13. Juli Hasso-Plattner-Institut Universität Potsdam

Beispiele von Branch Delay Slot Schedules

Konzepte von Betriebssystem-Komponenten

Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor

Thread basierte partielle Rekonfiguration von SoC Systemen. Frank Opitz INF-M1 Anwendung 1 - Wintersemester 2009/

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Slothful Linux: An Efficient Hybrid Real-Time System by Hardware-Based Task Dispatching. Rainer Müller

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

Grundkurs Betriebssysteme

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen

Vorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung

Entwurf und Implementierung einer Prozessinterkommunikation für Multi-Core CPUs Workshop Echtzeit 2013

Device Treiber für FlexPath- Netzwerkprozessoren

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen

Betriebssysteme KU - Bewertung A2 - WS 15/16

Klausur Betriebssysteme

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg

Konzepte von Betriebssystem- Komponenten:

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

CLAIX Vorstellung und Technik Christian Terboven

Grundlagen Rechnerarchitektur und Betriebssysteme

Embedded- und RT-Betriebssysteme

Tutorium Softwaretechnik I

Hardware und Gerätetreiber

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER

Prozessor- und Rechnerarchitekturen (Master)

Jürg Gutknecht, SI und ETH Zürich, April 2015

Threads Einführung. Zustände von Threads

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Transkript:

15. März 2016 MYTHOS VIELKERN-BETRIEBSSYSTEME FÜR HPC Stefan Wesner, Lutz Schubert, Vladimir Nikolov, Jörg Nolte, Randolf Rotta, Mai Krüger, Robert Kuban, uvm...

MANY THREADS OPERATING SYSTEM Ziel dynamische HPC Anwendungen auf Vielkern-Prozessoren Fokus schnelle Thread-Verwaltung Durchsatz statt Echtzeit, Overheads reduzieren BMBF Projekt 1 von Uni Ulm, mit Uni Siegen, BTU Cottbus, Alcatel-Lucent Deutschland AG, HLRS Stuttgart 1 Fördernummer BMBF 01IH13003 2

AGENDA 1. Wozu Vielkern-Betriebssysteme? Herausforderungen - Vielkern-Prozessoren Anforderungen - Zwei Szenarien Konzequenzen - Entwurfsziele 2. Zwischenergebnisse Die Kunst der Weglassens Wartefreie Aufgabenverwaltung Pragmatische Kompromisse 3. Zusammenfassung 3

OUTLINE 1. Wozu Vielkern-Betriebssysteme? Herausforderungen - Vielkern-Prozessoren Anforderungen - Zwei Szenarien Konzequenzen - Entwurfsziele 2. Zwischenergebnisse Die Kunst der Weglassens Wartefreie Aufgabenverwaltung Pragmatische Kompromisse 3. Zusammenfassung 1 Wozu Vielkern-Betriebssysteme? 4

MULTI- VERSUS MANY-CORE double prec. FPUs 1152 960 480 256 216 80 32 16 Haswell TileGx72 Cyclops64 Sparc T5 Intel KNL Intel KNC 16 72 128160 240288 768960 max. concurrent control flows Kepler GK110 Fermi GF104 max. paralleler Durchsatz in geg. Power- & Platz-Budget Energie- & Platzeffizienz statt Single-Thread Performance Durchsatz nur durch Aufgaben- und Daten-Parallelität 1 Wozu Vielkern-Betriebssysteme? 5

MYTHOS ZIELARCHITEKTUR Intel Xeon Phi Knights Corner XeonPhi XeonPhi XeonPhi Card Processor Processor Processor Memory Memory DMA DMA Memory DMA PCIe Host Processor Memory HDD, Network... 60 Kerne mit je 512bit VPU, 4 HW Threads, 1.05GHz In-Order, keine Sprungvorhersage, 2 Takte Instruction Decoder 8GB kohärenter gemeinsamer Speicher, Streuung über Verzeichnisse 150ns 1000+ns Latenz, Flaschenhals für Synchronisation PCIe2.0 Karten: eigene BS Kernel einfach startbar, Kommunikation mit Host über nicht-kohärenten gem. Speicher Ideale Worst-Case Plattform!? 1 Wozu Vielkern-Betriebssysteme? 6

SZENARIO I: HPC SIMULATIONEN Moleküldynamik (HLRS), Strömungen und Elektrodynamik (Uni Siegen) eine Anwendung besitzt alle Kerne und Speicher Aufgabenverwaltung und Kommunikation auf Anwendungsebene dynamische Speicherverwaltung Anforderungen effizientes Warten statt Polling (min Energie, min Contention) Semaphore/Futex wait, signal viele Threads manipulieren gemeinsamen Adressraum (IO,PGAS,DSM) mmap, mremap, mprotect 1 Wozu Vielkern-Betriebssysteme? 7

SZENARIO II: COMPUTE CLOUD Verteilte Medienverarbeitung (Alcatel/CenoLabs) dynamisch konfigurierter Datenfluss-Graph Knoten aktiviert durch Input Daten, laufen in Isolation+Zeitschranke Cloud Manager bewegt Daten, migriert Knoten für min. Energie Anforderungen viele Threads mit eigenem Adressraum erzeugen und aktivieren create, destroy, activate mit Zeitschranke Manager manipuliert fremde Adressräume, z.b. zero-copy comm mmap, mremap, mprotect auf Kind-Threads Weiterleiten der Systemaufrufe, Exceptions etc. an Manager event queue 1 Wozu Vielkern-Betriebssysteme? 8

MYTHOS DESIGN-ZIELE 1. Overheads reduzieren durch Weglassen: Policies vereinfachen und auslagern z.b. kein Demand-Paging, kein Swapping, nur FIFO Scheduling 2. BS-Aufgaben parallelisieren: Aufräumaufgaben über freie Kerne verteilen z.b. Rahmen freigeben und nullen 3. Wartezeiten sinnvoll füllen: Asynchrone BS-Aufgaben und Kommunikation z.b. Active Messages, Delegation Queues, Continuation Passing 4. Kommunikationskosten reduzieren: kleine Aufgaben verschicken statt viele Daten bewegen lokal gemeinsame Caches ausnutzen 1 Wozu Vielkern-Betriebssysteme? 9

OUTLINE 1. Wozu Vielkern-Betriebssysteme? Herausforderungen - Vielkern-Prozessoren Anforderungen - Zwei Szenarien Konzequenzen - Entwurfsziele 2. Zwischenergebnisse Die Kunst der Weglassens Wartefreie Aufgabenverwaltung Pragmatische Kompromisse 3. Zusammenfassung 2 Zwischenergebnisse 10

MEHRSCHICHTIGE ARCHITEKTUR Lokale und Verteilte Dienste separieren, Steuerung von Außen 2 Zwischenergebnisse 11

DIE KUNST DER WEGLASSENS mcconf: Kernel maßschneidern für Platform und Anwendung Komponenten Vielfalt durch Laufzeit-Komposition einfaches Replizieren & Platzieren auf Kerne Module Effizienz durch Compile-Time-Komposition Abhängigkeitsverwaltung mit #include, Varianten filtern anhand Prozessor, Umgebung... 2 Zwischenergebnisse 12

FORK-JOIN BENCHMARK Einen Thread erzeugen und aktivieren; Freigeben kostet noch... 500 mythos mythos nodel linux 400 300 usec 200 100 0 0 50 100 150 200 250 2 Zwischenergebnisse hardware thread 13

WARTEFREIE AUFGABENVERWALTUNG Asynchrones Ausführungsmodell mit lokaler Balanzierung Ereignisse, Aktive Nachrichten, Kritische Abschnitte, Interrupt-Epiloge, Continuations... Tasklets basierend auf C++11 Lambdas pro HW-Thread: Kernel-, User-, Idle-Warteschlangen Thread-Gruppen mit Work Sharing/Stealing, Delegation Locks regeln lokale Nebenläufigkeit threads[40]->send( [](){ mlog::kernel.info("hello"); } ); Mutex* m; m->protect( [=](){ process_event(args...);... } ); 2 Zwischenergebnisse 14

BROADCAST BENCHMARK Latenz und Durchsatz auf dem XeonPhi median latency [µs] 30 20 10 0 arity=1 arity=2 arity=3 50 100 150 200 50 100 150 200 50 100 150 200 number of hardware threads BT DR SDR median events per µs 0.5 0.4 0.3 0.2 0.1 0.0 arity=1 arity=2 arity=3 0 25 50 75 100 1250 25 50 75 100 1250 25 50 75 100 125 number of pipelined broadcasts BT DR SDR 2 Zwischenergebnisse 15

SYNCHRONISATIONSLATENZ Geschickte Platzierung der Synchronisationsvariablen type add0 optimal read optimal read worst 1500 Cacheline Ping Pong [ns] 1000 500 0 0 10 20 30 2 Zwischenergebnisse Distance [cores on the ring] 16

PRAGMATISCHE KOMPROMISSE... keine echten Prioritäten, keine Flusskontrolle zentrale Dienste beginnen neue Aufgaben statt alte abzuschließen doch viele Dienste und Policies im Kernel implementiert duplizierte Infrastruktur kernel- vs. user mode 8GiB/240 = 34MiB pro HW-Thread kein reiner Multikernel, gemeinsamer Speicherpool aktives Work-Stealing stört andere Threads Einsichten statische Resourcenplanung wie in Echtzeitsystemen Microkernel mit optionalen kernel-mode Tasks wartefreie Datenstrukturen für Speicherpools 2 Zwischenergebnisse 17

OUTLINE 1. Wozu Vielkern-Betriebssysteme? Herausforderungen - Vielkern-Prozessoren Anforderungen - Zwei Szenarien Konzequenzen - Entwurfsziele 2. Zwischenergebnisse Die Kunst der Weglassens Wartefreie Aufgabenverwaltung Pragmatische Kompromisse 3. Zusammenfassung 3 Zusammenfassung 18

ZUSAMMENFASSUNG Vielkern-Prozessoren steigern die Herausforderungen MyThOS als Experiment-Plattform für parallele BS Zeigt Potentiale für dynamische Anwendungen 3 Zusammenfassung 19

ZUSAMMENFASSUNG Vielkern-Prozessoren steigern die Herausforderungen MyThOS als Experiment-Plattform für parallele BS Zeigt Potentiale für dynamische Anwendungen Vielen Dank für Ihre Fragen! 3 Zusammenfassung 19