Multicœur et synchronisation

Avec la politique de premier contact (first touch) couramment utilisée sur les systèmes NUMA sous Linux (la page est placée dans la mémoire du nœud où s’exécute le thread qui y écrit en premier), à quoi faut-il prendre garde ?

  1. AAvec le premier contact, les pages sont placées sur des nœuds aléatoires
  2. BL’emplacement de toutes les pages est fixé dès l’appel à malloc
  3. CSi un seul thread initialise à 0 un grand tableau, tout est placé sur un seul nœud, et les threads des autres nœuds utilisent une mémoire éloignée
Afficher la réponse et l'explication

Réponse : C. Si un seul thread initialise à 0 un grand tableau, tout est placé sur un seul nœud, et les threads des autres nœuds utilisent une mémoire éloignée

Une simple allocation par malloc n’attribue pas de pages physiques ; c’est lors du défaut de page de la première écriture que la page est placée dans la mémoire du nœud du thread concerné. Si l’initialisation est faite par un seul thread, tout le tableau se concentre sur ce nœud, et dans le calcul parallèle une grande partie de la zone dont chaque thread a la charge se trouve en mémoire éloignée. En parallélisant l’initialisation avec la même répartition que le calcul, chaque partie est placée près du thread qui en a la charge.

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

Autres questions sur Multicœur et synchronisation

  1. 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 ?
  2. Pour répartir les itérations d’une boucle entre plusieurs threads, quelle répartition convient lorsque la charge de calcul varie fortement d’une itération à l’autre ?
  3. Pour calculer avec plusieurs threads la somme de tous les éléments d’un tableau, quelle méthode convient du point de vue des performances ?
  4. Quelle est la caractéristique d’un verrou lecteurs-rédacteurs (reader-writer lock) ?
  5. Quelle est l’utilisation la plus appropriée d’un sémaphore à compteur ?

Comparatifs sur ce thème