Faites des FLOPS pour la science !

En argot, un flop, c’est un loupé, un raté. Quelque chose qu’on veut oublier, passer sous le tapis, envoyer loin et ne plus jamais le revoir (un peu comme le COVID-19 actuellement).

Mais en informatique les FLOPS, ce n’est pas du tout ça et c’est beaucoup plus intéressant, d’ailleurs, c’est même la base des ordinateurs. Laissez moi essayer de vous expliquer tout ça.


Qu’est-ce que c’est que ces FLOPS ?

En informatique, tout n’est qu’affaire de calculs. D’une façon où d’une autre, chaque information qui s’affiche à votre écran, chaque pixel, chaque son qui sort, chaque opération est un calcul.

Ces calculs sont réalisés par des processeurs, c’est un mot que maintenant tout le monde connait. 
Grossièrement parlant, dans un ordinateur, on peut trouver 2 types de procésseurs, les CPU et les GPU.

photo processeur intel


(https://fr.wikipedia.org/wiki/Processeur#/media/Fichier:Intel_80486DX2_bottom.jpg)

Les CPU (ou Central Processing Unit) sont un peu la base de votre ordinateur, ils réalisent la majeure partie des opérations.
Les GPU (ou Graphical Processing Unit) sont quant à eux liés aux cartes graphiques, ils font aussi des calculs, mais sont « optimisés » pour les calculs graphiques.

Mais alors pourquoi est-ce que je vous raconte tout cela ? C’est quoi le rapport avec les FLOPS.

Les FLOPS se sont des Floating-Point Operations Per Second, en gros, cela représente le nombre d’opérations qu’un CPU ou un GPU est capable de faire en 1 seconde.
Je dis un CPU ou un GPU, mais si vous avez par exemple 2 CPU qui fonctionnent en même temps, vous pouvez « additionner » ces FLOPS évidemment.

En gros, cela permet de mesurer, d’une certaine façon la performance d’un système informatique.


De l’utilité des FLOPS.

Maintenant qu’on sait à quoi correspondent ces FLOPS, on comprend bien que c’est comme une certaine marque de déodorant, « plus t’en mets plus t’en as »… Ou plutôt ici, plus t’en as, plus tu peux faire de calculs.

zoom sur le compteur kilométrique d'une voiture

Pour un ordinateur classique, avoir un nombre élevé de FLOPS permet de ne pas ressentir de latences, d’ailleurs, vous le voyez bien, quand vous ouvrez beaucoup d’applications, l’ordinateur se met à « rammer », c’est peut-être signe que vous demandez à votre CPU de faire trop d’opérations en une seconde qu’il n’en est capable.

Dans ce genre de situations, le CPU va mettre en attente les opérations tant qu’il n’a pas fini celles d’avant. Et c’est pour cela qu’au bout d’un temps (et en fermant certaines applications), tout revient à la normale.


La course aux FLOPS

Aujourd’hui, on entend beaucoup parler de super-ordinateurs, et c’est parce que maintenant, tout est informatisé.

Tout, et surtout la recherche !

Qu’elle soit médicale, spatiale, climatique, biologique, mathématique, peu importe, la recherche est informatisée.

Pour faire avancer la recherche, nous avons besoin de pouvoir faire beaucoup de calculs, beaucoup d’opérations et de simulations pour valider des hypothèses et creuser.

Et donc, forcément, plus nous avons d’ordinateurs à notre disposition, mieux c’est.
Mais c’est surtout plus nous avons de FLOPS à notre disposition mieux c’est.

Aujourd’hui, les supers-ordinateurs récents affichent un nombre de FLOPS très élevé, et cela n’est rien comparé à ce qu’il se fera dans 1, 3 ou 10 ans.

Imaginez, en 1944, le Colossus Mark II, un super-ordinateur construit par TRE pouvait faire 5 kFLOPS, donc 5000 FLOPS.
17 ans plus tard, en 1961, l’IBM 7030 pouvait faire 1.2MFLOPS (comprendre Méga-FLOPS), c’est 1,2 millions de FLOPS, 240x plus d’opérations.

Je rappelle qu’on parle d’une opération de calcul par seconde. 

Cela vous parait beaucoup ?

En 2018, IBM et nVidia on créé le Behold Summit, il peut réaliser 200 PFLOPS (lire Péta-FLOPS).
200 000 000 000 000 000 FLOPS.

Un super-ordinateur ça ressemble à ça:

photo d'un super ordinateur dans un entrepot

Summit

Une course aux FLOPS est en marche, mais comment faisons-nous pour en avoir toujours plus ?

La solution est assez simple, je l’expliquais, on peut additionner les FLOPS d’un système, donc on additionne les FLOPS de plusieurs « ordinateurs », c’est ça un « super-ordinateur ».


Internet, cette machine à ordinateurs

Internet, ça n’existe pas… Enfin pas physiquement.

Pour faire très très simple (et c’est volontairement réducteur ici), Internet c’est juste une appelation pour expliquer que maintenant les systèmes sont interconnectés entre eux.

Certains sont des ordinateurs qui hébergent des sites internet, d’autres des API, d’autres des serveurs de jeux vidéo, d’autres sont celui que vous utilisez pour lire cet article.

Finalement, on fait tous un peu partie d’Internet.

photo de plusieurs câbles ethernet

Mais quel rapport ?

Depuis quelques années, on voit de plus en plus de crowdfunding.
Le principe est simple, beaucoup de personnes participent financièrement, à leur hauteur, à un projet plus grand, pour obtenir un capital suffisament grand pour lancer le projet.

Les petits ruiseaux font les grandes rivières.

Avec le nombre grandissant d’ordinateur que les particuliers ont à disposition ainsi la course à la performance pour le grand public, nous promettant toujours des ordinateurs plus performants et plus rapides, une opportuinté a vu le jour.

Et si nous utilisions ces ordinateurs ?


Mon ordinateur au service de la recherche.

Avec ce postulat, des projets sont apparus

2 très connus sont:

Mais il y en a d’autres…

Ces projets proposent finalement quelque chose de simple, aujourd’hui, vous utilisez un ordinateur qui peut surement faire beaucoup plus que ce que vous lui demandez.
Et bien, avec votre accord et en installant un logiciel sécurisé, ils vont utiliser un peu de la puissance de calcul de votre ordinateur pour lancer des calculs de recherche.

C’est comme si vous aviez une voiture de sport de 300ch pour rouler en ville et qu’il existait un moyen de faire don de quelques chevaux que vous n’utilisez pas pour les utiliser dans un but plus grand.

Simple, mais il fallait y penser.

Les calculs scientifiques et de recherches sont très compliqués, généralement, on parle de simulations, et rien qu’une simulation a besoin d’énorméments de calculs.

Alors comme je le disais, différents projets de recherche utilisent ce système, SETI@home permet d’aider à trouver de la vie au delà de notre atomsphère par exemple.

Mais, si ces projets, connaissent aujourd’hui un second souffle, c’est avec la malheureuse pandémie du COVID-19 que nous vivons.

En effet, les chercheurs travaillant sur la compréhension de ce virus et qui cherchent un remède ont besoin de faire beaucoup de simulations, donc beaucoup de calculs, et c’est là où les super-ordinateurs entrent en jeu.


Le crowd-super-ordinateur

Arrivés ici, vous devez vous douter de ce que je vais raconter.
On résume :

  • Nous savons que les CPU/GPU permettent de faire des calculs. Plus ils sont récents, plus ils en font et plus rapidement ils le font, ce sont les FLOPS.
  • Nous savons aussi que la science fait énormément de calculs, pour valider ses hypothèses, pour trouver des solutions, et aujourd’hui, un remède.
  • Nous savons que les super-ordinateurs sont un amas de CPU/GPU optimisé pour travailler ensemble et réaliser un nombre gigantesque de calculs

Alors la suite est logique. Ce que font les projets comme BOINC et Folding@Home, c’est créer un super-ordinateur avec des ordinateurs de particuliers.

le projet Folding@Home, nous voyons un écran d'ordinateur sur lequel il y a la carte du Monde avec tous les ordinateurs de particuliers connectés représentés par des points
Protéine modélisée – Folding@home

Et cela est incroyablement efficace, aujourd’hui, le projet Folding@Home permet aux chercheurs de réaliser des calculs sur l’équivalent de 474 petaFLOPS.

474 000 000 000 000 000 opérations par seconde.

Plus que les 7 meilleurs super-ordinateurs réunis (à l’heure où j’écris ces lignes)

EDIT. : Le 25/03/202, la capacité de calcul du projet Folding@Home a dépassé l’exaFlop (1 exaflop = 1 milliard de milliards d’opérations en virgule flottante par seconde)

Voici le tweet sur le sujet :

Et ces calculs permettent notamment de simuler les protéines liées au COVID-19
Pour en savoir plus, rendez-vous sur le site officiel (en anglais) qui explique très bien le type de calculs réalisés https://foldingathome.org/2020/03/15/coronavirus-what-were-doing-and-how-you-can-help-in-simple-terms/


Le mot de la fin

Ce qui est important ici, c’est de se rendre compte que dans un monde où presque tout le monde a un ordinateur, si nous mettons nos forces en commun (comme dans beaucoup de situations), nous pouvons réaliser des choses incroyables comme trouver (nous l’espérons tous) un remède à une pandémie mondiale.

Demain qui sait ? Cela sera peut-être un remède contre le cancer…

Le collectif est plus fort que l’individu, mais libre à lui de le rejoindre !

Vous voulez aider la science ? Alors vous aussi, prêtez quelques espaces de calculs en téléchargeant gratuitement le logiciel Folding@Home ici !

Quentin Klein

Tech Leader de l'agence de Paris
27 mars 2020

Quentin est CTO de La Mobilery. Accro au développement mobile, il est particulièrement intéressé par Android et Flutter.