Multicœur et synchronisation
Parmi les causes suivantes expliquant que les performances d’un programme parallèle progressent moins que prévu avec l’ajout de cœurs, laquelle ne s’applique pas ?
- ALes synchronisations entre threads, comme l’attente de verrous, sont nombreuses
- BLa quantité de travail par thread est très déséquilibrée
- CChaque thread ne lit et n’écrit que ses propres données dédiées
Afficher la réponse et l'explication
Réponse : C. Chaque thread ne lit et n’écrit que ses propres données dédiées
Les principales causes qui limitent le gain de la parallélisation sont la partie non parallélisable (loi d’Amdahl), les attentes dues aux verrous et barrières, les allers-retours de lignes de cache dus aux données partagées et au faux partage, le déséquilibre de charge et l’insuffisance de bande passante mémoire. Si chaque thread ne manipule que ses propres données, il n’y a ni communication ni attente avec les autres threads, et l’on se rapproche d’une parallélisation idéale.
Continuer : 9 autres questions sur Multicœur et synchronisation