{"partition": "head_middle", "source_domain": "linuxfr.org", "digest": "sha1:3VUAZYM5C56PD2UCWVZPFDYTCMZOVMER", "path": "/lustre/fsn1/projects/rech/qgz/uzq54wg/processed_redpajama/base_processing/output/fr/2014-15/000_00037.parquet"}
Technologie Graph500: un nouveau classement pour les supercalculateurs
Posté par patrick_g (page perso) le 18/11/10 à 20:10. Modéré par Florent Zara.
18nov.2010
La sortie récente du trente-sixième classement Top500 a été une fois de plus l'occasion de célébrer les succès et de déplorer les insuffisances des divers laboratoires ou entreprises qui veulent bien proposer les résultats de leurs machines. On oublie pourtant que le test Linpack, qui est au coeur du classement, est un benchmark spécifique qui ne peut refléter la diversité des problématiques du calcul à haute performance.
La conférence Supercomputing 2010 a été l'occasion d'annoncer la naissance d'un tout nouveau classement, le Graph500, qui ambitionne de compléter le Top500 dans le domaine du calcul sur les nombres entiers.
Le site Graph500
Le premier classement
Les spécifications du test
Interview de Richard Murphy
Le classement biannuel du Top500 est devenu au fil du temps une référence pour évaluer la puissance de calcul des superordinateurs mondiaux. Cette légitimité s'explique par l'ancienneté du classement (il existe depuis juin 1993) et par le fait que la vitesse d'un ordinateur est exprimée avec un seul nombre propre à frapper les esprits.
Le Top500 se base sur le code Linpack qui concerne la résolution de systèmes d'équations linéaires. En dépit des critiques sur ce benchmark le code Linpack à l'avantage d'être très adapté aux machines multiprocesseurs (il est extrêmement parallélisable) et il donne une bonne idée de la puissance de pointe d'un ordinateur. Bien entendu on ne peut pas vraiment résumer les caractéristiques complexes d'un supercalculateur avec un seul nombre et, en fonction du problème à traiter, le choix de la machine la plus adaptée sera différent.
Une des critiques récurrentes à l'égard de Linpack porte sur le fait que ce code est parfait pour déterminer la puissance de calcul en virgule flottante d'une machine mais qu'il ne dit rien sur la puissance de calcul concernant les entiers.
À l'inverse de ce qui se fait déjà sur les benchmarks SPEC qui évaluent les performances de processeurs (avec des scores SPECint et SPECfp) il n'existe pas de classement des superordinateurs sur les calculs d'entiers. Traditionnellement les supercalculateurs sont employés dans le domaine de l'ingénierie et de la science où les nombres à virgule flottante règnent en maîtres. La communauté du High-performance computing privilégie clairement cette forme de calcul mais c'est en train de changer et les besoins de traitement sur les entiers explosent (c'est ce qu'appellent les "data-intensive applications").
Pour répondre à cette nouvelle problématique le classement du Top500 est inutile. Il ne permet pas d'évaluer la puissance de traitement sur ce genre de calcul et un autre type de benchmark est clairement nécessaire. Plusieurs membres de la communauté HPC, des universitaires et des ingénieurs, se sont donc mis au travail et le résultat de leurs cogitations est le classement Graph500.
Richard Murphy, qui est architecte système au Sandia National Laboratories, explique dans une interview donnée au site HPCWire les détails de cette nouvelle liste. Les chercheurs ont d'abord recensé quels étaient les problèmes typiques de traitement de données avec des nombres entiers et ils ont identifié cinq domaines majeurs.
Traduction extraite de l'article :
Cybersecurité : des grandes entreprises qui génèrent 15 milliards de logs par jour et dont l'analyse nécessite un scan de toute la table.
Informatique médicale : 50 millions de dossiers électroniques de patients, avec entre 20 et 200 enregistrements par personne, ce qui génère des milliards de données différentes dans lesquelles on doit effectuer des recherches.
Enrichissement de données : des ensembles de données atteignant souvent l'échelle du pétaoctet et pour lesquels les types de données en entrée sont très différents. Un exemple est l'analyse du trafic maritime avec ses centaines de millions de transpondeurs, ses dizaines de milliers de navires et les dizaines de millions de containers transportés.
Réseaux sociaux : ici les besoins semblent sans limite (Facebook est donné en exemple).
Réseaux symboliques : là encore les tailles s'expriment en pétaoctets, un exemple étant le cortex humain avec ses 25 milliards de neurones ayant chacun environ 7000 connexions.Afin de fouiller efficacement ces gigantesques silos de données il faut qu'un supercalculateur possède des caractéristiques assez différentes de ceux qui moulinent du code en virgule flottante. Le benchmark qui a été choisi ne porte donc pas sur des systèmes d'équations linéaires mais sur des analyses de graphes (recherche du plus court chemin, etc). Les graphes sont au cœur de tous les algorithmes de parcours de données ce qui explique ce choix dans la spécification du benchmark Graph500.
Dans cette spécification on apprend qu'il existe cinq niveaux de difficulté, en fonction de la taille des données à traiter, et que les instituts peuvent choisir la catégorie dans laquelle ils vont faire concourir leur machine :
Toy : 17 Go
Mini : 140 Go
Small : 1 To
Medium : 17 To
Large : 140 To
Huge : 1,1 Po
Selon Richard Murphy : "Je doute que quiconque parvienne à résoudre le niveau Huge dans cette première liste. En fait nous avons ajouté le niveau Toy parce que nous avons des retours nous disant que tous les autres niveaux allaient être assez difficiles à traiter sur certaines plateformes".
Selon les universitaires et les chercheurs impliqués dans ce projet c'est la première tentative sérieuse d'offrir un complément au Top500 qui concerne les "data intensive applications". Ils sont également en contact avec les responsables du benchmark SPEC afin d'inclure ces nouveaux tests dans la liste officielle des challenges SPEC.
Les résultats du benchmark Graph500 s'expriment en TEPS (Traversed Edges Per Second) puisque, pour résoudre le problème, il faut effectuer des recherches parallèles dans l'arbre de données et donc traverser les arêtes du graphe.
Bien entendu il faudra du temps pour voir si le classement Graph500 réussit à devenir une référence sur son domaine. Le manque actuel de notoriété explique que peu de laboratoires ou d'entreprises ont répondu à l'appel en soumettant les résultats de leurs machines. Ce sont essentiellement les laboratoires ou travaillent les chercheurs du projet qui ont participé à cette toute première édition qui regroupe à peine neuf résultats.
Le gagnant est donc le supercalculateur Intrepid du laboratoire national Argonne dans l'Illinois avec un score de 6,6 GigaTEPS sur le niveau Medium (17 To de données en entrée). Cette machine est un IBM BlueGene/P qui regroupe plus de 32 000 coeurs de calcul. Pour avoir un élément de comparaison le dernier de la liste est un simple petit cluster de 256 coeurs Intel Westmere X5670 cadencés à 2.93 GHz. Son score sur le niveau Toy (17 Go de données en entrée) est de 615.8 MegaTEPS.
Les données présentes sur le site Graph500 sont extrêmement succinctes et ne permettent pas de faire des statistiques comme celles du Top500. Pour en savoir plus il faut fouiller patiemment les sites des divers laboratoires et on finit par apprendre que Linux est utilisé sur les neuf machines de ce classement (en OS principal ou bien en OS dédié aux entrées/sorties).
Certes avec seulement neuf machines présentes dans le premier classement Graph500 on peut dire que le projet commence tout en bas de l'échelle...mais côté Linux c'est du 100% !
(5 commentaires).
Combien ça coute (en heures ou en argent)
Posté par JGO le 18/11/10 à 22:45.
Par curiosité, combien coute un run de ce benchmark ? Par exemple, a-t-il fallu lancer le run sur les 32 000 cœurs du BlueGene/P pendant x heures ? (Et combien coute une heure sur un cœur d'une telle machine ?)
Re: Combien ça coute (en heures ou en argent)
Posté par maxix le 19/11/10 à 01:38.
Pas autant qu'un nouveau contrat pour un nouveau supercalculateur.
Posté par lasher le 21/11/10 à 01:32.
Ça dépend ce que tu appelles un coût. Un supercalculateur en lui-même consomme ce qu'il a coûté en environ cinq ans de service. D'autre part, dans mes souvenirs, un nœud de calcul fait souvent dans les 500 cœurs, du coup ça consomme « 500 heures » de calcul, même si tu n'utilises pas tous les cœurs (ie on ne peut pas réserver en-dessous de 500 cœurs).
Ensuite, ce genre de benchmark ne « coûte » rien dans le sens où il est effectué par les propriétaires du cluster.
Les heures de calcul ont un prix sur le marché (j'imagine que les centres qui possèdent les supercalculateurs facturent les heures aux labos qui les utilisent). Si l'admin du système décide de faire tourner ce nouveau benchmark (en plus de linpack), cela correspond à un budget qu'il doit justifier auprès de son chef.
Par exemple chez Amazon on peut louer des heures de calcul sur GPU Nvidia à 1,05 dollars par heure et par cœur ( source http://www.infosecurity-magazine.com/view/14059/sha1-crypto-(...) ). Le benchmark doit être lancé sur un nombre de cœurs significatif pour évaluer correctement l'effet des communications. Plus il y a de cœurs, plus ça va vite, mais ce n'est pas forcément linéaire. Bref je voulais connaitre une estimation réaliste pour faire un benchmark, du genre : 500 cœurs, 1 heure au total, serait facturé 1 euro/(cœur x heure) si loué à un labo (là j'invente les valeurs), ce qui conduit à un manque à gagner de 500 euros.
« Si l'admin du système décide de faire tourner ce nouveau benchmark (en plus de linpack), cela correspond à un budget qu'il doit justifier auprès de son chef. »
Justement, ce n'est pas le sysadmin qui décide de lancer le benchmark. Le plus souvent il s'agit du chef qui veut pouvoir crâner devant les petits camarades au top 500. Ensuite, la plupart des centres de calcul ne sont pas à louer. Ils sont achetés pour résoudre des problèmes de simulation liés à l'organisation qui a fait l'achat (en France on parlerait donc de Peugeot/Renault pour la simulation d'accidents sur leurs voitures, ou bien du CEA pour simuler tout un tas de machins liés au nucléaire, etc.).