Analyse des performances

Quelle est la méthode la plus appropriée pour étudier la scalabilité d'un programme parallèle ?

  1. AMesurer une seule fois avec le nombre maximal de cœurs
  2. BMesurer le temps d'exécution en augmentant le nombre de threads ou de cœurs (1, 2, 4, 8…) et tracer l'évolution de l'accélération
  3. CMesurer de nombreuses fois sur un seul cœur
Afficher la réponse et l'explication

Réponse : B. Mesurer le temps d'exécution en augmentant le nombre de threads ou de cœurs (1, 2, 4, 8…) et tracer l'évolution de l'accélération

En mesurant l'accélération pour différents nombres de cœurs, on obtient idéalement une croissance proportionnelle au nombre de cœurs ; en pratique, les parties non parallélisables, la synchronisation, les communications ou l'insuffisance de bande passante mémoire infléchissent la courbe à partir d'un certain nombre. Le point où la croissance s'arrête indique la contrainte en jeu. Pour une comparaison équitable, la référence doit être le programme séquentiel non parallélisé le plus rapide.

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

Autres questions sur Analyse des performances

  1. Une exécution parallèle sur 8 cœurs est 6 fois plus rapide que sur 1 cœur. Quelle est l'efficacité parallèle ?
  2. Comment appelle-t-on le phénomène par lequel l'introduction d'un dispositif de mesure des performances modifie le comportement même du programme mesuré ?
  3. Quelle est la démarche la plus appropriée pour améliorer les performances d'un programme ?
  4. Pour un programme traitant de grandes quantités de données, quelle amélioration a le plus de chances d'apporter la plus forte accélération ?
  5. Dans le développement logiciel, quel est l'objectif correct de l'exécution automatique de benchmarks à chaque modification, avec enregistrement des résultats ?

Comparatifs sur ce thème