Pourquoi les algorithmes sont nuls et les ordinateurs analogiques sont l’avenir

Je sais que le titre de cet article peut sembler légèrement provocateur, mais c’est vrai : L’informatique algorithmique ne s’adapte tout simplement pas très bien lorsqu’il s’agit de problèmes nécessitant d’immenses quantités de puissance de traitement.

Il suffit de jeter un coup d’œil à la dernière liste Top500 des ordinateurs à haute performance. Actuellement, le superordinateur le plus puissant est le Sunway TaihuLight du National Supercomputing Center de Wuxi, en Chine. Ce mastodonte délivre une puissance impressionnante de 93 pétaflops (un pétaflop équivaut à un quadrillion d’opérations en virgule flottante par seconde), ce qui est vraiment insondable.

Superordinateurs et consommation d’énergie

Cependant, une telle puissance de traitement énorme a un coût. Dans ce cas, elle nécessite 10 649 600 unités de traitement, appelées cœurs, qui consomment 15 371 mégawatts – une quantité d’électricité qui pourrait alimenter une petite ville d’environ 16 000 habitants sur la base d’une consommation énergétique moyenne égale à celle de San Francisco.

Si nous détournons notre attention des superordinateurs les plus puissants pour nous concentrer plutôt sur les plus économes en énergie, nous trouverons le système TSUBAME3.0 de l’Institut de technologie de Tokyo en tête de la liste Green500. Il fournit 14,11 gigaflops/watt avec une consommation d’énergie globale de « seulement » 142 kilowatts pour ses 36288 cœurs. En termes d’efficacité énergétique, c’est environ deux fois mieux que TaihuLight. Mais 142 kilowatts, c’est quand même une sacrée quantité d’énergie électrique.

Mais n’existe-t-il pas de superordinateurs dont le fonctionnement ne nécessite pas autant d’énergie ? En effet, il en existe : Le cerveau humain en est un excellent exemple – sa puissance de traitement est estimée à environ 38 pétaflops, soit environ deux cinquièmes de celle de TaihuLight. Mais tout ce dont il a besoin pour fonctionner, c’est d’environ 20 watts d’énergie. Des watts, pas des mégawatts ! Et pourtant, il accomplit des tâches que – du moins jusqu’à présent – aucune machine n’a jamais pu exécuter.

« N’y a-t-il pas des superordinateurs qui ne nécessitent pas autant d’énergie pour fonctionner ? En effet, il en existe : Le cerveau humain en est un excellent exemple. »

Qu’est-ce qui cause cette différence ? Tout d’abord, le cerveau est un ordinateur spécialisé, pour ainsi dire, tandis que des systèmes comme TaihuLight et TSUBAME3.0 sont des machines beaucoup plus polyvalentes, capables de s’attaquer à une grande variété de problèmes.

Des machines comme celles-ci sont programmées au moyen d’un algorithme, ce qu’on appelle un programme. Il s’agit essentiellement d’une séquence d’instructions que chaque processeur exécute en les lisant dans un sous-système de mémoire, en décodant les instructions, en allant chercher les opérandes, en effectuant l’opération demandée, en mémorisant les résultats, etc.

Un superordinateur économique : Le cerveau humain

Toutes ces demandes de mémoire nécessitent une quantité substantielle d’énergie et ralentissent considérablement les choses. Avoir des centaines de milliers de cœurs individuels nécessite également un tissu d’interconnexion complexe pour échanger des données entre les cœurs selon les besoins, ce qui ajoute également au temps et à la puissance nécessaires pour effectuer un calcul.

Un cerveau, en revanche, fonctionne avec une approche complètement différente. Il n’y a pas de programme impliqué dans son fonctionnement. Il est simplement « programmé » par les interconnexions entre ses composants actifs, pour la plupart appelés neurones.

Le cerveau n’a pas besoin d’aller chercher des instructions ou des données dans une quelconque mémoire, de décoder des instructions, etc. Les neurones reçoivent des données d’entrée d’autres neurones, opèrent sur ces données et génèrent des données de sortie qui sont transmises aux neurones récepteurs. OK – ceci est un peu trop simplifié mais c’est suffisant pour nous amener aux questions suivantes :

  1. 1. N’existe-t-il pas un équivalent électronique d’une telle architecture informatique ?
  2. 2. Avons-nous vraiment besoin de superordinateurs à usage général ?
  3. 3. Un système spécialisé pourrait-il être meilleur pour s’attaquer à certains problèmes ?

La réponse à la première question est : Oui, il existe un équivalent électronique d’une telle architecture.

C’est ce qu’on appelle un ordinateur analogique.

Entrez dans les ordinateurs analogiques

« Analogique » dérive du mot grec « analogon » qui signifie « modèle ». Et c’est exactement ce qu’est un ordinateur analogique : Un modèle pour un certain problème qui peut ensuite être utilisé pour résoudre ce même problème en le simulant.

Les analogues dits directs – reposant sur le même principe sous-jacent que le problème étudié – forment la classe la plus simple de ces méthodes analogiques. Les bulles de savon utilisées pour générer des surfaces minimales en sont un exemple classique.

