L'IA pour la science - Premiers enseignements du supercalculateur Perlmutter du NERSC

Il y a environ un an, le National Energy Research Scientific Computing Center (NERSC) a lancé Perlmutter, qui a été salué à l’époque comme le “supercalculateur IA le plus rapide au monde” par Nvidia dont les GPU fournissent une grande partie de la puissance de Perlmutter. Depuis lors, le NERSC a intensifié de manière agressive sa capacité de charge de travail mixte AI-HPC – logiciels, premières applications scientifiques, outils d’IA, formation, etc. Qu’avons-nous appris jusqu’à présent ?

Lors du AI Systems Summit de cette semaine, Wahid Bhimji, chef de groupe et architecte de données volumineuses dans le groupe de services de données et d’analyse du NERSC, a présenté une visite rapide du saut du NERSC/Perlmutter dans le monde de l’IA pour la science.

“Nous constatons au NERSC que l’IA pour la science a mûri au-delà de la preuve des concepts et en fait dans la production. Mais c’est seulement sur le point d’avoir un impact transformateur », a déclaré Bhimji. «Pour ce faire, il faudra utiliser une échelle de supercalcul et également se coupler à des logiciels scientifiques existants, des simulations scientifiques à grande échelle et également de grands ensembles de données scientifiques. C’est un rôle pour des centres comme le NERSC, mais du travail est nécessaire dans le développement de modèles et d’applications, ainsi que dans le déploiement d’une informatique, d’outils, de technologies et de méthodes appropriés pour utiliser cette informatique.

Nommé en l’honneur du cosmologiste lauréat du prix Nobel (Saul Perlmutter), le dernier système du NERSC (spécifications dans la diapositive ci-dessus) est encore dans “une phase scientifique précoce où nous exploitons ce système pour que des codes particuliers le secouent mais ne chargent pas de manière normale pendant des heures “, a déclaré Bhimji. Perlmutter comprend 12 armoires avec plus de 6 000 GPU et dispose également d’un système de fichiers Lustre entièrement flash. “La phase deux de ce système arrive bientôt et comprend des armoires uniquement CPU pour [when] nous exécutons d’autres codes scientifiques qui ne peuvent pas nécessairement utiliser les GPU. Il comprendra également une mise à niveau de l’ensemble de la mise en réseau du système en utilisant le nouveau réseau haute performance Slingshot Ethernet de HPE/Cray.

Conformément aux attentes, le NERSC a constaté une augmentation des soumissions de flux de travail d’IA, a noté Bhimji.

« Nous le savons grâce à l’instrumentation qui guide ce que nous pouvons déployer et demander. Par exemple, nous avons instrumenté une grande partie des entrées Python sur le système, qu’elles utilisent ou non notre logiciel Python. Nous avons un lien [taken from the slide below] au document qui montre comment nous procédons. Grâce à cela, nous pouvons tirer plusieurs leçons, par exemple, la forte croissance du nombre d’utilisateurs de PyTorch et de TensorFlow, le nombre total triplant de 2018 à 2020, puis doublant à nouveau en 21. »

Le NERSC effectue également une enquête régulière auprès des utilisateurs. “Nous pouvons voir que nous avons des utilisateurs d’apprentissage en profondeur [and] utilisateurs d’apprentissage automatique dans différentes disciplines scientifiques. [We’ve also seen] qu’il y a un besoin d’échelle de calcul dans la mesure où les modèles des gens prennent souvent des jours voire des semaines sur un seul GPU ou sur des ressources uniques sans utiliser de ressources distribuées.

Bhimji a esquissé quelques-unes des leçons tirées des premiers déploiements et de l’enquête. De manière générale, les idées que le NERSC glane maintenant l’aideront à préparer ses différents systèmes, y compris Perlmutter, pour une utilisation plus large par les scientifiques cherchant à utiliser l’IA. Les leçons sont également utiles, espère-t-il, pour d’autres institutions.

« La première est que nous constatons une demande pour des installations où la fonctionnalité et les performances sont en quelque sorte garanties par nous. À partir de cette enquête, nous avons pu voir, peut-être de manière surprenante, que la majorité des gens utilisent réellement les modules que nous fournissons. Mais aussi, les gens doivent pouvoir personnaliser et installer leurs propres packages en plus du logiciel. Nous devons donc prendre en charge des recettes pour utiliser un environnement de clonage de condos et construire par-dessus. Pour Perlmutter, nous avons décidé d’explorer et de fournir actuellement à la fois notre propre logiciel de compilation, mais également d’utiliser les conteneurs NGC fournis par NVIDIA », a-t-il déclaré.

“Maintenant, tous les centres HPC ne prennent pas en charge la conteneurisation, mais nous avons [supported it] pendant un certain temps grâce à une méthode appelée Shifter qui permet une utilisation sécurisée des conteneurs Docker et fonctionne bien avec les conteneurs NGC et vous permet de les extraire directement. Cela était vraiment crucial dans la phase de déploiement de Perlmutter pour garantir un environnement logiciel stable et performant malgré les changements dans la pile logicielle système sous-jacente. Cela dit, nous avons eu quelques problèmes de déploiement [and] grâce à une étroite collaboration avec Nvidia. nous avons pu résoudre – cela inclut donc des choses [like]les différences entre la pile de conteneurs Docker et Shifter. »

Compte tenu de la nouveauté relative de l’IA, il est important de donner aux scientifiques la possibilité d’essayer différentes approches d’IA, a déclaré Bhimji.

