Lorsque l'on rapporte la complexité algorithmique d'un algorithme, on suppose que les calculs sous-jacents sont effectués sur une machine abstraite (par exemple RAM) qui se rapproche d'un processeur moderne. De tels modèles nous permettent de rendre compte de la complexité temporelle et spatiale des algorithmes. Maintenant, avec l'extension des GPGPU , on se demande s'il existe des modèles bien connus où l'on peut également prendre en compte la consommation d'énergie.
Les GPU sont bien connus pour consommer une quantité considérable d'énergie et certaines instructions entrent dans différentes catégories de consommation d'énergie en fonction de leur complexité et de leur emplacement sur la puce sophistiquée. Par conséquent, les instructions, d'un point de vue énergétique, ne sont pas de coût unitaire (ou même fixe). Une extension triviale attribuerait des poids au coût de fonctionnement, mais je recherche un modèle puissant où une opération / instruction pourrait coûter des unités d'énergie non constantes , par exemple la quantité polynomiale (ou encore plus complexe, par exemple: la fonction du temps écoulé depuis le début) de l'algorithme; ou en tenant compte de la probabilité de défaillance du système de refroidissement, ce qui chauffera les puces et ralentira la fréquence d'horloge, etc.)
Existe-t-il de tels modèles dans lesquels des coûts et des défauts non négligeables peuvent être incorporés?
Réponses:
Il n'y a pas encore de modèle établi, mais c'est un domaine de recherche active en ce moment. Kirk Pruhs est l'un des experts du côté des algorithmes. Ses articles contiennent plus d'informations et vous pouvez également parcourir cette présentation .
la source
Modèles de consommation d'énergie
La mise à l'échelle de la vitesse est l'un des modèles les plus utilisés (récemment) pour la consommation d'énergie. Elle consiste à modifier la tension d'alimentation. En abaissant la tension d'alimentation ou la fréquence d'horloge du processeur, il est possible d'obtenir des réductions importantes de la consommation d'énergie; des vitesses plus rapides permettent une exécution plus rapide, mais elles conduisent également à une consommation d'énergie beaucoup plus élevée (supra-linéaire).
Cependant, la mise à l'échelle de la vitesse n'est pas la seule énergie considérée. C'est ce qu'on appelle l' énergie dynamique . L' énergie statique est la puissance due au fait que le processeur est allumé. Il est possible de se débarrasser de cette puissance statique en arrêtant le processeur pendant le temps d'inactivité. Mais cela a un coût. Il y a eu beaucoup de travail sur ce sujet qui est très proche du problème de la location de ski .
Habituellement, la consommation d'énergie est la somme de la consommation d'électricité statique et dynamique multipliée par le temps d'exécution. Cependant, la plupart des articles se concentrent sur l'un ou l'autre de ces problèmes.
Introduire des défauts dans ce modèle
Je pense que c'est la partie la plus surprenante du modèle d'échelle de vitesse. Habituellement, on pourrait penser que plus vous exécutez une tâche rapidement, plus vous avez de chances d'échouer. Au contraire, il a été montré que la réduction de la vitesse d'un processeur augmente le nombre de taux de défauts transitoires du système; la probabilité de défaillances augmente de façon exponentielle, et cette probabilité ne peut être négligée dans le calcul à grande échelle.
Ceci est une référence personnelle, donc je ne sais pas si cela est apprécié ici, mais si vous êtes intéressé, vous pouvez trouver plus d'informations dans cet article sur la partie dynamique de la consommation d'énergie.
la source
Il y a eu des tentatives pour analyser la consommation d'énergie des algorithmes en théorie (en utilisant bien sûr les coûts réels par opération); voir par exemple [1]. Bien que les résultats soient assez surprenants --- l'algorithme le plus rapide n'est pas toujours celui qui utilise le moins d'énergie --- certains obstacles subsistent.
En particulier, les plates-formes modernes désactivent certaines fonctionnalités de sorte que les coûts d'énergie de fonctionnement augmentent lorsqu'ils sont réactivés. S'il est en principe possible de l'intégrer dans une analyse rigoureuse, cela devient techniquement (trop?) Difficile. De plus, l'effet des ratés de cache sur la consommation totale d'énergie n'a pas été bien étudié.
Il apparaît que d'énormes différences entre les plates-formes s'opposent à des analyses rigoureuses qui ne peuvent (pour une fois) ignorer des spécificités car les modèles généraux (c'est-à-dire avant de brancher des constantes / fonctions concrètes) ont une signification limitée.
la source