Multicœur et synchronisation

Quelle comparaison entre le « verrouillage à gros grain », qui protège toute une grande structure de données par un seul verrou, et le « verrouillage à grain fin », qui protège chaque partie par un verrou distinct, est correcte ?

  1. ALe verrouillage à gros grain offre toujours plus de parallélisme
  2. BLe grain fin réduit le nombre de verrous
  3. CLe grain fin permet à plusieurs threads d’utiliser simultanément des parties différentes et offre plus de parallélisme, mais complique la conception et accroît le risque d’interblocage
Afficher la réponse et l'explication

Réponse : C. Le grain fin permet à plusieurs threads d’utiliser simultanément des parties différentes et offre plus de parallélisme, mais complique la conception et accroît le risque d’interblocage

Le verrouillage à gros grain est simple et peu sujet aux erreurs, mais les threads utilisant des parties sans rapport s’attendent aussi mutuellement, si bien que l’ajout de cœurs accélère peu. Avec un grain fin, par exemple un verrou par compartiment de table de hachage, des parties différentes peuvent être manipulées simultanément. En revanche, les situations de prise de plusieurs verrous se multiplient, et la gestion de l’ordre de prise ainsi que le coût des verrous eux-mêmes deviennent problématiques.

S'entraîner sur ce thème Retour au thème

Autres questions sur Multicœur et synchronisation

  1. Quelle propriété caractérise un algorithme sans verrou (lock-free) ?
  2. Quelle description de la section critique est correcte ?
  3. Quelle description de la synchronisation par barrière utilisée dans les programmes parallèles est correcte ?
  4. 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 ?
  5. Quelle description d’un système NUMA (accès mémoire non uniforme) est correcte ?

Comparatifs sur ce thème