Introduit les fondamentaux de l'architecture multiprocesseur, couvrant les serveurs post-Moore, les datacenters durables, la programmation parallèle et l'utilisation du GPU.
Couvre l'évolution et les défis des multiprocesseurs, en mettant l'accent sur l'efficacité énergétique, la programmation parallèle, la cohérence du cache et le rôle des GPU.
Couvre l'architecture multiprocesseurs, l'informatique durable, l'impact de la formation sur les modèles d'IA et les principes fondamentaux de la programmation parallèle.
Explore le parallélisme dans la programmation, en mettant l'accent sur les compromis entre la programmabilité et la performance, et introduit la programmation parallèle en mémoire partagée à l'aide d'OpenMP.
Explore la cohérence du cache dans les systèmes multiprocesseurs, en discutant des protocoles de base et des défis liés aux données partagées entre les processeurs.
Couvre l'optimisation logicielle, l'efficacité du cache, la planification parallèle et les stratégies de distribution de travail pour les programmes parallèles rapides.
Couvre les optimisations logicielles pour améliorer les performances du programme en maximisant les succès de cache et en optimisant la distribution du travail.
Explore les principes de synchronisation à l'aide de verrous et de barrières, en mettant l'accent sur des implémentations matérielles efficaces et des mécanismes de coordination tels qu'OpenMP.
Couvre les principes de la synchronisation dans le calcul parallèle, en mettant l'accent sur la synchronisation de la mémoire partagée et différentes méthodes comme les verrous et les barrières.
Explore la mémoire transactionnelle pour le contrôle de la concurrence matérielle, en discutant des mécanismes de verrouillage, des compromis de performance et des modifications matérielles.
Explore la mémoire transactionnelle et la simplification matérielle pour le contrôle de la concurrence dans les logiciels, mettant l'accent sur les avantages de la spéculation matérielle et de la concurrence déclarative.
Explore le multithreading dans l'architecture informatique, en se concentrant sur l'utilisation du pipeline et l'impact sur les performances dans diverses techniques, y compris le multithreading bloqué et à grain fin.