Analyse des performances

Pourquoi, lors de mesures de performances sur un système multicœur ou NUMA, fixe-t-on parfois les threads sur des cœurs spécifiques (réglage de l'affinité) ?

  1. ALorsque l'OS déplace les threads entre cœurs, le contenu des caches est perdu ou une mémoire distante est utilisée, ce qui disperse les résultats
  2. BLa fixation double le nombre de cœurs
  3. CSans fixation, le programme ne peut pas s'exécuter
Afficher la réponse et l'explication

Réponse : A. Lorsque l'OS déplace les threads entre cœurs, le contenu des caches est perdu ou une mémoire distante est utilisée, ce qui disperse les résultats

Pour répartir la charge, l'OS peut déplacer un thread vers un autre cœur. Le cache du cœur de destination ne contient pas les données nécessaires et, sur un système NUMA, le thread peut se retrouver sur un socket éloigné de la mémoire où résident ses données. Le temps d'un même programme varie alors selon le cœur utilisé. Fixer les threads sur des cœurs et harmoniser l'emplacement de la mémoire améliore la reproductibilité des mesures.

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

Autres questions sur Analyse des performances

  1. Lors de l'analyse des performances d'un programme utilisant un GPU, quel est le premier point le plus approprié à vérifier ?
  2. Lors du choix de serveurs pour un centre de données, quel élément NE fait PAS partie des critères à considérer au-delà des performances de pointe ?
  3. Pour évaluer l'affirmation « la nouvelle méthode est 100 fois plus rapide », quel point est le plus approprié à vérifier ?
  4. Pourquoi indique-t-on souvent les performances d'un SSD non seulement par la bande passante en lecture séquentielle (MB/s), mais aussi par les IOPS (nombre d'entrées-sorties par seconde) en lecture aléatoire de 4 KB ?
  5. En mesurant le temps par élément d'un traitement qui lit un tableau de façon répétée, tout en augmentant progressivement la taille du tableau, le temps augmente par paliers à certaines tailles. Pourquoi ?

Comparatifs sur ce thème