Le calcul à hautes performances ou HPC (High-Performance Computing) est un marché à part, pour l’instant dominé par les chinois. Il met en œuvre des clusters « gigantesques », avec des puissances de calcul qui dépassent maintenant les 100 PFlops en crête. C’est l’un des rares domaines que l’on pouvait considérer « a priori » comme incompatible avec le Cloud, bien que certains fournisseurs, proposent désormais de louer des clusters de plusieurs milliers de nœuds. Cette situation va-t-elle durer ? Et ne voit-on pas déjà poindre les prémisses d’une nouvelle génération de systèmes HPC, plus simples à mettre en œuvre et …portables dans le Cloud. C’est en tout cas ce que laisse penser la récente acquisition de Cycle Computing par Microsoft. Mais les apparences peuvent être trompeuses…

Des besoins spécifiques

Le calcul HPC ce n’est pas seulement des nœuds de calcul à aligner, des pétabytes et des capacités réseaux importantes. C’est aussi du logiciel et des algorithmes complexes, basés sur des frameworks avancés, MPI par exemple, qui ont autant besoin de puissance de traitement que de capacités graphiques. Sans oublier des moyens d’interconnexion de nœuds, des canaux ultra-rapides. C’est de cela dont il faut trouver l’équivalent dans le Cloud, ressources sans lesquelles les performances du code vont s’effondrer.

Le challenge n’est pas évident, qui explique le scepticisme qui entoure la communauté scientifique.

Les arguments des sceptiques ne manquent pas.

Le premier d’entre eux concerne justement ces moyens d’interconnexion qui sont généralement de type Ethernet dans le Cloud, à des niveaux de performances très inférieurs à ceux des matrices d’interconnexion et des bus ultra-rapides « propriétaires », qui équipent la plupart des clusters scientifiques de haut niveau.

La machine la plus puissante du monde, une chinoise, la Synway TaihuLight, est dotée par exemple d’un bus d’interconnexion spécifique Sunway, les solutions standard étant incapables de véhiculer l’énorme trafic inter-noeuds que ses applications génèrent. C’est aussi le cas du numéro 2, toujours chinois, le Tianhe-2, que son fabricant a doté d’un bus propriétaire TH Express-2. Ce n’est pas de l’Ethernet.

Une autre raison, qui explique la défiance des utilisateurs potentiels, tels que les compagnies de météorologie ou les pétroliers pour le traitement sismique, tient à la nature même du Cloud et à sa dépendance aux techniques de virtualisation.

Car le Cloud est quasiment synonyme de virtualisation (IaaS), le mode bare-metal, autrement dit l’usage direct de ressources physiques dans le Cloud, ne présentant pas beaucoup d’intérêt pour le moment, compte tenu de l’énormité des configurations qu’il faudrait mettre en place.

Or, la virtualisation n’est rien d’autre qu’une couche d’intermédiation logicielle qui va orchestrer la présence des MV sur les machines physiques et surtout attribuer les ressources matérielles auxquelles les programmes hébergés vont prétendre. Ce qui dans l’état actuel des solutions standard, VMWare, HyperV et surtout KVM (Linux) qui semble le mieux placé dans le contexte HPC, est pratiquement impossible à envisager dans le Cloud, tant l’overhead système serait important.

En d’autres termes, ce que l’on peut imaginer pour une facturation ou une gestion des stocks dans une MV, est inenvisageable pour un traitement scientifique parallélisé, mélangeant calcul lourd et capacités graphiques élevées.

Il n’existe d’ailleurs en 2017, aucune solution Cloud HPC crédible, qui permettrait de mettre en ligne plusieurs centaines de milliers de nœuds, comme c’est le cas sur les HPC modernes.

Personne ne peut affirmer que ce ne sera jamais le cas, mais probablement pas avant 10 ou 20 ans, au moins pour les charges les plus lourdes.

