Il y a un demi-siècle, Gene Amdahl, un des architectes de l’IBM 360 avant de créer sa propre entreprise énonçait une loi moins connue et aussi importante que la loi de Moore.

Gene Amdahl est une véritable figure de l’informatique. Il a été l’architecte en chef des mainframes IBM 360 (Huit pionniers des réseaux et l’informatique disparus en 2015). Auparavant, il avait travaillé sur les systèmes IBM 704, the IBM 709, et sur le projet Stretch, qui a servi de base pour l’IBM 7030. Il quitta IBM en 1955 pour y revenir en 1960 pour prendre la responsabilité de l’IBM 360 qui sera dévoilé en 1964. Il a ensuite démarré plus tard, sa propre société de mainframe qui portait son nom. Amdahl Corp, qui proposait de machines plus rapides et moins chères qui étaient compatibles avec les systèmes IBM, un principe repris par d’autres constructeurs.

Mais Gene Amdahl est également connu pour avoir énoncé une loi éponyme tout aussi importante que la loi de Moore mais qui, à la différence de cette dernière qui était plutôt « au doigt mouillé », est décrite par une formule mathématique. Enoncée lors de la conférence AFIPS Spring Joint Computer Conference en 1967, elle définit l’accélération théorique en latence de l’exécution d’une tâche à charge d’exécution constante que l’on peut attendre d’un système dont on améliore les ressources.

Limite de performance en fonction du nombre de processeurs

Elle énonce l’idée simple que l’accélération théorique est toujours limitée par la partie de la tâche qui ne peut tirer profit de l’amélioration (source Wikipedia). Par exemple, si un programme a besoin de 20 heures pour être exécuter sur un processeur uni-cœur et qu’une partie de ce programme peut être parallélisé, la loi définit la limite que l’on pourra atteindre quel que soit la proportion est parallélisée. Au-delà de la loi à proprement parlé, la parallélisation des tâches est très variable en fonction des applications.

Mais d’autres lois régissent l’informatique comme la loi de Moore (il y en a eu plusieurs versions) comme la loi de Moore qui indique que la puissance des processeurs double tous les dix-mois. Une loi qui a été à peu près vérifiée depuis qu’elle a été définie en 1964 mais qui commençait à montrer quelques signes d’essoufflements il y a une dizaine d’années en ralentissant les améliorations de performance. Dans l’édition de juin du magazine Computer publié par l’IEEE (Retrospective on Amdahl’s Law in the Multicore Era), Mark D. Hill, professeur d’informatique à l’université du Wisconsin et Michael Marty, ingénieur chez Google, indiquent que les cœurs d’aujourd’hui sont environ 20 fois moins performants que s’ils avaient la loi de Moore depuis 2003.

Depuis une dizaine d’années, les fabricants de microprocesseurs ont donc contourné la loi de Moore en développant des processeurs multicœurs. Dans un article précédent, les deux auteurs avaient défini trois modèles différents dans les architectures multicœurs : homogène, hétérogène et dynamique.

Dans le modèle homogène, tous les cœurs sont identiques et les concepteurs peuvent donc choisir le nombre qu’ils souhaitent intégrer dans un processeur. Sachant que depuis une dizaine d’années les processeurs multicœurs ont considérablement progressé. Aujourd’hui, le processeur Skylake d’Intel intègre 28 cœurs (capables de traiter 58 threads). Il y a dix ans, Intel proposait des processeurs dualcore. Un MacBook Pro était motorisé par un processeur à deux cœurs, aujourd’hui, il comporte des processeurs à quatre cœurs.

Là intervient aussi une autre loi connue sous l’appellation Dennard scaling selon laquelle les nouvelles technologies permettent de doubler le nombre de transistors tout en diminuant par deux la puissance électrique nécessaire. Aujourd’hui, on atteint également les limites de cette loi de telle sorte que les processeurs sont de plus en plus gourmands en énergie électrique.

Le modèle hétérogène prédisait une évolution des processeurs avec une certaine spécialisation. Cela a été implémenté dans les processeurs ARM dont tous les cœurs exécutent tous le même jeu d’instruction mais dont certains sont des cœurs à moindre performance et sont utilisés dans des périodes nécessitant moins de performance pour maintenir le niveau de consommation.  Il y a aussi les architectures incluant des CPU et des processeurs spécialisés. AMD par exemple a proposé récemment un processeur dit Accelerated Processing Unit (APU) qui inclut en quatre cœurs CPU et 512 cœurs GPU. Ces derniers augmentent certains types de traitement.

Dans le modèle dynamique, les ressources peuvent être allouées sur les tâches à réaliser en série et celles pouvant être parallélisées. C’est par exemple, le mode Turbo proposé par Intel où la vitesse d’horloge d’un cœur peut être dopée alors que les autres cœurs sont mis en attente. Ce mode peut être combiné avec le précédent pour une performance encore accrue.