Le Calcul Haute Performance (HPC) s’est imposé comme un pilier fondamental dans le domaine technologique, abordant des problèmes de grande échelle et vélocité inatteignables par des méthodes de calcul traditionnelles. Cependant, cette capacité avancée entraîne ses propres défis, en particulier, l’apparition de goulots d’étranglement dans les processus de données.
Le problème se pose initialement avec la manipulation de grands volumes de données. Par exemple, traiter un ensemble de données textuelles de 1 To peut être simple, mais le scenario change radicalement lorsque le volume de données augmente à 1 Po ou plus, et la complexité des problèmes mathématiques impliqués s’intensifie.
Une solution initiale serait de charger les données de manière séquentielle dans la mémoire de l’ordinateur pour leur traitement. Cependant, ici apparaît le premier grand obstacle : la vitesse de stockage par rapport à la mémoire et au CPU. Cette différence de vitesse entre composants implique que la performance du système sera limitée par le composant le plus lent.
Pour aborder ce défi, une alternative est de diviser l’ensemble de données en parties plus petites et de les distribuer dans différents ordinateurs pour leur analyse et résolution en parallèle. Néanmoins, cette approche suppose que les données peuvent être divisées sans perdre de signification et que l’exécution peut être parallèle sans altérer le résultat final. En outre, cela nécessite l’intégration d’un outil qui orchestre à la fois la division des données et la gestion simultanée de multiples ordinateurs.
Un autre défi survient avec la nécessité d’interconnexion physique et logique entre de multiples ordinateurs pour gérer la charge de travail. Le réseau introduit des problèmes supplémentaires de fiabilité et de performance. Par exemple, la perte ou le retard des données dans le réseau peuvent sérieusement affecter l’exécution parallèle.
Dans des scénarios où les grands ensembles de données incluent des dépendances structurelles, la complexité augmente. Le traitement des données nécessitera un gouverneur intelligent pour les gérer et les organiser de manière optimale. Sans cela, même disposant de suffisamment de ressources de stockage et de calcul, il est possible qu’elles ne soient pas utilisées de manière efficace ou correcte.
En parallèle à ces problèmes de données et de réseau, il y a des défis physiques inhérents aux ordinateurs individuels conçus pour des opérations haute performance. La génération de chaleur dans le CPU et les limitations dans la taille des modules de mémoire physique et des systèmes de stockage local jouent un rôle crucial dans la détermination de la façon dont de grands ensembles de données peuvent être traités.
Une approche alternative pourrait être l’utilisation de multiples ordinateurs, mais en les traitant comme une seule entité. Néanmoins, cela introduit le concept de Temps Moyen Entre Défaillances (MTBF), une valeur critique dans le HPC en raison de sa nature parallélisée. La possibilité de défaillance dans un système de calcul groupé est significativement plus élevée que dans des machines individuelles. Par exemple, la défaillance d’un seul disque dur dans un cluster peut entraîner une panne critique dans tout le système. Ce risque s’accroît avec la taille et la quantité de données qui doivent être analysées en petites parties sur de nombreuses instances de calcul parallèle.
Avec des clusters de superordinateurs, le MTBF peut être aussi bas que plusieurs minutes. Si le temps d’exécution nécessaire pour résoudre les tâches dépasse cette valeur, des mécanismes doivent être inclus pour assurer que la perte potentielle de composants individuels n’affecte pas le système dans son ensemble. Néanmoins, chaque sauvegarde ajoutée introduit un coût supplémentaire et une possible pénalisation en performance.
Bien que l’exécution parallèle puisse sembler trop complexe, en pratique, c’est la seule méthode viable pour résoudre certains problèmes mathématiques à grande échelle. Les limites physiques des processeurs individuels et les considérations de refroidissement deviennent des facteurs critiques, dictant la performance qu’un seul processeur peut atteindre.
Enfin, la solution optimale peut être l’utilisation de multiples ordinateurs traités comme une seule entité unifiée, mais cela présente ses propres défis uniques. La nécessité d’un programmeur de données devient essentielle. Celui-ci doit être suffisamment rapide pour ne pas introduire de pénalités de performance, conscient de la topologie de l’infrastructure dans laquelle il opère, et capable de monter en échelle selon les besoins.
En résumé, il n’y a pas de raccourcis dans le Calcul Haute Performance. Chaque configuration de HPC est unique et exige une approche différente. Chez Canonical, nous comprenons les immenses défis auxquels sont confrontés les professionnels du HPC et nous voulons aider à simplifier certains des problèmes centraux du monde du HPC, en rendant le logiciel et les outils HPC plus accessibles, faciles à utiliser et à maintenir. Notre objectif est d’optimiser les charges de travail des clients HPC et de réduire leurs coûts, tant en matériel qu’en factures d’électricité, en utilisant des applications et utilitaires open source de la communauté HPC et de notre propre logiciel.