« Un ordinateur analogique est un modèle pour un certain problème qui peut ensuite être utilisé pour résoudre ce même problème en le simulant. »

Une classe plus généralement utilisable contient des analogies indirectes qui nécessitent une mise en correspondance entre le problème et le domaine informatique. Typiquement, de telles analogies sont basées sur des circuits électroniques analogiques tels que les sommateurs, les intégrateurs et les multiplicateurs. Mais ils peuvent également être mis en œuvre en utilisant des composants numériques, auquel cas ils sont appelés analyseurs différentiels numériques.

Les deux approches partagent une caractéristique : il n’y a pas de programme stocké qui contrôle le fonctionnement d’un tel ordinateur. Au lieu de cela, vous le programmez en modifiant l’interconnexion entre ses nombreux éléments de calcul – un peu comme un cerveau.

De l’analogique aux ordinateurs hybrides

Considérez mon propre prototype d’ordinateur analogique, qui est un exemple d’ordinateur analogique-électronique classique. L’entrecroisement de fils peut être décrit comme le programme de la machine. Dans ce cas, il est configuré pour simuler l’écoulement de l’air autour d’un profil aérodynamique dit de Joukowsky – ce qui n’est pas une tâche triviale.

Cette photo a été prise par Tibor Florestan Pluto et montre le propre prototype d’ordinateur analogique de l’auteur.

Tous les éléments de calcul de la machine fonctionnent en parallélisme complet, sans mémoire centrale ou distribuée à laquelle accéder et à attendre. Vous programmez l’ordinateur en branchant et débranchant les cordons de raccordement. Cela peut être tout à fait utile pour un chercheur unique et à des fins d’enseignement, mais pour un véritable ordinateur analogique à usage général, il faudrait se débarrasser de cette procédure de branchement manuel.

Heureusement, avec la technologie électronique d’aujourd’hui, il est possible de construire des circuits intégrés contenant non seulement les éléments de calcul de base, mais aussi une barre transversale qui peut être programmée à partir d’un ordinateur numérique connecté, éliminant ainsi complètement le nid de rat des fils.

Ces ordinateurs analogiques atteignent une puissance de calcul extrêmement élevée pour certaines classes de problèmes. Entre autres, ils sont inégalés pour s’attaquer aux problèmes basés sur les équations différentielles et leurs systèmes – ce qui s’applique à beaucoup, sinon à la plupart, des problèmes actuels les plus pertinents en science et en technologie.

Par exemple, dans un article de 2005, Glenn E. R. Cowan a décrit un Very-Large-Scale-Integrated Analog Computer (VLSI), c’est-à-dire un ordinateur analogique sur une puce, pour ainsi dire. Cette puce a fourni la somme impressionnante de 21 gigaflops par watt pour une certaine classe d’équations différentielles, ce qui est mieux que le système le plus économe en énergie d’aujourd’hui dans la liste Green500.

L’avenir analogique de l’informatique

L’informatique analogique, qui était la forme prédominante de l’informatique haute performance jusque dans les années 1970, a été largement oubliée depuis que les ordinateurs numériques à programme enregistré d’aujourd’hui ont pris le relais. Mais le temps est venu de changer cela.

« Les applications de demain exigent des puissances de calcul plus importantes à des niveaux de consommation d’énergie beaucoup plus faibles. Les ordinateurs numériques ne peuvent pas fournir cela. »

Les applications de demain exigent des puissances de calcul plus fortes à des niveaux de consommation d’énergie beaucoup plus faibles. Mais les ordinateurs numériques ne peuvent tout simplement pas fournir cela dès le départ. Il est donc grand temps de commencer à développer des coprocesseurs analogiques modernes qui déchargent les ordinateurs traditionnels de la charge de résoudre des équations différentielles complexes. Le résultat serait ce qu’on appelle des ordinateurs hybrides.

Ces machines pourraient offrir une puissance de calcul supérieure à celle des superordinateurs actuels pour une consommation d’énergie comparable ou pourraient être utilisées dans des domaines où seules de minuscules quantités d’énergie sont disponibles, comme les contrôleurs implantés en médecine et d’autres systèmes intégrés.

Défis futurs

Il est clair que l’informatique analogique est très prometteuse pour l’avenir. L’un des principaux problèmes à résoudre sera que la programmation des ordinateurs analogiques diffère complètement de tout ce que les étudiants apprennent à l’université aujourd’hui.

Dans les ordinateurs analogiques, il n’y a pas d’algorithmes, pas de boucles, rien comme ils le savent. Au lieu de cela, il y a un couple d’éléments informatiques de base, mais puissants, qui doivent être interconnectés intelligemment afin de mettre en place un analogue électronique d’un certain problème décrit mathématiquement.

Les défis technologiques tels que les interconnexions puissantes ou les éléments informatiques hautement intégrés mais précis semblent mineurs par rapport à ce défi éducatif. En fin de compte, changer la façon dont les gens pensent la programmation sera le plus grand obstacle pour l’avenir de l’informatique analogique.