Analyse des performances

Apprenez l'analyse des performances avec des QCM : temps d'exécution = nombre d'instructions × CPI × temps de cycle, calculs avec la loi d'Amdahl, pièges des benchmarks, compteurs de performance et identification des goulots d'étranglement.

S'entraîner sur 10 questionsQuestions aléatoires de ce thème · environ 5 minutes S'entraîner sur ce thèmeToutes les questions de ce thème dans un ordre aléatoire Questions à revoirNe refaire que les questions manquées lors de la dernière tentative

Analyse des performances : points clés

La vitesse d'un programme est le produit du nombre d'instructions exécutées, du nombre moyen de cycles par instruction (CPI) et du temps de cycle. Améliorer un facteur ne rend pas le programme plus rapide si un autre se dégrade. La loi d'Amdahl ajoute qu'accélérer une partie seulement d'un programme laisse le reste plafonner l'accélération globale.

Comparer correctement des performances demande du soin dans le choix des benchmarks, leur mesure et le calcul des moyennes. Ce thème couvre les moyens d'isoler les goulots d'étranglement, comme le comptage des défauts de cache et des mauvaises prédictions de branchement avec les compteurs de performance du CPU, ou le modèle roofline pour déterminer si la limite vient du calcul ou de la mémoire.

Toutes les questions sur Analyse des performances (50)

  1. Quelle est la formule de base correcte du temps d'exécution d'un programme sur un CPU ?
  2. Un programme de 1 milliard d'instructions s'exécute sur un CPU dont le CPI moyen vaut 2 et la fréquence d'horloge 2 GHz. Quel est le temps d'exécution ?
  3. Une modification de conception du CPU multiplie la fréquence d'horloge par 1,5, mais aussi le CPI par 1,2 (nombre d'instructions inchangé). Par combien la vitesse d'exécution est-elle multipliée ?
  4. Une nouvelle optimisation du compilateur réduit de 20 % le nombre d'instructions exécutées, mais augmente le CPI moyen de 10 % (fréquence inchangée). Quel est l'effet correct de cette optimisation ?
  5. Un programme comporte 50 % d'opérations entières (CPI 1), 30 % de chargements et rangements (CPI 2) et 20 % de branchements (CPI 5). Quel est le CPI moyen ?
  6. Quelle précaution est correcte lorsqu'on compare des CPU selon le « nombre d'instructions exécutées par seconde (millions d'instructions par seconde) » ?
  7. Comment calcule-t-on correctement l'« accélération » (speedup) exprimant une amélioration des performances ?
  8. Une partie représentant 50 % du traitement total est rendue 4 fois plus rapide. Quelle est l'accélération globale (loi d'Amdahl) ?
  9. On souhaite rendre l'ensemble 2 fois plus rapide en n'accélérant que la partie représentant 60 % du traitement. De quel facteur faut-il accélérer cette partie ?
  10. Quel est l'enseignement le plus approprié de la loi d'Amdahl concernant la démarche d'amélioration des performances ?
  11. Quelle idée la loi de Gustafson exprime-t-elle correctement ?
  12. Quelle est la différence correcte entre « scalabilité forte » et « scalabilité faible » dans l'évaluation du calcul parallèle ?
  13. Quelle est la démarche la plus appropriée pour évaluer les performances d'un ordinateur par des benchmarks ?
  14. Quelle description d'un benchmark standard tel que SPEC CPU est correcte ?
  15. Pourquoi utilise-t-on souvent la moyenne géométrique pour agréger les rapports de vitesse de plusieurs benchmarks par rapport à une machine de référence ?
  16. Deux programmes comportant le même nombre d'instructions sont exécutés à la suite, l'un à 1000 millions d'instructions par seconde, l'autre à 500 millions. Quelle est la vitesse moyenne globale ?
  17. En mesurant la vitesse de calcul avec la petite boucle ci-dessus, le temps reste presque nul même pour N grand. Quelle est la cause la plus probable ?
  18. Pourquoi, lors de la mesure du temps d'exécution d'un programme, répète-t-on souvent la mesure en écartant les premiers résultats ?
  19. Quelle association entre le problème posé par une mesure unique d'un traitement très court et sa solution est correcte ?
  20. Quelle est la différence correcte entre « temps réel écoulé » (wall-clock time) et « temps CPU » ?
  21. Quelle description du débit (throughput) et de la latence, indicateurs de performance d'un serveur, est correcte ?
  22. Pourquoi, pour évaluer le temps de réponse d'un service Web, examine-t-on souvent le 99e percentile (seuil des 1 % les plus lents) et pas seulement la moyenne ?
  23. Un serveur reçoit 100 requêtes par seconde, chacune prenant en moyenne 0,2 seconde à traiter (régime stationnaire). Combien de requêtes sont en moyenne en cours de traitement simultanément dans le serveur (loi de Little) ?
  24. Lorsque le taux d'utilisation d'un serveur (proportion de temps occupé) approche 100 %, comment évolue le temps d'attente des requêtes ?
  25. Quel est l'objectif correct de l'utilisation d'un profileur pour améliorer les performances d'un programme ?
  26. Quelle caractéristique d'un profileur par échantillonnage est correcte ?
  27. Qu'est-ce qui est correct concernant un profileur par instrumentation, qui insère du code de mesure du temps à l'entrée et à la sortie des fonctions ?
  28. Quelle description d'un point chaud (hotspot) dans l'analyse des performances d'un programme est correcte ?
  29. Quelle lecture d'un flame graph, représentation des résultats de profilage, est correcte ?
  30. Quel exemple de grandeurs comptées par les compteurs de performance intégrés au CPU (PMU) est correct ?
  31. Les compteurs de performance indiquent qu'un programme a un IPC (instructions par cycle) très faible de 0,3 et beaucoup de défauts dans le cache de dernier niveau. Quelle association entre situation probable et remède est la plus plausible ?
  32. Les compteurs de performance révèlent un très grand nombre d'erreurs de prédiction de branchement. Quelle méthode d'amélioration convient ?
  33. Dans l'analyse descendante (Top-down Microarchitecture Analysis) fondée sur les compteurs de performance, quelle grande classification de l'utilisation des slots de traitement d'instructions du CPU est correcte ?
  34. Un programme est lent alors que l'utilisation du CPU n'est que d'environ 20 %. Quelle est la cause la plus probable ?
  35. Pour déterminer si un programme est limité par le calcul ou par la mémoire, on mesure le temps d'exécution en faisant varier la fréquence du CPU. Quel résultat obtient-on en général si le programme est limité par la mémoire ?
  36. Dans le modèle Roofline, lorsqu'un traitement se situe dans la région limitée par la bande passante mémoire, quelle orientation est correcte pour améliorer les performances ?
  37. Que mesure principalement le benchmark STREAM ?
  38. Quelle est la méthode la plus appropriée pour étudier la scalabilité d'un programme parallèle ?
  39. 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 ?
  40. 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é ?
  41. Quelle est la démarche la plus appropriée pour améliorer les performances d'un programme ?
  42. 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 ?
  43. Dans le développement logiciel, quel est l'objectif correct de l'exécution automatique de benchmarks à chaque modification, avec enregistrement des résultats ?
  44. Sur un ordinateur portable, les résultats d'un benchmark varient fortement d'une exécution à l'autre pour le même programme. Quelle association entre cause côté CPU et remède est correcte ?
  45. 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é) ?
  46. Lors de l'analyse des performances d'un programme utilisant un GPU, quel est le premier point le plus approprié à vérifier ?
  47. 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 ?
  48. Pour évaluer l'affirmation « la nouvelle méthode est 100 fois plus rapide », quel point est le plus approprié à vérifier ?
  49. 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 ?
  50. 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 ?

Autres thèmes de Systèmes informatiques