Article de reference

performances de l'ordinateur

En informatique , les performances d'un ordinateur correspondent à la quantité de travail utile accomplie par un système informatique . En dehors de tout contexte spécifique, on...

En informatique , les performances d'un ordinateur correspondent à la quantité de travail utile accomplie par un système informatique . En dehors de tout contexte spécifique, on les évalue en termes de précision, d'efficacité et de rapidité d'exécution des instructions des programmes . Pour obtenir des performances informatiques élevées, un ou plusieurs des facteurs suivants peuvent intervenir :

Arnold Allen, serait utile à un public non spécialisé :

Le mot performance dans performance informatique signifie la même chose que performance signifie dans d'autres contextes, c'est-à-dire « Dans quelle mesure l'ordinateur effectue-t-il le travail qu'il est censé faire ? »

En tant qu'aspect de la qualité logicielle

Les performances des logiciels informatiques , et en particulier le temps de réponse des applications , constituent un aspect de la qualité logicielle important dans les interactions homme-machine .

Ingénierie de la performance

L'ingénierie de la performance au sein de l'ingénierie des systèmes englobe l'ensemble des rôles, compétences, activités, pratiques, outils et livrables appliqués à chaque phase du cycle de vie du développement des systèmes, garantissant qu'une solution sera conçue, mise en œuvre et prise en charge opérationnellement pour répondre aux exigences de performance définies pour cette solution.

L'ingénierie des performances consiste constamment à trouver des compromis entre différents types de performances. Il arrive qu'un concepteur de processeur parvienne à améliorer les performances globales d'un processeur en optimisant l'un des aspects présentés ci-dessous, sans pour autant dégrader ses performances dans d'autres domaines. Par exemple, en utilisant des transistors plus performants et plus rapides .

Cependant, pousser un type de performance à l'extrême peut parfois conduire à un processeur aux performances globales inférieures, car d'autres aspects importants ont été sacrifiés pour obtenir un chiffre impressionnant, par exemple la fréquence d'horloge de la puce (voir le mythe du mégahertz ).

Ingénierie des performances des applications

l'ingénierie des performances, conçue pour relever les défis liés aux performances des applications dans des environnements informatiques mobiles, cloud et terrestres de plus en plus distribués. Elle englobe les rôles, les compétences, les activités, les pratiques, les outils et les livrables mis en œuvre à chaque étape du cycle de vie d'une application, garantissant ainsi qu'elle sera conçue, implémentée et maintenue en exploitation conformément aux exigences de performance non fonctionnelles.

Aspects de la performance

Les indicateurs de performance informatique (éléments à mesurer) comprennent la disponibilité , le temps de réponse , la capacité du canal , la latence , le temps de service , la bande passante , le débit , l'efficacité relative , l'évolutivité , les performances par watt , le taux de compression , la longueur du chemin d'exécution des instructions et l'accélération . Des benchmarks de processeurs sont disponibles.

Disponibilité

de temps d'arrêt ). La disponibilité d'un système peut aussi être améliorée en privilégiant la testabilité et la maintenabilité plutôt que la fiabilité. Améliorer la maintenabilité est généralement plus simple qu'améliorer la fiabilité. Les estimations de maintenabilité (taux de réparation) sont aussi généralement plus précises. Cependant, comme les incertitudes liées aux estimations de fiabilité sont souvent très importantes, elles risquent de primer sur le problème de disponibilité (incertitude des prédictions), même lorsque les niveaux de maintenabilité sont très élevés.

temps de réponse

opération d'entrée/sortie disque au chargement d'une page web complexe . Le temps de réponse est la somme de trois nombres :

  • Délai de service – Temps nécessaire pour effectuer la tâche demandée.
  • Temps d'attente – Durée pendant laquelle la requête doit attendre que les requêtes en file d'attente la précèdent avant de pouvoir être exécutée.
  • Temps de transmission – Durée nécessaire pour acheminer la requête vers l'ordinateur effectuant le traitement et la réponse vers l'expéditeur.

Vitesse de traitement

Intel IA-32 ) pour pouvoir exécuter un grand nombre de logiciels précompilés. Étant relativement peu informés sur les performances des ordinateurs, certains choisissent un processeur en fonction de sa fréquence de fonctionnement (voir le mythe des mégahertz ).

Certains concepteurs de systèmes construisant des ordinateurs parallèles choisissent leurs processeurs en fonction de leur rapport vitesse/prix.

Capacité du canal

information pouvant être transmis de manière fiable sur un canal de communication . D'après le théorème de codage sur canal bruité , la capacité d'un canal donné correspond au débit d'information limite (en unités d' information par unité de temps) pouvant être atteint avec une probabilité d'erreur arbitrairement faible.

La théorie de l'information , développée par Claude E. Shannon pendant la Seconde Guerre mondiale , définit la notion de capacité d'un canal et fournit un modèle mathématique permettant de la calculer. Le résultat principal établit que la capacité du canal, telle que définie ci-dessus, est donnée par le maximum de l' information mutuelle entre l'entrée et la sortie du canal, la maximisation étant effectuée par rapport à la distribution des entrées.

