Le Barcelona Supercomputing Center accélère le calcul intensif (HPC)

L'allocation intelligente des données à la mémoire persistante Intel® Optane™ permet de stocker plus de données près du processeur avec moins de DIMM.

En bref :

  • Le BSC-CNS (Barcelona Supercomputing Center - Centro nacional de Supercomputación) est le centre national de supercalcul en Espagne. Le BSC-CNS est spécialisé dans le calcul intensif et gère MareNostrum, l'un des supercalculateurs les plus puissants d'Europe.

  • Une équipe du BSC-CNS, en collaboration avec Intel, utilise la mémoire persistante Intel® Optane™ en mode App Direct. Ce projet consiste à créer un nouvel écosystème logiciel autour de la mémoire persistante adressable par octet. L'objectif est d'accélérer les applications de calcul intensif tout en utilisant des supercalculateurs plus économes en énergie.

author-image

Par

Synthèse

Antonio Peña, chercheur senior au Barcelona Supercomputing Center/Centro Nacional de Supercomputación (BSC), est responsable du développement de nouveaux outils logiciels et de l'expansion de l'écosystème logiciel des processeurs Intel® Xeon® Scalable de 2ᵉ génération et de la mémoire persistante Intel® Optane™. Son travail, dans le cadre de l'Intel-BSC Exascale Lab et en collaboration avec le projet EPEEC (Effort européen commun vers un environnement de programmation hautement productif pour les supercalculateurs exaflopiques hétérogènes), contribue à accélérer les applications de calcul intensif (HPC) utilisant des architectures de mémoire hétérogènes.

M. Peña n'est pas étranger au calcul intensif (HPC). Au sein du Laboratoire national d'Argonne (ANL) du Département de l'Énergie des États-Unis (DoE), il a contribué à des projets visant notamment à accélérer les applications basées sur la norme Message Passing Interface (MPI), à étudier les processeurs graphiques virtualisés à distance et à mettre au point des systèmes de mémoire hétérogènes dans les grappes HPC. Sous la direction du professeur Jesús Labarta, le directeur informatique, et en étroite collaboration avec le Dr Harald Servat et Marie-Christine Sawley, d'Intel, il continue à explorer les moyens d'accélérer les charges de travail de calcul intensif volumineuses en exploitant les systèmes de mémoire hiérarchisée. Grâce à la mémoire persistante Intel Optane et aux processeurs Intel Xeon Scalable de 2ᵉ génération, il met au point des architectures révolutionnaires qui permettent des charges de travail hautes performances avec de larges ensembles de données sur des grappes HPC, tout en consommant moins d'énergie que la DRAM.

Défi

« Actuellement, les applications HPC sont limitées par la quantité de DRAM dans les nœuds et la grappe », a expliqué M. Peña. « Elles ont besoin de plus en plus de mémoire, mais du fait des contraintes énergétiques sur l'ensemble du système, l'ajout de DIMM de plus grande capacité n'est pas possible avec la technologie actuelle. »

Dans les grands clusters HPC actuels, la mémoire principale est généralement de 2 à 3 Go par cœur pour optimiser les performances. Une étude réalisée en 2016 a montré que les scores des exécutions du High-Performance Linpack (HPL) ont tendance à plafonner autour de 2 Go de mémoire principale dans les systèmes HPC classiques1. En effet, les principales grappes basées sur x86 dans la liste du Top 500 suivent cette tendance. Par exemple, le MareNostrum 4 du BSC, avec 3 240 nœuds (165 888 cœurs de processeur Intel® Xeon® Platinum 8160), a une capacité de 2 Go/cœur sur presque tous les nœuds. Deux cent seize nœuds de MareNostrum 4 offrent une large capacité mémoire avec 8 Go/cœur pour accueillir des ensembles de données beaucoup plus importants. La même étude prévoit qu'avec l'accroissement des ensembles de données et le développement des futurs systèmes en très grandes grappes (p. ex., un million de cœurs), il faudra une mémoire par cœur de 7 à 16 Go pour atteindre 99 % de la performance HPL idéale. Cela aura un impact considérable sur la consommation d'énergie des serveurs.

Les fabricants de mémoires traditionnelles recommandent de prévoir un budget d'environ trois watts pour 8 Go de mémoire DDR3 ou DDR4, et plus pour les RDIMM2. Dans un nœud HPC avec 56 cœurs x86 et 112 Go de mémoire (2 Go/cœurs x86), le budget mémoire devrait être compris entre 42 et 50 watts. Les gros nœuds de mémoire avec 8 Go/cœur pourraient consommer 168 watts minimum. En ce qui concerne l'avenir des systèmes massifs basés sur des processeurs à 112 cœurs par nœud, par exemple, la consommation d'énergie de la mémoire elle-même deviendra plus lourde, consommant probablement près de 700 watts par nœud3. Les hôtes des systèmes de calcul intensif actuels veulent accélérer les applications, mais réduire la demande d'énergie et non l'accroître en augmentant la mémoire.