« Les scientifiques ont besoin de la capacité d’expérimenter, en particulier dans cette phase, où ils explorent de nombreux modèles d’IA différents pour leur science. Pour ce faire, ils ont besoin d’interactivité et l’un des moyens de le faire est de passer par JupyterHub. Nous avons un service JupyterHub très populaire au NERSC qui compte plus de 2 000 utilisateurs. C’est aussi un moyen préféré pour les gens de développer du code d’apprentissage automatique. Ainsi, tous ces bars ici dans l’enquête (diapositive ci-dessous) sont des personnes utilisant Jupyter au NERSC ou ailleurs. Chez NERSC, vous pouvez utiliser Jupyter avec des ressources partagées ou même des nœuds GPU dédiés. Vous pouvez obtenir quatre GPU uniquement pour votre charge de travail, et même plusieurs nœuds GPU. Il est possible de démarrer des services qui attendent sur le système arrière, mais qui peuvent ensuite obtenir des ressources distribuées assez importantes. Nous fournissons également des noyaux pour les logiciels d’apprentissage en profondeur avec des versions optimisées, mais les gens peuvent également créer leurs propres noyaux.

L’automatisation est un autre élément souhaitable à offrir, a déclaré Bhimji.

“Un domaine particulier pour cela est l’optimisation des hyperparamètres. La sélection et le réglage des modèles sont toujours assez importants dans ces modèles d’apprentissage en profondeur pour obtenir des performances et cela coûte cher en calcul, ce qui signifie à nouveau un besoin de HPC. Mais de nombreux outils différents existent pour effectuer cela et nous devons prendre en charge l’utilisation d’un assez grand nombre de ces NERSC. Nous avons également vu que certains [of these] peut avoir besoin d’adaptation pour bien fonctionner dans nos systèmes arrière et nos politiques de système arrière et l’environnement multi-utilisateurs dans lequel nous nous trouvons. Nous avons donc du travail – par exemple, ce billet de blog décrit un travail avec Ray Tune pour vraiment activer ces outils pour bien fonctionner sur nos systèmes », a-t-il déclaré.

Comme on le voit en bas à droite de la troisième diapositive ci-dessous, Ray Tune a été utilisé pour réduire considérablement le temps d’exécution des modèles de réseaux de neurones graphiques utilisés dans un projet d’apprentissage en profondeur de catalyseur NERSC.

Outre les outils destinés à aider les chercheurs individuels, il est également nécessaire d’adapter le système global aux exigences du flux de travail de l’IA. De manière peut-être surprenante, une partie de la façon dont le NERSC a accompli cela est en participant à l’exercice MLPerf, y compris le travail sur le développement du benchmark MLPerf HPC (HPC v.7) qui a fait ses débuts au SC20 et a été exécuté à nouveau au SC21 (HPC v1.0). La dernière version comprenait une nouvelle référence, OpenCatalyst, et séparait également la mise à l’échelle forte et la mise à l’échelle faible. La liste des systèmes participants était impressionnante : Fugaku, Piz Daint (CSCS), Theta ANL), Perlmutter (NERSC), JUWELS Booster (Jülich SC), HAL cluster (NCSA), Selene (Nvidia) et Frontera (TACC).

« Nous sommes fortement impliqués depuis le début de ce groupe de travail HPC au sein de l’organisation MLPerf et cela vise non seulement la formation en général mais aussi particulièrement pour les applications scientifiques, et particulièrement [use of] ressources HPC », a déclaré Bhimji. Il a noté que la nouvelle métrique de mise à l’échelle faible «vous permet vraiment de remplir un grand système avec plusieurs modèles. Ainsi, ils ont reçu des soumissions de divers grands centres HPC du monde entier. Le [year-to-year] les résultats sont améliorés, ce qui montre des progrès ici avec des soumissions à grande échelle à la fois pour la référence de temps d’entraînement à forte mise à l’échelle d’un modèle unique, mais aussi ces soumissions à faible mise à l’échelle à grande échelle sur Perlmutter et également sur le système numéro un mondial Fugaku.

« Alors, qu’est-ce que cela signifie pour Perlmutter ? Nous avons pu exécuter cela très tôt dans le déploiement de Perlmutter, ce qui s’est avéré très utile pour façonner le système et garantir l’ampleur de l’apprentissage en profondeur que nous voulions faire sur la machine. Nous avons obtenu des résultats raisonnables – vous auriez vraiment besoin de comparer avec l’ensemble des résultats – mais je peux vous dire que nous étions les meilleurs résultats en termes de temps de formation pour le benchmark OpenCatalyst et la deuxième place près d’un système bien réglé, Le supercalculateur Selene de Nvidia. Nous avons également eu le GPU à plus grande échelle, utilisant une grande partie de la machine Perlmutter », a-t-il déclaré.

Bhimji a noté: «C’était bien de prendre la deuxième place pour Selene, car cela nous a permis de faire un profilage approfondi par la suite pour comprendre pourquoi nous avions une différence. À partir de là, nous avons pu voir que le goulot d’étranglement dominant provenait en fait du réseau. Et donc je ne m’attends pas à ce que vous lisiez ce profil, mais l’étape de réduction totale était en fait un peu plus lente que sur Selene. Mais en fait, c’est une bonne nouvelle car nous savons que Perlmutter voit son réseau mis à niveau et nous nous attendons à une amélioration potentiellement 4x uniquement du matériel. Nous avons également compris des différences plus petites à un nœud que nous voyions comme provenant de noyaux non optimisés dans cette implémentation particulière, qui se trouve dans MXNet. Ces noyaux seront probablement améliorés, mais pour le moment, la bande passante mémoire est limitée puisque Selene utilisait la plus grande mémoire (80 Go) du GPU A100.

Bhimji a également présenté de brefs résumés des premiers travaux scientifiques illustrant la capacité de l’IA à accélérer l’analyse (astronomie), à ​​améliorer la simulation (météo/climat) et à automatiser (ensemble de données catalyseur). Les diapositives suivantes résument les trois projets.