Latence

informatiques temps réel cherchent à garantir une réponse optimale même dans le pire des cas. Ceci est plus facile à réaliser lorsque le processeur présente une faible latence d'interruption et une réponse déterministe.

Bande passante

de communication de données disponibles ou consommées , exprimée en bits par seconde ou en multiples de celle-ci (bit/s, kbit/s, Mbit/s, Gbit/s, etc.).

La bande passante désigne parfois le débit binaire net (également appelé débit de pointe, débit d'information ou débit utile de la couche physique), la capacité du canal ou le débit maximal d'une voie de communication logique ou physique dans un système de communication numérique. Par exemple, les tests de bande passante mesurent le débit maximal d'un réseau informatique. Cette définition s'explique par le fait que, selon la loi de Hartley, le débit de données maximal d'une liaison de communication physique est proportionnel à sa bande passante en hertz, parfois appelée bande passante fréquentielle, bande passante spectrale, bande passante RF, bande passante du signal ou bande passante analogique.

débit

les réseaux sans fil ou les réseaux de communication cellulaire , l' efficacité spectrale du système , exprimée en bit/s/Hz/unité de surface, bit/s/Hz/site ou bit/s/Hz/cellule, correspond au débit maximal du système (débit agrégé) divisé par la bande passante analogique et une mesure de la zone de couverture du système.

Dans les circuits intégrés, un bloc d'un diagramme de flux de données possède souvent une seule entrée et une seule sortie, et traite des paquets d'informations discrets. Les modules FFT ou les multiplicateurs binaires en sont des exemples . Le débit étant l'inverse de l'unité de temps de propagation (secondes par message ou secondes par sortie), il permet de relier un dispositif de calcul exécutant une fonction dédiée, tel qu'un ASIC ou un processeur embarqué, à un canal de communication, simplifiant ainsi l'analyse du système.

Évolutivité

énergie électrique utilisée par l'ordinateur ( consommation électrique ). Ceci est particulièrement important pour les systèmes disposant de sources d'énergie limitées telles que l'énergie solaire, les batteries et l'énergie humaine.

Performance par watt

des ordinateurs parallèles , comme le matériel de Google , choisissent les processeurs en fonction de leur vitesse par watt de puissance, car le coût de l'alimentation du processeur dépasse le coût du processeur lui-même.

Pour les ordinateurs de vol spatial, le rapport vitesse de traitement par watt est un critère de performance plus utile que la vitesse de traitement brute en raison des ressources énergétiques embarquées limitées.

Taux de compression

empreinte écologique des ordinateurs .

nombre de transistors

transistors sur un circuit intégré (CI). Le nombre de transistors est la mesure la plus courante de la complexité d'un CI.

Points de référence

des benchmarks ont été développés.

Les benchmarks les plus connus sont les benchmarks SPECint et SPECfp développés par la Standard Performance Evaluation Corporation et le benchmark EEMBC .

tests de performance logicielle

génie logiciel , le profilage (ou profilage de programme) est une forme d' analyse dynamique de programme qui mesure, par exemple, la complexité spatiale (mémoire) ou temporelle d'un programme , l' utilisation de certaines instructions , ou encore la fréquence et la durée des appels de fonctions. L'utilisation la plus courante des informations de profilage est l' optimisation des programmes .

Le profilage s'effectue en instrumentant soit le code source du programme , soit son exécutable binaire, à l'aide d'un outil appelé profileur (ou profileur de code ). Les profileurs peuvent utiliser différentes techniques, telles que les méthodes événementielles, statistiques, instrumentées et de simulation.

Processeur

L'unité centrale de traitement (CPU), également appelée processeur central, processeur principal ou simplement processeur, est le processeur principal d'un ordinateur donné. Ses circuits électroniques exécutent les instructions d'un programme informatique, telles que les opérations arithmétiques, logiques, de contrôle et d'entrée/sortie (E/S).

Les performances ou la vitesse d'un processeur dépendent notamment de sa fréquence d'horloge (généralement mesurée en hertz) et du nombre d'instructions par cycle (IPC), qui déterminent ensemble le nombre d'instructions par seconde (IPS) que le processeur peut exécuter. De nombreuses valeurs d'IPS publiées représentent des vitesses d'exécution « maximales » pour des séquences d'instructions artificielles comportant peu de branchements, alors que les charges de travail réelles sont composées d'un mélange d'instructions et d'applications, dont certaines s'exécutent plus longtemps que d'autres. Les performances de la hiérarchie mémoire influent également fortement sur les performances du processeur, un facteur rarement pris en compte dans le calcul des IPS. Face à ces problèmes, divers tests standardisés, souvent appelés « benchmarks », tels que SPECint, ont été développés pour tenter de mesurer les performances effectives réelles dans les applications courantes.

Les performances des ordinateurs augmentent grâce à l'utilisation de processeurs multicœurs, qui intègrent deux processeurs distincts (appelés cœurs) sur un seul circuit intégré. Idéalement, un processeur bicœur devrait être presque deux fois plus puissant qu'un processeur monocœur. En pratique, les gains de performance sont bien moindres, de l'ordre de 50 %, en raison des imperfections des algorithmes et de l'implémentation logicielle. L'augmentation du nombre de cœurs d'un processeur (bicœur, quadricœur, etc.) accroît la charge de travail qu'il peut traiter. Le processeur peut ainsi gérer de nombreux événements asynchrones, interruptions, etc., ce qui peut impacter négativement le processeur en cas de surcharge. On peut comparer ces cœurs à différents étages d'une usine, chacun gérant sa propre tâche. Il arrive que plusieurs cœurs traitent les mêmes tâches que des cœurs voisins si un seul cœur est insuffisant. Les processeurs multicœurs améliorent la capacité d'un ordinateur à effectuer plusieurs tâches simultanément en fournissant une puissance de calcul supplémentaire. Cependant, le gain de vitesse n'est pas directement proportionnel au nombre de cœurs ajoutés. En effet, les cœurs doivent interagir via des canaux spécifiques, et cette communication inter-cœurs consomme une partie de la puissance de calcul disponible.

Du fait des capacités spécifiques des processeurs modernes, telles que le multithreading simultané et l'uncore (qui impliquent le partage des ressources du processeur pour une meilleure utilisation), la surveillance des performances et de l'utilisation du matériel est devenue progressivement plus complexe. En réponse, certains processeurs intègrent une logique matérielle supplémentaire qui suit l'utilisation réelle des différentes parties du processeur et fournit divers compteurs accessibles aux logiciels ; la technologie Performance Counter Monitor d'Intel en est un exemple.

Optimisation des performances

un système . Il s'agit généralement d'une application informatique, mais les mêmes méthodes peuvent s'appliquer aux marchés économiques, aux administrations ou à d'autres systèmes complexes. La motivation de cette démarche est appelée problème de performance, qui peut être réel ou anticipé. La plupart des systèmes réagissent à une augmentation de la charge par une baisse de leurs performances. La capacité d'un système à accepter une charge plus élevée est appelée évolutivité , et modifier un système pour qu'il puisse supporter une charge plus élevée est synonyme d'optimisation des performances.

Le réglage systématique suit les étapes suivantes :

  1. Évaluer le problème et établir des valeurs numériques permettant de catégoriser les comportements acceptables.
  2. Mesurer les performances du système avant toute modification.
  3. Identifiez la partie du système qui est essentielle à l'amélioration des performances. Il s'agit du goulot d'étranglement .
  4. Modifiez cette partie du système pour supprimer le goulot d'étranglement.
  5. Mesurer les performances du système après modification.
  6. Si la modification améliore les performances, adoptez-la. Si elle les dégrade, rétablissez la configuration d'origine.

Performance perçue

acceptation par l'utilisateur .

L'affichage d'un écran de démarrage (voir Écran de démarrage) ou d'une boîte de dialogue de progression ne réduit pas le temps de lancement d'une application ou de téléchargement d'un fichier. Toutefois, il répond à certains besoins : il donne l'impression d'un traitement plus rapide et fournit un repère visuel indiquant que le système est en cours de traitement.

Dans la plupart des cas, l'amélioration des performances réelles entraîne une amélioration des performances perçues, mais lorsque les performances réelles ne peuvent être améliorées en raison de limitations physiques, des techniques peuvent être utilisées pour améliorer les performances perçues.

Même sur une seule machine, un compilateur différent ou le même compilateur avec des options d'optimisation différentes peuvent modifier N et CPI ; le test de performance s'exécute plus rapidement si le nouveau compilateur peut améliorer N ou C sans dégrader l'autre, mais il existe souvent un compromis entre eux : vaut-il mieux, par exemple, utiliser quelques instructions complexes qui prennent beaucoup de temps à exécuter, ou utiliser des instructions qui s'exécutent très rapidement, même s'il en faut davantage pour exécuter le test de performance ?

jeu d'instructions particulier et ne peut donc pas modifier N. Parfois, il s'attache à améliorer les performances en optimisant significativement f (grâce à des techniques telles que des pipelines plus profonds et des caches plus rapides), tout en (idéalement) ne pas trop sacrifier C, ce qui aboutit à un processeur l'exécution hors séquence , les processeurs superscalaires , des caches plus grands, des caches avec des taux d'accès améliorés, une prédiction de branchement améliorée , l'exécution spéculative , etc.), tout en (idéalement) ne pas trop sacrifier la fréquence d'horloge, ce qui aboutit à un processeur optimisé. Pour un jeu d'instructions donné (et donc N fixé) et un processus de fabrication de semi-conducteurs, les performances maximales monocœur (1/t) nécessitent un équilibre entre les techniques optimisées et les techniques de vitesse.