Les recherches de M. Peña sont prometteuses pour l'utilisation de mémoires hétérogènes, notamment de grandes banques de mémoire non volatile, pour aider à accélérer les applications à faible puissance.

Solution

« En utilisant la mémoire persistante Intel Optane et en gérant intelligemment l'emplacement des données et leurs déplacements, nous essayons de réduire la consommation d'énergie des serveurs tout en accélérant les applications », a déclaré M. Peña. « Nous pouvons profiter de la grande empreinte mémoire qu'offre cette nouvelle technologie et placer plus de données plus près du processeur. La latence est légèrement plus longue que celle de la DRAM, mais nous n'avons pas à souffrir du temps de latence encore plus grand d'autres technologies de stockage. »

La vision de M. Peña sur les architectures de mémoire hétérogènes s'est forgée lorsqu'il travaillait à l'ANL, pour finalement s'orienter vers le processeur Intel® Xeon Phi™. Il a poursuivi son travail au sein du BSC avec la mémoire persistante Intel Optane.

Vue simplifiée d'un échantillon hétérogène de nœuds de mémoire4.

La mémoire persistante Intel Optane est une technologie de mémoire 3D à haute densité au format DIMM qui offre une combinaison unique de large capacité, de faible consommation d'énergie et de prise en charge de la persistance des données sur le bus mémoire. Les processeurs Intel Xeon Scalable de 2ᵉ génération prennent en charge les modules de mémoire.

« Une large mémoire non volatile est une base parfaite pour des solutions de mémoire hiérarchisée », a ajouté M. Peña. « Ce système est adressable par octet, ce qui nous permet de l'utiliser pour les magasins dont la charge est normale. Il offre une grande capacité et consomme moins d'énergie. »

La mémoire persistante Intel Optane peut fonctionner dans différents modes : mode mémoire, mode App Direct et stockage sur App Direct. En mode mémoire, le processeur gère la mémoire en utilisant la DRAM de façon transparente comme cache pour les données les plus fréquemment consultées. En mode App Direct, elle peut être utilisée comme mémoire volatile ou non volatile, l'application gérant intelligemment l'allocation. M. Peña utilise la technologie en mode App Direct, traitant les modules de mémoire comme une mémoire système de large capacité, gérable avec des objets de données intelligemment alloués afin d'optimiser les performances de l'application en cours d'exécution. L'équipe de M. Peña développe et exécute un logiciel personnalisé pour optimiser l'utilisation de ce mode. Celui-ci permet à la fois de régler l'endroit où les données sont placées dans la structure de la mémoire et de gérer directement la mémoire persistante. L'équipe collabore avec Intel pour construire un nouvel écosystème logiciel autour de la mémoire persistante adressable par octet. L'objectif est d'accélérer les applications de calcul intensif tout en utilisant des supercalculateurs plus économes en énergie.

La réduction de la consommation d'énergie est significative avec la mémoire persistante Intel Optane. Par rapport aux 3 watts par 8 Go (375 mW/Go) recommandés pour les DIMM DDR3 et DDR4 standard, les modules Intel Optane de 128 Go consomment seulement 117 mW/Go et les modules de 512 Go seulement 35 mW/Go, soit une réduction de consommation d'énergie 10 fois supérieure à celle des DIMM DRAM.

Outils innovants de profilage des données et d'allocation de mémoire pour une gestion intelligente des données

Pour que son approche soit possible avec des mémoires hétérogènes, M. Peña et son équipe ont créé plusieurs outils logiciels utilisant Extrae, un profileur polyvalent développé par le BSC, VTune™ profiler, et Extended Valgrind for Object Differentiated Profiling (EVOP), entre autres. EVOP a été d'abord développé par M. Peña à l'ANL et est désormais géré par le BSC. Leurs outils effectuent d'abord ce que M. Peña appelle le profilage orienté données : les outils de profilage tournent pendant que l'application s'exécute normalement. Les outils analysent la demande et les temps de latence pour différents objets et créent un large fichier répertoriant tous les accès aux données.

« Savoir comment on accède à chaque objet de données pendant l'exécution nous aide à décider, lors de l'étape d'optimisation, dans quelles mémoires ceux-ci doivent être répartis », a décrit M. Peña. « En simplifiant, nous associons les mesures aux différents objets de données. Ensuite, nous comptons le nombre d'accès ou le nombre d'échecs de cache de dernier niveau pour chaque objet. À partir de là, nous pouvons appliquer différents algorithmes d'allocation de la mémoire afin de maximiser les performances. »

