Recherché : une pile logicielle HPC complète et hautement personnalisable

Fonctionnalité sponsorisée. Il y a beaucoup de choses que les centres HPC et les hyperscalers du monde ont en commun, et l’une d’entre elles est leur attitude à l’égard des logiciels. Ils aiment contrôler autant que possible leurs logiciels système, car cela leur permet d’extraire autant de performances que possible de leurs systèmes. Cependant, les ressources en temps et en argent et le niveau d’expertise nécessaire pour créer ce qui équivaut à des systèmes d’exploitation, des intergiciels et des environnements d’exécution personnalisés sont trop onéreux pour la plupart des autres organisations qui devraient bénéficier du HPC sous ses nombreuses formes.

Avec un nombre et des types de moteurs de calcul en croissance rapide dans le centre de données et un ensemble croissant d’applications HPC qui incluent la simulation et la modélisation traditionnelles ainsi que l’analyse de données et l’apprentissage automatique et, de plus en plus, un méli-mélo de ces techniques empilées dans un flux de travail qui constitue un nouveau type d’application, créer et maintenir une pile logicielle HPC complète est un défi de taille.

Et si cela pouvait être davantage un effort de groupe ? Et s’il existait un moyen de créer une pile logicielle HPC complète qui soit encore optimisable pour des cas d’utilisation très spécifiques ? Cela ne serait-il pas un avantage pour la communauté HPC au sens large, et en particulier pour les centres universitaires, gouvernementaux et d’entreprise qui n’ont pas les ressources nécessaires pour créer et maintenir leur propre pile HPC ?

Il est difficile de s’opposer à la personnalisation et à l’optimisation dans le domaine du HPC, alors ne pensez pas que c’est ce que nous faisons ici. Bien au contraire. Mais nous pensons à une sorte de personnalisation de masse organisée qui profite à davantage d’utilisateurs HPC et à des architectures plus diverses, et ce parce que les architectures système deviennent plus homogènes au fil du temps, pas moins.

Chaque fabricant de processeurs ou d’accélérateurs GPU ou FPGA, sans parler des fournisseurs d’ASIC personnalisés, crée ses propres compilateurs et souvent ses propres environnements de développement et d’exécution d’applications dans la tâche sans fin d’extraire plus de performances des clusters HPC coûteux que les organisations construisent à partir de leur moteurs et réseaux de calcul. (Après tout, il est difficile de séparer les performances de calcul et les performances du réseau dans un système en cluster. C’est l’une des raisons pour lesquelles Nvidia a payé 6,9 milliards de dollars pour Mellanox.)

La liste des compilateurs et runtimes HPC importants n’est pas longue, mais elle est variée.

Intel avait son studio parallèle historique Piles XE, qui incluent des compilateurs C++ et Fortran et un interpréteur Python plus la bibliothèque Math Kernel, la bibliothèque d’accélération de l’analyse des données, les primitives de performance intégrées (pour l’accélération de l’algorithme pour des domaines spécifiques), les blocs de construction de threads (pour la programmation parallèle en mémoire partagée), plus un Bibliothèque MPI pour la mise en œuvre du clustering scale-out de transmission de messages, optimisations pour TensorFlow et PyTorch cadres d’apprentissage automatiquedésormais inclus dans les kits d’outils oneAPI d’Intel.

Nvidia a créé son Compute Unified Device Architecture, ou CUDA, pour faciliter le déplacement des tâches de calcul des CPU vers les GPU au lieu d’avoir à recourir à OpenGL. Au fil du temps, l’environnement de développement et le runtime CUDA ont ajouté la prise en charge des modèles de programmation OpenMP, OpenACC et OpenCL. En 2013, Nvidia a acheté les vénérables compilateurs PGI C, C++ et Fortran, qui sont sortis du fabricant de mini-superordinateurs Floating Point Systems il y a des décennies, et pendant plus d’un an, les compilateurs PGI ont été distribués dans le cadre de la pile Nvidia HPC SDK. .

