Lezingen, discussies en oefeningen. Op de laatste dag is "Effective Multicore" een interactieve sessie waarin we de onderwerpen vanuit een andere invalshoek bekijken. Cursusmateriaal: USB-stick met VM en oefeningen; boek met cursusnotities, handouts, oefeningen, oplossingen en spiekbriefjes.
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, 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 training Multicore programmeren in C++ worden aangepast aan uw situatie en speciale wensen.
Doelstelling
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
- C++11+ parallellisme en concurrency
- Minder complex vergrendelen en minder prestatieverlies door vergrendelen
- Berkeley's parallelle patroonbibliotheek
- OpenMP en andere programmeerbibliotheken
- Sneller worden 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 gelijktijdigheid;
- Threading-uitbreidingen in C++11 en nieuwer;
- Vergrendelen verkeerd en goed gedaan;
- RAII en libguarded.
Dag 2:
- OpenMP;
- Taak- en gegevensparallellisme;
- Hoe je kansen op gelijktijdigheid herkent;
- De parallelle patroontaal van Berkeley;
- Hoe parallellismeblokkers en gegevensvervalsers herkennen en verhelpen;
- Anti-parallellisme patronen.
Dag 3:
- Vectorisatie gebruiken;
- Threadsafe API-ontwerp;
- Threading-bibliotheken;
- "Effectieve multicore".
Elke dag heeft lezingen en minstens twee grotere ondersteunende oefeningen.
Methoden
Certificering
Deelnemers ontvangen een certificaat van het High Tech Institute voor het bijwonen van deze training.
Cursusbeoordelingen