Multicœur et synchronisation
Si 64 cœurs mettent à jour en continu et simultanément un compteur partagé unique par instruction atomique, l’ajout de cœurs n’accélère pas le traitement. Quelle en est la raison principale ?
- ALes instructions atomiques ne peuvent s’exécuter que sur un seul cœur
- BAvec beaucoup de cœurs, la valeur du compteur diminue automatiquement
- CLa ligne de cache du compteur passe de cœur en cœur, et les mises à jour ne progressent qu’une à la fois
Afficher la réponse et l'explication
Réponse : C. La ligne de cache du compteur passe de cœur en cœur, et les mises à jour ne progressent qu’une à la fois
Une mise à jour atomique exige que le cœur détienne la ligne à l’état M ; la ligne migre donc vers un autre cœur à chaque mise à jour. La migration coûte le temps d’une communication entre cœurs, et un seul cœur peut mettre à jour à la fois ; ajouter des cœurs ne fait qu’allonger l’attente. Il faut réduire les écritures partagées, par exemple en faisant compter chaque cœur dans son propre emplacement puis en totalisant à la fin.
Continuer : 9 autres questions sur Multicœur et synchronisation