Vorlesungen, Diskussionen und Übungen. Am letzten Tag findet mit "Effective Multicore" eine interaktive Sitzung statt, in der wir die Themen aus einem anderen Blickwinkel wieder aufgreifen. Kursmaterial: USB-Stick mit VM und Übungen; Buch mit Kursnotizen, Handouts, Übungen, Lösungen und Spickzetteln.
Gut funktionierender Multithreading-Code ist für viele immer noch ein Rätsel. In diesem 3-tägigen Kurs lernen die Teilnehmer, wie sie die Leistung moderner Multicore-Prozessoren nutzen können, indem sie die Grundlagen der Parallelität, die Paradigmen der parallelen Programmierung, die Anwendung paralleler Muster und die Vermeidung häufiger Fallstricke verstehen.
Diese Schulung ist sowohl für offene Einschreibungen als auch für firmeninterne Schulungen verfügbar. Die Schulung Multicore-Programmierung in C++ kann an Ihre Situation und Ihre speziellen Bedürfnisse angepasst werden.
Objektiv
Nach erfolgreichem Abschluss des Kurses versteht der Teilnehmer genau, wie Parallelität in modernen CPUs implementiert wird. Der Teilnehmer kann erklären, wie modernes C++ und unterstützende Bibliotheken dazu beitragen, die Komplexität unter Kontrolle zu halten. Der Teilnehmer weiß Bescheid über:
- Hardware-Architektur und moderne CPU-Engpässe
- C++11+ Parallelität und Gleichzeitigkeit
- Reduzieren Sie die Komplexität von Sperren und erleiden Sie weniger Leistungseinbußen aufgrund von Sperren
- Berkeley's parallele Muster-Bibliothek
- OpenMP und andere Programmierbibliotheken
- Geschwindigkeitssteigerung durch Parallelität
Zielgruppe
Dieser Kurs richtet sich an C++ Software-Ingenieure, Designer und Architekten, die fehlerfreien, schnellen Code entwickeln müssen, der die zugrunde liegende Hardware gut ausnutzt.
Voraussetzungen:
- Erfahrung in der Softwareentwicklung
- Grundlegendes Verständnis von Betriebssystemen
- Angemessenes Verständnis von modernem C++
Programm
Tag 1:
- Moderne Multicore-Computerarchitektur und Gleichzeitigkeit;
- Threading-Erweiterungen in C++11 und neueren Versionen;
- Sperren falsch und richtig gemacht;
- RAII und libguarded.
Tag 2:
- OpenMP;
- Aufgaben- und Datenparallelität;
- Wie Sie Gleichzeitigkeitsgelegenheiten erkennen;
- Die parallele Mustersprache von Berkeley;
- Wie Sie Parallelitätsblocker und Datenverfälscher erkennen und beseitigen können;
- Anti-Parallelitäts-Muster.
Tag 3:
- Vektorisierung verwenden;
- Threadsicheres API-Design;
- Threading-Bibliotheken;
- "Effektiver Multicore".
Jeden Tag gibt es Vorlesungen und mindestens zwei größere unterstützende Übungen.
Methoden
Zertifizierung
Die Teilnehmer erhalten ein Zertifikat des High Tech Institute für die Teilnahme an dieser Schulung.
Kurs-Bewertungen