AMD a la plate-forme Radeon Open Compute, ou ROCm en abrégé, qui exploite fortement l’exécution de l’architecture système hétérogène qui a un frontal de compilateur qui peut générer du code hybride pour s’exécuter à la fois sur les processeurs et les accélérateurs GPU, et surtout, les outils qui composent le L’environnement ROCm est open source. ROCm prend en charge les modèles de programmation OpenMP et OpenCL, et possède un autre modèle de programmation d’interface hétérogène pour la portabilité (HIP), qui est un langage de noyau C++ et un temps d’exécution pour le déchargement GPU qui peut générer du code qui peut s’exécuter sur les GPU AMD ou Nvidia et peut également convertir code créé à partir de l’environnement Nvidias CUDA pour s’exécuter sur HIP et donc avoir une sorte de portabilité.

L’environnement Cray Linux et l’ensemble de compilateurs, désormais vendus par Hewlett Packard Enterprise sous le nom de suite d’environnements de programmation Cray, viennent immédiatement à l’esprit et peuvent être utilisés sur les propres systèmes Cray XE de HPE, les processeurs Intel ou AMD et les GPU Nvidia, AMD ou Intel (en incorporant chaque outils des fournisseurs) ainsi que les machines Apollo 80 utilisant le processeur de serveur ARM fortement vectorisé Fujitsus A64FX. ARM a son ensemble de compilateurs Allinea, qui est important pour les processeurs A64FX ainsi que pour les conceptions de processeurs Neoverse Arm qui sortiront avec des extensions vectorielles dans les années à venir. Fujitsu a également ses propres compilateurs C++ et Fortran qui peuvent fonctionner sur la puce A64FX et bien sûr il y a aussi le jeu de compilateurs open source GCC.

Il existe d’autres piles de compilateurs et d’exécution HPC importantes avec des bibliothèques d’accélération pour toutes sortes d’algorithmes importants dans divers domaines de simulation, de modélisation, de services financiers et d’analyse. Plus on est de fous, plus on rit. Mais voici la leçon importante illustrée par le lancement du système Apollo 80 avec le processeur A64FX de HPE : Tous les compilateurs ne sont pas bons pour compiler tous les types de code. C’est quelque chose que tous les centres de supercalcul universitaires et gouvernementaux, en particulier ceux qui modifient beaucoup les architectures, le savent très bien. Une informatique diversifiée signifiera une compilation diversifiée.

Et, par conséquent, il est préférable d’avoir de nombreux compilateurs et bibliothèques différents dans la boîte à outils parmi lesquels choisir. Et, en fait, ce dont le marché HPC a vraiment besoin, c’est d’un hyper-compilateur capable d’examiner le code et de déterminer quel compilateur doit être utilisé dans un large éventail et éventuellement un mélange diversifié de moteurs de calcul pour obtenir les meilleures performances. Nous ne pensons pas que l’industrie HPC ait besoin de nombreux SDK HPC complets différents mis au point par leurs défenseurs des fournisseurs, autant qu’elle a besoin de compilateurs et de bibliothèques de nombreux experts différents qui peuvent tous être intégrés dans un cadre SDK unique, large et complet pour les charges de travail HPC.

Montez à un niveau supérieur dans la pile logicielle HPC, et compliquez encore la situation, est le fait que chaque fabricant de systèmes HPC a son propre environnement Linux, ou un qui a été oint comme celui choisi par l’unité IBM Red Hat ou SUSE Linux ou Linux scientifique, ou celui qui est bricolé par le centre HPC lui-même.

Dans un monde HPC où la sécurité et l’efficacité sont primordiales, nous avons besoin d’une pile de systèmes d’exploitation, d’intergiciels, de compilateurs et de bibliothèques conçue comme un tout, avec des options que vous pouvez glisser dans et hors de la pile selon vos besoins. , mais qui offre l’optionnalité la plus large. Ce logiciel n’a pas besoin d’être open source, mais il doit pouvoir être intégré de manière cohérente via des API. Pour nous inspirer de cette pile HPC, nous prenons l’effort OpenHPC dirigé par Intel il y a six ans et la plate-forme Tri-Lab Operating System Stack (TOSS) développée par le département américain de l’énergie en particulier, Lawrence Livermore National Laboratory, Sandia National Laboratories et Los Laboratoire national d’Alamos. La plateforme TOSS est utilisée sur les pôles de commodités partagés par ces centres HPC.