Pour ce qui est charges plus « légères », comme celles du Big Data ou du calcul analytique complexe, l’échéance sera sans doute plus rapprochée et certaines expériences vont probablement subvenir très vite. Mais il ne s’agit pas là d’applications HPC, qui elles font appel à un modèle de calcul parallèle ou massivement parallèle, porté par un très grand nombre de nœuds. Ce n’est pas la même chose.

Des modèles financiers inadéquats

Le principal intérêt d’une offre de Cloud est surtout de s’adapter aux besoins fluctuants, pour nous éviter d’être en sous ou suréquipement.

Mais ce contexte n’est pas celui des usagers HPC. Car ceux-ci, souvent des structures gouvernementales ou des compagnies privées géantes, cherchent avant tout de la puissance de traitement qu’elles sont prêtes à payer un prix très élevé. Elles ne cherchent pas à faire des économies, mais à disposer de moyens de calcul, de communication et de stockage, compatibles avec les modèles de calcul extraordinairement consommateurs, que sont les prévisions météo à long terme ou le calcul sismique 3D. Des moyens qui vont leur permettre d’être plus efficaces et compétitifs. Le reste n’est que littérature.

Ne pas confondre l’exploitation dans le Cloud de ressources clusterisées avec le véritable HPC, synonyme de calcul massivement parallèle. Ou alors, il faut changer les définitions…(illustration : National Institute of Advanced Industrial Science and Technology)

 

UberCloud le contre-exemple

La confusion vient de ce que les « marketers » mélangent volontairement les concepts et confondent « chiens et chats ».

Ils mettent en avant la disponibilité dans le Cloud de ce qu’ils appellent des ressources HPC, à l’image du bien nommé UberCloud, mais qui ne sont que des équipements et logiciels à usage général, sans prédestination pour le massivement parallèle. On trouve, il est vrai, des switchs Infiniband, des processeurs graphiques GPU, mais ni en nombre, ni en pertinence suffisants pour atteindre les objectifs du véritable HPC. Ou alors, il faudra admettre que tout le monde fait du HPC, AWS, Adobe, Autodesk et qu’Office 365 n’est que la transposition dans le Cloud d’un mode nouveau : la bureautique HPC. Restons sérieux.

Microsoft convaincu ?

Microsoft que l’on aurait pu croire à des années-lumière du calcul à hautes performances vient de démontrer qu’il considérait cependant ce mode dans Azure comme une opportunité non négligeable. Il vient pour cela de racheter un spécialiste du sujet, l’américain Cycle Computing, spécialisé dans l’orchestration et le stockage de solutions à hautes performances, qui viennent en complément de ressources plus spécialisées comme les GPU (Graphic Processing Unit).

Microsoft et Cycle Computing n’étaient d’ailleurs pas étrangers l’un à l’autre, puisque les solutions Cycle avaient déjà été portées dans le Cloud de Microsoft, comme sur ceux d’AWS et de Google.

Microsoft va d’ailleurs se trouver devant un dilemme, car d’un côté il peut difficilement continuer à faire la promotion d’outils destinés à ses concurrents et en même temps prendre le risque de perdre ceux qui sont devenus ses clients, en leur interdisant de persister sur leurs plates-formes. On imagine que Microsoft saura leur proposer des offres de migration attirantes, sa force étant comme toujours le logiciel et surtout les partenariats qu’il aura su conclure dans le domaine scientifique et technique.

Malgré l’intérêt de ce que nous concocte Microsoft, nous ne croyons cependant pas que cela ait un impact dans le véritable domaine HPC. Pour traiter des applications de Big Data ou de Blockchain dans le Cloud, sans aucun doute Mais pas pour le calcul scientifique massivement parallèle. Et nous nous garderons bien de penser que tout cela n’est qu’une question de puissance de calcul. C’est au contraire une affaire d’architecture logicielle. Et louer 2 000 nœuds dans Azure ne veut pas dire que l’on va faire du HPC. Ce sont des contextes différents et Cloud ou pas, ils vont le rester.