Lessen, discussies en oefeningen. Op de laatste dag is er een interactieve "Effective multicore"-sessie waarin we de onderwerpen vanuit een andere invalshoek bekijken. Cursusmateriaal: USB-stick met VM en oefeningen, boek met cursusnotities, handouts, oefeningen, oplossingen en cheat sheets.
De cursus wordt in het Engels verzorgd onder de titel "Multicore Programming in C++".
Goed presterende multithreaded code is voor velen nog steeds een mysterie. Deze 3-daagse cursus leert deelnemers hoe ze kunnen profiteren van de kracht van moderne multicore processoren door de ins en outs van parallellisme te begrijpen, inzicht te hebben in de parallelle programmeerparadigma's, parallelle patronen toe te passen en veelvoorkomende valkuilen te vermijden.
Deze training is zowel beschikbaar voor open inschrijving als voor in-company sessies. Voor in-company sessies kan de inhoud worden aangepast aan jouw situatie en speciale wensen.
Leerdoelen
Na succesvolle afronding van de cursus begrijpt de deelnemer grondig hoe parallellisme in moderne CPU's wordt geĆÆmplementeerd. De deelnemer kan uitleggen hoe moderne C++ en ondersteunende bibliotheken helpen om de complexiteit onder controle te houden. De deelnemer weet over:
- hardwarearchitectuur en moderne CPU-knelpunten;
- parallellisme en concurrency in C++11+;
- het verlagen van de lockingcomplexiteit en het verkleinen van het performanceverlies door locking;
- Berkeleys parallelle patroonbibliotheek;
- OpenMP en andere programmeerbibliotheken;
- versnelling door parallellisme;
Doelgroep
Deze cursus is bedoeld voor C++-software-engineers, ontwerpers en architecten die bugvrije, snel presterende code moeten ontwerpen die goed gebruik maakt van de onderliggende hardware.
Vereisten:
- Ervaring met softwareontwikkeling
- Basiskennis van besturingssystemen
- Redelijk begrip van moderne C++
Programma
Dag 1:
- Moderne multicore computerarchitectuur en concurrency
- Threading-uitbreidingen in C++11 en nieuwer
- Verkeerde en goede locking
- RAII en libguarded
Dag 2:
- OpenMP
- Taak- en dataparallellisme
- Hoe je mogelijkheden voor concurrency herkent
- De parallelle patroontaal van Berkeley
- Hoe parallellismeblokkers en datacorrupters te herkennen en verhelpen
- Anti-patronen voor parallellisme
Dag 3:
- Vectorisatie gebruiken
- Threadsafe API-ontwerp
- Threading-bibliotheken
- "Effective multicore"
Elke dag heeft lessen en minstens twee grotere ondersteunende oefeningen.
Methodiek
Certificering
Deelnemers ontvangen een certificaat van High Tech Institute voor het volgen van deze training.
Cursusbeoordelingen