L’initiative OpenHPC semblait gagner du terrain un an plus tard mais quelques autres années sont passées, et à ce moment-là, personne ne parlait d’OpenHPC. Au lieu de cela, Red Hat créait sa propre distribution Linux optimisée pour exécuter des programmes de simulation et de modélisation HPC traditionnels et les deux plus grands supercalculateurs du monde, Summit à Oak Ridge National Laboratory et Sierra à Lawrence Livermore, exécutaient Red Hat Enterprise Linux 7. L’effort d’OpenHPC était un peu trop centré sur Intel pour beaucoup, mais cette concentration était compréhensible dans une certaine mesure sans processeurs ou GPU AMD et sans processeurs ARM dans la chasse HPC. Mais la nature mixte de la pile était correcte.

Notre expérience de pensée sur une pile HPC va plus loin que simplement permettre à n’importe quoi de se connecter à OpenHPC. Ce que nous voulons, c’est quelque chose qui ressemble plus à TOSS, qui a été présenté il y a quatre ans au SC17. Avec TOSS, les laboratoires ont créé un dérivé de Red Hat Enterprise Linux qui utilisait un code source cohérent sur les architectures X86, Power et Arm et un système de construction pour éliminer les éléments de RHEL qui étaient étrangers aux clusters HPC et pour ajouter d’autres logiciels qui était nécessaire.

Dans une conversation sur Les systèmes exascale en 2019, Bronis de Supinski, directeur technique de Livermore Computing, a déclaré que Lawrence Livermore avait extrait 4 345 packages des plus de 40 000 packages qui composent Red Hat Enterprise Linux, puis corrigé et reconditionné 37 autres d’entre eux, puis ajouté dans 253 autres packages que le Tri -Les systèmes de laboratoire nécessitent de créer une plate-forme TOSS avec 4 598 packages. La surface du logiciel est évidemment considérablement réduite, tout en prenant en charge divers processeurs et GPU pour le calcul, divers réseaux, divers types d’abstractions middleware et le système de fichiers parallèle Lustre.

Ce qui est également intéressant à propos de la plate-forme TOSS, c’est qu’elle dispose d’un environnement de développement complémentaire qui se superpose à des compilateurs, des bibliothèques, etc., appelé Tri-Lab Compute Environment :

Si trois des grands laboratoires HPC aux États-Unis peuvent créer une variante HPC Linux et une pile d’outils de développement qui assurent la cohérence entre les architectures, permettent une certaine portabilité des applications et réduisent le coût total de possession des clusters de produits qu’ils utilisent, quel effet supplémentaire une pile HPC unifiée, avec tous les fournisseurs actuels de compilateurs, bibliothèques, intergiciels et autres participants, pourrait-elle avoir sur l’industrie HPC dans son ensemble ? Imaginez un système de construction partagé par l’ensemble de la communauté qui ne pourrait expulser que les composants nécessaires à un ensemble particulier de cas d’utilisation d’applications HPC et qui limiterait l’exposition à la sécurité de l’ensemble de la pile utilisée. Imaginez si les bibliothèques mathématiques et autres accélérations algorithmiques étaient plus portables d’une architecture à l’autre. (C’est un sujet pour un autre jour.)

Il est bon que chaque fournisseur de moteur de calcul HPC ou de système d’exploitation ait sa propre pile complète et hautement optimisée. Nous applaudissons cela, et pour de nombreux clients dans de nombreux cas, cela sera suffisant pour concevoir, développer et maintenir les applications HPC de manière appropriée. Mais cela ne sera très probablement pas suffisant pour prendre en charge un ensemble diversifié d’applications sur un ensemble diversifié de matériel. En fin de compte, ce que vous voulez, c’est pouvoir disposer d’un cadre cohérent entre les fournisseurs de compilateurs et de bibliothèques, ce qui permettrait d’utiliser n’importe quelle bibliothèque mathématique avec n’importe quel compilateur et pour une plate-forme Linux réglable.

Sponsorisé par Intel.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite