En architecture informatique, l'accélération (speedup en anglais) est une mesure du gain de performance entre deux systèmes traitant le même problème. Plus techniquement, c'est le gain de vitesse d'exécution d'une tâche exécutée par deux architectures similaires disposant de ressources différentes. La notion d'accélération a été établie par la loi d'Amdahl, qui se penchait principalement sur le calcul parallèle. Cependant, l'accélération peut être utilisée plus généralement pour montrer l'effet sur les performances lors de n'importe quelle amélioration des ressources.
L'accélération peut être définie pour deux grandeurs différentes : la latence et le débit[1].
La latence d'une architecture est l'inverse de la vitesse d'exécution d'une tâche :
où
Le débit d'une architecture est le taux d'exécution d'une tâche :
où
La latence se mesure généralement en secondes par unité de charge d'exécution. Le débit se mesure généralement en unités de charge d'exécution par seconde. Une autre unité courante de débit est l'instruction par cycle (IPC). Son inverse, le cycle par instruction (CPI), est une autre unité courante de latence.
L'accélération est sans dimension et définie différemment pour les deux types de grandeurs de manière à être une mesure cohérente.
L'accélération en latence est définie par la formule suivante[2] :
où
L'accélération en latence peut être prédite par la loi d'Amdahl ou la loi de Gustafson.
L'accélération en débit est définie par la formule suivante[3] :
où
Soit S l'accélération de l'exécution d'une tâche et s l'accélération de l'exécution de la partie de la tâche bénéficiant de l'amélioration des ressources d'une architecture. Une accélération linéaire ou accélération idéale est obtenue lorsque S = s.
L'efficacité est une mesure de l'utilisation des ressources du système amélioré définie par
Sa valeur est typiquement comprise entre 0 et 1. Les programmes avec une accélération linéaire et ceux exécutés sur un seul processeur ont une efficacité de 1, tandis que beaucoup de programmes difficilement parallélisable ont une efficacité de 1/ln(s) qui tend vers 0 lorsque le nombre de processeurs A = s augmente.
En ingénierie, les courbes d'efficacité sont plus souvent utilisées dans les graphiques que les courbes d'accélération, car
En marketing, les courbes d'accélérations sont davantage utilisées, principalement parce qu'elle monte vers la droite et donc apparaissent meilleures pour un public moins averti.