Concevoir un simulateur de réseau thermique parallèle et scalable pour la conception de puces
Aperçu
En quoi consiste ce défi.
Vous parallélisez un solveur C++ de diffusion thermique 2D avec OpenMP, puis obtenez un certificat vérifiable.
Le scénario
Cette société de 120 personnes fournit des outils de simulation aux fondeurs de puces européens. Le simulateur thermique est utilisé en phase de pré-fabrication pour vérifier que les points chauds (hotspots) d'une puce restent dans les limites thermiques avant de lancer une production coûtant plusieurs millions d'euros. Réduire le temps de simulation de 45 à 5 minutes permettrait d'explorer 9× plus de configurations de placement de composants par jour.
Le brief
Ce que vous ferez, et ce que vous démontrerez.
Le simulateur thermique séquentiel prend 45 minutes pour une grille réaliste de 4096×4096 points, ce qui limite le nombre de configurations thermiques que les concepteurs de puces peuvent explorer avant la fabrication.
Earning criteria — what you'll demonstrate
- Appliquer le modèle roofline (modèle de performance qui met en relation l'intensité arithmétique d'un code avec la bande passante mémoire et la puissance de calcul crête) pour diagnostiquer si un noyau est limité par la mémoire ou par le calcul
- Combiner trois niveaux d'optimisation (localité de cache, vectorisation SIMD, parallélisme multicœur) sur un même code et mesurer la contribution de chacun
- Gérer les subtilités du parallélisme sur un stencil itératif : dépendances entre pas de temps, faux partage entre lignes de cache, placement des threads
- Valider numériquement un code optimisé en comparant ses résultats à une référence avec une tolérance d'erreur définie
- Construire un protocole de benchmarking complet incluant scalabilité forte (taille fixe, plus de threads) et scalabilité faible (taille proportionnelle aux threads)
Adéquation au programme
Où cela s'inscrit dans votre cursus.
Renforce les mêmes compétences que celles attendues par votre diplôme.
Cursus associés bientôt disponibles.
Compétences
Les compétences que vous démontrerez.
Chacune apparaît sur votre certificat vérifié.
- Algorithm Analysis
Apply algorithm analysis to solve real industry problems and demonstrate production-level capability.
- Performance Profiling
Apply performance profiling to solve real industry problems and demonstrate production-level capability.
- Cache Aware Optimization
Apply cache aware optimization to solve real industry problems and demonstrate production-level capability.
- Simd Vectorization
Apply simd vectorization to solve real industry problems and demonstrate production-level capability.
- Parallel Programming
Apply parallel programming to solve real industry problems and demonstrate production-level capability.
- Benchmarking Methodology
Apply benchmarking methodology to solve real industry problems and demonstrate production-level capability.
Débouchés
Les métiers auxquels ce défi vous prépare.
De vrais intitulés. De vraies passerelles de compétences. Choisissez celui qui se rapproche le plus de votre trajectoire.
Les parcours de carrière que ce défi construit
Métiers de référenceIngénieur en Systèmes Distribués
La maîtrise du parallélisme, de la synchronisation entre threads et de l'analyse de scalabilité constitue le socle technique d'un ingénieur qui conçoit des systèmes distribués à haute performance.
Ce défi renforce
- parallel-programming
- benchmarking-methodology
- performance-profiling
Architecte Cloud
Comprendre les limites de scalabilité d'un calcul (loi d'Amdahl, goulots mémoire) est essentiel pour dimensionner correctement des charges de travail intensives en calcul dans le cloud.
Ce défi renforce
- benchmarking-methodology
- cache-aware-optimization
- algorithm-analysis
Ingénieur Logiciel Embarqué
L'optimisation bas niveau (SIMD, alignement mémoire, faux partage) et la validation numérique rigoureuse sont des compétences directement transférables aux systèmes embarqués critiques.
Ce défi renforce
- simd-vectorization
- cache-aware-optimization
- performance-profiling
Architecte de Systèmes
Concevoir un logiciel en trois versions progressivement optimisées, avec une architecture modulaire séparant calcul, I/O et benchmarking, prépare aux décisions architecturales des systèmes de simulation à grande échelle.
Ce défi renforce
- algorithm-analysis
- parallel-programming
- benchmarking-methodology