Preview only show first 10 pages with watermark. For full document please download

Multicore Herausforderungen An Das Software-engineering. Prof. Dr.-ing. Michael Uelschen Hochschule Osnabrück

Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

   EMBED


Share

Transcript

Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung _ Herausforderung 3: Programmierung _ Ausbildung an der Hochschule Osnabrück _ Zusammenfassung und Ausblick Prof. Dr.-Ing. Michael Uelschen 2 Herausforderungen an das Software-Engineering MOTIVATION Prof. Dr.-Ing. Michael Uelschen 3 Motivation _ Warum muss ich mich damit befassen? _ Probleme: Wärmeentwicklung, Signallaufzeiten _ Seit 2005: Zuwachs an Rechenleistung durch parallele Kerne anstatt höherer Frequenz Prof. Dr.-Ing. Michael Uelschen 4 Motivation _ Betrifft Multicore jede(n)? Embedded Systems Super Computer Mainframe Server Workstation PC Head Unit Cray X-MP Multiprocessor 1982 IBM s370/158 Multiprocessor 1972 IBM POWER4 Multicore 2001 AMD Opteron Multicore 2005 Intel Core Duo Multicore 2006 Renesas Multicore 2007 ECU Prof. Dr.-Ing. Michael Uelschen 5 Motivation _ Sind die Aufgabenstellungen nicht schon vor 30 Jahren in der Informatik gelöst worden? _ Ja, die numerischen. Das ist aber nur eine sehr kleine Teilmenge Prof. Dr.-Ing. Michael Uelschen 6 Motivation _ Ich habe einen Quad-Core PC. Läuft doch! _ Probleme gibt sich mit der Skalierung, mit mehr Kernen, z.b. SCC mit 48 Kernen _ Peak-Performance für sequentielle Programme bleibt konstant Prof. Dr.-Ing. Michael Uelschen 7 Motivation _ Mein Programm ist multi-threaded! Reicht das nicht? _ Hintergrund-Threads im Window-System Thread 1: 1% Thread 2:99% Frage der Partitionierung wichtig! _ Eingebettete Systeme Prioritätengesteuertes Scheduling. Echtzeit? Prof. Dr.-Ing. Michael Uelschen 8 Herausforderungen an das Software-Engineering HERAUSFORDERUNG 1: HARDWARE Prof. Dr.-Ing. Michael Uelschen 9 Herausforderung 1 _ Softwerker müssen sich wieder mehr mit der Hardware auseinandersetzen (Hinweis: bei Embedded schon immer der Fall gewesen). _ Beispiel 1: GPGPU * -Systeme (Many-Core) _ Beispiel 2: Cache-Kohärenz: False Sharing * General Purpose on Graphics Processing Unit Prof. Dr.-Ing. Michael Uelschen 10 Single (SD) Multiple (MD) Data Klassifikation von Flynn GPGPU NVIDIA Fermi Multicore Core i7 Singlecore Pentium Single (SI) Multiple (MI) Instruction Prof. Dr.-Ing. Michael Uelschen 11 GPGPU-Systeme _ Moderne GPU arbeitet nach dem SIMD- Prinzip und lässt sich frei programmieren. _ SIMT-Erweiterung, so dass unterschiedliche Kontrollflüsse möglich werden (Single Instruction Multiple Threads). _ Moderne Grafikkarten haben hohe Leitung NVIDIA GTX290 ca. 1 TFLOP (nominell). Entspricht dem schnellsten Rechner von Geringer Preis: Prof. Dr.-Ing. Michael Uelschen 12 SI Multiple Threads Multicore 0 int sign(unsigned int i, arr[i] signed int arr[]) { 1 signed result=0; Thread T0 T1 T2 T3 2 if (arr[i] 0) 3 result=1; 4 else if (arr[i] 0) result=-1; return result; 7 } Prof. Dr.-Ing. Michael Uelschen 13 SI Multiple Threads GPGPU 0 int sign(unsigned int i, arr[i] signed int arr[]) { 1 signed result=0; Thread T0 T1 T2 T3 2 if (arr[i] 0) 3 result=1; 4 else if (arr[i] 0) result=-1; return result; 7 } Prof. Dr.-Ing. Michael Uelschen Cache-Kohärenz Core 0 Core 1 Core 2 Core 3 L1 Instr. Cache L1 Data Cache L1 Instr. Cache L1 Data Cache L1 Instr. Cache L1 Data Cache L1 Instr. Cache L1 Data Cache Cache Coherency (Snooping Unit) Memory Bus (Frontside Bus) Memory I/O Prof. Dr.-Ing. Michael Uelschen 15 Kohärenzprotokolle _ Kohärenzprotokolle (z.b. MESI) sorgen dafür, dass gemeinsame Daten in unterschiedlichen Cache abgeglichen werden (engl. true sharing). _ Greifen 2 oder mehr Kerne auf verschiedene Daten zu, die aber in der gleichen Cachezeile liegen, wird der Cache gegenseitig invalidiert (engl. false sharing) Prof. Dr.-Ing. Michael Uelschen 16 False Sharing-Phänomen int sum[2]={0,0}; int whoami= ; 0 oder 1 for(i=0;i n;i++) sum[whoami]+= ; Kern 0 Cache Hauptspeicher Kern 1 Cache Prof. Dr.-Ing. Michael Uelschen 17 Herausforderungen an das Software-Engineering HERAUSFORDERUNG 2: SOFTWARE-PARTITIONIERUNG Prof. Dr.-Ing. Michael Uelschen 18 Herausforderung 2 _ Der Ansatz zur Partitionierung einer Anwendung auf mehrere, parallele Kerne ist abhängig vom Anwendungsfall. _ Betriebssysteme (Desktop/Server) bieten symmetrisches Multiprocessing (SMP): alle Kerne und Threads werden gleichbehandelt. _ Anwendungsfälle für technische Systeme Prof. Dr.-Ing. Michael Uelschen 19 Multicore Anwendungsfälle 1. Entwicklung neuer Funktionalitäten 2. Redundante Systeme 3. Konzentration von Funktionalitäten 4. Konvergenz von Domänen 5. Harmonisierung der Hardwarearchitektur 6. Parallele Algorithmen Prof. Dr.-Ing. Michael Uelschen 20 Asymmetrisches Multiproc. _ Für eingebettete Systeme ist ein symmetrischer Ansatz nicht erste Wahl. _ Partitionierung erfolgt auf der Basis eines asymmetrischen Multiprocessing (AMP) oder Virtualisierung. Vehicle Control Thread A0 Thread A1 Thread An OSEK-OS Infotainment/Multimedia Thread I0 Thread I1 Thread In Multicore Operating System (SMP) Core 0 Core 1 Core Prof. Dr.-Ing. Michael Uelschen 21 Herausforderungen an das Software-Engineering HERAUSFORDERUNG 3: PROGRAMMIERUNG Prof. Dr.-Ing. Michael Uelschen 22 Herausforderung 3 _ Die Implementierung von parallelen, skalierbaren Anwendungen erfordert neue Programmierparadigmen. _ Die klassischen Programmiersprachen bieten keine intrinsische Parallelität. _ 2 Möglichkeiten: 1. Programmiersprachen erweitern (Bibliotheken) 2. Neue Programmiersprachen Prof. Dr.-Ing. Michael Uelschen 23 Feine Granularität _ Eine stetig wachsende Anzahl von Kernen erfordert eine skalierbare Software- Architektur. _ Betriebssysteme-Threads oftmals sehr schwergewichtig und schwer zu skalieren. _ Einführung von Tasks als Abstraktion paralleler Aktivitäten; Abbildung von Tasks auf Threads. _ Beispiel: C++ Threading Building Blocks (Intel) Prof. Dr.-Ing. Michael Uelschen 24 Funktionale Klicken Programmierung bearbeiten _ Funktionale Programmiersprachen erfahren zzt. eine Renaissance; oftmals kombiniert mit klassischen, objektorientierten Ansätzen. _ Die Schwierigkeiten der Programmierung nebenläufiger Threads/Tasks werden dadurch vermieden, dass es keine gemeinsamen Ressourcen gibt. _ Aktuelle Bespiele: Scala, Clojure, F# Prof. Dr.-Ing. Michael Uelschen 25 Herausforderungen an das Software-Engineering AUSBILDUNG AN DER HOCHSCHULE OSNABRÜCK Prof. Dr.-Ing. Michael Uelschen 26 Informatik-Studium _ Studienangebot Fakultät I&I Technische Informatik (Bachelor) Medieninformatik (Bachelor) Verteilte und Mobile Anwendungen (Master) _ Lehrangebot (Informatik-Master) Parallele und Verteilte Algorithmen Programmierung von Multicore und GPGPU- Systemen Prof. Dr.-Ing. Michael Uelschen 27 Forschung und Lehre _ Laborbereich Technische Informatik _ Umstellung Pool-Rechner auf Quadcore-PC _ Compute-Server auf Basis NVIDIA Fermi Aktuelle GPU-Generation (4x C2050) 468 CUDA Kerne mit jeweils 4 GB RAM per GPU 515 GFLOPS DP ( 1 TFLOPS SP) per GPU XEON 2.93GHz, 24 GB RAM Prof. Dr.-Ing. Michael Uelschen 28 Herausforderungen an das Software-Engineering ZUSAMMENFASSUNG UND AUSBLICK Prof. Dr.-Ing. Michael Uelschen 29 Zusammenfassung _ Multicore betrifft jeden (früher oder später). _ Lernkurve für das Software-Engineering: (Wieder) mehr Verständnis von der Hardware. Methoden der Partitionierung. Programmierung neulernen. _ Ausnutzung der Leistungsfähigkeit von Multicore- und Manycore-Systemen sichert wirtschaftlichen Erfolg! Prof. Dr.-Ing. Michael Uelschen 30 Fragen? Herzlichen Dank für Ihre Aufmerksamkeit! Prof. Dr.-Ing. Michael Uelschen 31 Kontaktinformationen Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück Fakultät Ingenieurwissenschaften und Informatik Laborbereich Technische Informatik Barbarastr. 16, Osnabrück Postanschrift: Postfach 1940, Osnabrück Tel.: +49 (0)541 / Prof. Dr.-Ing. Michael Uelschen 32