Une fois que le logiciel sait comment et quand accéder aux objets de données, ainsi que la taille de l'objet de données et la taille des niveaux de mémoire, les résultats sont introduits dans des variantes de multiples problèmes de sac à dos5. Un algorithme d'optimisation du sac à dos tente de faire rentrer le plus grand nombre d'objets de valeur dans un « conteneur » donné, avec une capacité limitée. Dans le cas de M. Peña, les objets mémoire sont les articles et les mémoires dans le système sont les sacs à dos ou conteneurs. Le résultat des problèmes fournit des indications pour affecter les objets de données aux mémoires appropriées dans la hiérarchie.

« Après le profilage, un script, que nous appelons le contrôleur hmem (contrôleur de mémoire hétérogène), analyse le profil des grands objets de données et génère une liste de distribution des différents objets vers les mémoires », poursuit M. Pena. « Ensuite, nous pouvons exécuter le fichier binaire de l'application sans modifications et, pendant que les fonctions malloc standard sont appelées, nous disposons ainsi d'une bibliothèque d'exécution, à savoir un interposeur, qui intercepte ces appels pour attribuer les différents objets de données au niveau de mémoire approprié. »

L'équipe de M. Peña utilise un système au BSC avec des processeurs Intel Xeon Scalable de 2ᵉ génération et 6 To de mémoire persistante Intel Optane pour assurer le développement et effectuer les tests dans le cadre de ses recherches. Le système fait partie de l'Intel-BSC Exascale Lab, où, depuis 2011, des projets de recherche et de développement collaboratif innovants sont menés pour permettre la prochaine génération de supercalculateurs Exascale.

Résultat

Le BSC mène en permanence des recherches sur la mémoire hétérogène. Actuellement, le code de l'équipe de M. Peña s'exécute de manière statique. Il alloue les objets mémoire en fonction d'un cycle de profilage et d'étapes d'optimisation. Cependant l'équipe prévoit de le rendre beaucoup plus dynamique pour tenir compte des changements pendant l'exécution et du marquage des données par l'utilisateur.

« L'outil se concentre aujourd'hui sur l'allocation de données pour optimiser les performances », a expliqué M. Pena. « S'il existe des DIMM standard, des DIMM ECC et des modules Intel Optane dans un système, nous affecterons les données les plus demandées aux premières, puis les données les moins demandées à l'ECC et enfin les objets les moins demandés à la NVRAM. Mais nous envisageons que l'outil ne soit pas seulement dynamique au moment de l'exécution. Il doit également être capable de répondre aux marquages de données de l'utilisateur. Par exemple, si l'utilisateur veut s'assurer que les données sont protégées, nous les allouerons à l'ECC plutôt qu'à la DRAM standard. Ou, si elles présentent certains schémas d'accès, comme de nombreuses écritures, nous les allouerons à la mémoire normale plutôt qu'à la NVRAM, qui a des vitesses d'écriture plus lentes. »

Les travaux de M. Peña portent sur les larges charges de travail de calcul intensif que l'on trouve dans les centres de supercalcul du monde entier, ainsi que sur des applications plus petites, telles que la distribution Intel® pour HPCG, Lulesh, miniFE et SNAP. Son équipe compare les performances de son code à celles de l'utilisation de la mémoire persistante Intel Optane en mode mémoire, au cours de laquelle le processeur gère lui-même les données.

« Nous testons notre code sur la plupart des applications du DoE des États-Unis, comme LAMMPS, OpenFOAM et NWchem. L'un des principaux objectifs de ce projet est de permettre à de larges applications de fonctionner avec des performances élevées sur des systèmes dotés de larges capacités NVRAM et de plus petites quantités de DRAM. Nous constatons actuellement une amélioration des performances dans de nombreuses mini-applications, jusqu'à 18 % supérieures pour OpenFOAM et 10 % pour LAMMPS par rapport au mode mémoire », conclut M. Peña.

L'approche de M. Peña consiste à optimiser les performances et la puissance des supercalculateurs, lorsque des problèmes de plus en plus importants sur des machines de plus en plus grosses signifient de plus en plus de mémoire.

Résumé de la solution

Le Barcelona Supercomputing Center et l'Intel-BSC Exas­cale Lab sont au cœur d'une recherche innovante sur la mémoire hiérarchisée. Ils utilisent des processeurs Intel Xeon Scalable de 2ᵉ génération et la mémoire persistante Intel Optane en mode App Direct. Le centre accueille une équipe dirigée par Antonio Peña. Celle-ci développe des outils logiciels qui allouent intelligemment les données à plusieurs niveaux de mémoire, notamment la mémoire persistante Intel Optane, afin d'optimiser les performances des larges applications de supercalcul. Selon M. Peña, leurs recherches continuent sur les applications de calcul intensif de petite et grande envergure montrent des performances jusqu'à deux fois plus rapides dans certaines mini-applications telles que MiniFE par rapport au mode mémoire.

Composants de la solution

  • Plateforme expérimentale de développement d'outils logiciels de mémoire hiérarchique
  • Processeurs Intel Xeon Platinum 8260L
  • 6 To de mémoire persistante Intel Optane

Télécharger le PDF ›