Developpez.com - Algorithmique

Le Club des Développeurs et IT Pro

[HPC] Quelles pistes pour les superordinateurs d'un exaflops ?

Un ingénieur du DoE propose trois pistes pour limiter la consommation d'énergie

Le 2016-01-10 22:24:07, par dourouc05, Responsable Qt & Livres
En 1964 a été construit le premier superordinateur, nommé Control Data 6600, avec une puissance de calcul d’un mégaflops, c’est-à-dire un million d’opérations en virgule flottante chaque seconde (comme additionner deux nombres à virgule). Il a été conçu par Seymour Cray, qui a lancé la société Cray, connue pour son activité dans les supercalculateurs.

Vingt et un ans plus tard, en 1985, la barre du gigaflops a été franchie par Cray-2. Actuellement, un processeur haut de gamme (comme un Intel i7 de dernière génération) fournit approximativement cent gigaflops.
Une dizaine d’années plus tard, en 1997, ASCI Red explose le téraflops, mille milliards d’opérations en virgule flottante par seconde  ; dans cette série de records, c’est le premier à ne pas être associé au nom de Cray. Un processeur graphique moderne haut de gamme (comme la GeForce GTX Titan X) dépasse maintenant quelques téraflops.

Il y a presque dix ans, Roadrunner atteignant le pétaflops, en combinant une série de processeurs similaires à ceux utilisés dans les PlayStation 3. Aujourd’hui, le plus puissant est Tianhe-2, installé en Chine (alors que les précédents sont américains), avec une cinquantaine de pétaflops. La route semble encore longue jusqu’à l’exaflops, c’est-à-dire un milliard de milliards d’opérations en virgule flottante par seconde. À nouveau, les États-Unis ont lancé un projet pour atteindre cette puissance de calcul à l’horizon 2020 — plus particulièrement, le Département de l’Énergie, le même à investir massivement dans un compilateur Fortran moderne libre.

Ces nombres paraissent énormissimes : un milliard de milliards d’opérations par seconde. Outre les aspects purement informatiques, ce genre de projets a une grande importance pour la recherche scientifique : les laboratoires américains de l’Énergie étudient notamment l’arme nucléaire et la destruction en toute sécurité d’ogives ; en Europe, le Human Brain Project vise à simuler toute l’activité cérébrale d’un cerveau humain au niveau neuronal, ce qui nécessiterait une puissance de calcul de cet ordre de grandeur.

Comment y arriver ?

Le département de l’Énergie estime que, actuellement, toutes les technologies nécessaires pour construire un tel superordinateur sont réunies. Cependant, il serait extrêmement difficile de l’alimenter : il faudrait un réacteur nucléaire complet pour y arriver ! Même si la construction de réacteurs fait partie de ses compétences, l’objectif de l’administration est de proposer une machine qui ne consomme « que » vingt mégawatts (un réacteur nucléaire produit généralement mille mégawatts). Erik DeBenedictis voit trois technologies pour réduire la consommation du facteur cinquante demandé : des transistors qui opèrent à une tension d’un millivolt, la mémoire 3D et les processeurs spécialisés.

En théorie, un transistor peut fonctionner avec des tensions bien plus faibles qu’actuellement, en passant d’un volt à quelques millivolts à peine, ce qui augmenterait l’efficacité énergétique des processeurs d’un facteur dix à cent à court terme (jusqu’à dix mille à plus long terme !). La diminution de tension a jusqu’à présent suivi la loi de Moore, suivant la taille des transistors ; cependant, elle est bloquée depuis une décennie au niveau du volt… mais personne ne sait comment y arriver. Plusieurs technologies pourraient néanmoins passer cette barre :



Les mémoires empilées (aussi dites « en trois dimensions ») sont d’ores et déjà en cours de déploiement, sous des noms comme HBM ou HMC, dans les processeurs graphiques haut de gamme ou des accélérateurs spécifiquement prévus pour le calcul scientifique. Ils permettent une grande réduction de la consommation énergétique, d’autant plus enviable que l’objectif de vingt mégawatts réserve un tiers de la consommation à la mémoire. Une autre piste serait d’abandonner autant que possible la mémoire non volatile, pour passer par exemple à la mémoire résistive, comme la technologie Octane d’Intel.

Le troisième axe de recherche propose d’exploiter des architectures beaucoup plus spécifiques aux problèmes à résoudre. Elle est déjà exploitée, puisqu’une bonne partie des superordinateurs les plus puissants utilisent des processeurs graphiques. Cependant, Erik DeBenedictis propose de pousser l’idée plus loin encore : installer des processeurs extrêmement spécifiques aux tâches à réaliser, qui seraient activés seulement quand ils sont nécessaires. Pour effectuer d’autres types de calculs sur l’ordinateur, il faudrait alors installer d’autres processeurs spécialisés, ce qui n’est plus déraisonnable actuellement, au vu du prix des puces spécialisées.

Des compromis à réaliser

Ces trois pistes ont l’air intéressantes, mais n’ont pas du tout les mêmes propriétés quant au modèle de programmation actuel : si la physique derrière les processeurs change complètement, ils restent programmables de la même manière ; par contre, pour exploiter efficacement de nouveaux processeurs spécialisés, il faudrait changer complètement sa manière de pensée. La mémoire est dans une situation intermédiaire : empilée sur le processeur, les délais d’accès changent radicalement, l’ancien code n’est donc plus aussi efficace s’il tirait parti de ces spécificités, mais continuera à fonctionner ; au contraire, pour la mémoire résistive, il n’y aurait plus de distinction entre la mémoire utilisée pour effectuer les calculs et celle pour le stockage à long terme.


Sources : Three paths to exascale supercomputing (paru en ligne sous le titre Power problems threaten to strangle exascale computing), FLOPS.
Ce contenu a été publié dans HPC et calcul scientifique, Matériel par dourouc05.

Et vous ?
Quelle utilité voyez-vous au développement de ces superordinateurs ?
Quelles technologies aimeriez-vous voir arriver dans votre ordinateur personnel ?
  Discussion forum
11 commentaires
  • Iradrille
    Expert confirmé
    Envoyé par dourouc05
    Le troisième axe de recherche propose d’exploiter des architectures beaucoup plus spécifiques aux problèmes à résoudre. Elle est déjà exploitée, puisqu’une bonne partie des superordinateurs les plus puissants utilisent des processeurs graphiques. Cependant, Erik DeBenedictis propose de pousser l’idée plus loin encore : installer des processeurs extrêmement spécifiques aux tâches à réaliser, qui seraient activés seulement quand ils sont nécessaires. Pour effectuer d’autres types de calculs sur l’ordinateur, il faudrait alors installer d’autres processeurs spécialisés, ce qui n’est plus déraisonnable actuellement, au vu du prix des puces spécialisées.
    C'est IMO la meilleure solution.

    De toute façon il n'y a que 3 possibilités :
    *Continuer sur la voie des CPU : mais pour le moment on est limité par la physique. Le 10nm est en retard, la gravure par EUV est en retard ce qui va retarder le 7nm.. Et sans nouvelle technologies, l’efficacité énergétique est bloquée.

    *Investir dans la recherche sur le refroidissement. Actuellement ~50% de la conso vient des systèmes de refroidissement, ya surement pas mal à gagner de ce coté.

    *S'orienter vers processeurs de plus en plus spécialisés. On perd l'aspect généraliste d'un CPU classique, mais on gagne en efficacité énergétique. Il n'y a qu'a regarder l'efficacité énergétique d'un CPU / GPU / FPGA / ASIC pour le minage de bitcoin, ça donne une idée du gain possible (quand le problème s'y prête bien sur).

    Les FPGA évoluent énormément en ce moment, ça pourrait être une transition viable (bien que niveau efficacité énergétique c'est pas la joie, il faut vraiment que le problème s'y prête pour avoir un gain). Les ASIC ont toujours le même problème : un time-to-market très élevé.

    Envoyé par dourouc05
    Des compromis à réaliser
    En informatique, que ce soit niveau soft ou hard, il n'y à jamais de bonne réponse. Pour un problème donné, il n'y a que des mauvaises réponses, des "moins mauvaises" et d'autres "plus mauvaises". C'est ce qui rend le domaine intéressant.

    Envoyé par dourouc05
    Quelle utilité voyez-vous au développement de ces superordinateurs ?
    Science ! Les résultats sont là, ils ne demandent qu'à être trouvés !

    Envoyé par dourouc05
    Quelles technologies aimeriez-vous voir arriver dans votre ordinateur personnel ?
    Une réduction de la latence de la RAM, bloqué depuis bien trop longtemps.
  • Traroth2
    Membre émérite
    Autre piste de recherche, en train d'aboutir, elle : le memristor. HP a indiqué il y a quelques temps voir développé un prototype de machine utilisant ce composant. Mais on en a plus entendu parler depuis...
  • Iradrille
    Expert confirmé
    Envoyé par Traroth2
    Autre piste de recherche, en train d'aboutir, elle : le memristor. HP a indiqué il y a quelques temps voir développé un prototype de machine utilisant ce composant. Mais on en a plus entendu parler depuis...
    C'est à priori plus dans une optique d'évolution de la mémoire (remplacement des SSD à terme), enfin je crois ?




    Micron et Sony, qui avaient annoncé avoir produit une puce de 2 Go en février dernier (février 2014), ont donné quelques résultats obtenus en pratique sur leur puce. En pratique ils ont pu atteindre les 900 Mo /s en lecture avec une latence de 2,3 µs, là où le design permet en théorie d'atteindre 1 Go et 2 µs. En écriture la vitesse est de 180 Mo /s contre 11,7 µs, le design permettant au maximum d'atteindre 200 Mo /s et 10 µs.
    source

    Tant que le jeu de données tient en RAM, ça n'apporte rien pour le temps de calcul, mais ça peut être sacrément cool à la maison. Si c'est la même révolution que les SSD c'est génial.
  • DonQuiche
    Expert confirmé
    En matières d'archis spécialisées on voit des choses intéressantes en ce moment. Deux choses m'attirent en particulier :

    * les architectures orientées dataflow (visualisez le programme comme un immense graphe : à chaque noeud on calcule en parallèle les opérandes indépendantes). Mais à mon avis la seule façon de réaliser efficacement ça ce sont via des archis programmables type FPGA. Quant à savoir comment exposer efficacement ça au programmeur...

    * les archis mélangeant stockage et calcul. Par exemple une content-adressable memory. Là encore un sacré bazar avant que le matériel et le logiciel soient tous deux efficaces.

    * les archis analogiques.
  • pvincent
    Membre confirmé
    Je me souviens de mon étonnement quand les Cray ont été supplantés par des machines à base de processeurs dont le développement était motivé plus par les jeux vidéos et la bureautique que par la recherche scientifique.
    L'explication est simple: l'importance de ces marchés en termes financiers est bien plus grande que celle de la recherche scientifique, fut-elle militaire, ce qui a orienté les efforts vers ce type de machine.
    Donc pour moi la technologie gagnante sera celle qui saura trouver des applications dans des marchés à large diffusion.
  • Iradrille
    Expert confirmé
    Envoyé par pvincent
    Donc pour moi la technologie gagnante sera celle qui saura trouver des applications dans des marchés à large diffusion.
    Super-ordinateurs mobile avec un bouton "Like" ?
  • Les trois ont déjà été tentées il y a de cela quelques décennies et complètement abandonnées compte tenu de leur inefficacité notoire. Je ne vois pas en quoi ces architectures reviendraient à la mode pour du calcul généraliste de nos jours alors que leurs défauts sont restés les mêmes et se sont même creusés face aux architectures habituelles.

    Les architectures dataflow, notamment, ont étés utilisées comme architectures généralistes avant d'être rapidement abandonnées compte tenu de leur faible efficacité. C'est d'ailleurs de ces architectures que sont partiellement inspirées les architectures OOO à renommage de registres actuelles. Et vu les limitations en terme d'extraction d'LIP de ces dernières, on retrouvera la même problématique sur les dataflow, avec les problèmes de gestion de localité en plus.

    Les mémoires adressables par contenus sont déjà utilisées, notamment dans les routeurs. Et c'est trop cher de fabriquer des mémoires de grosse capacité avec, ce qui explique leur faible utilisation.

    Les architectures analogiques, faudrait déjà avoir des composants électroniques suffisamment précis.
  • DonQuiche
    Expert confirmé
    a) J'ai parlé d'archis spécialisées, pas généralistes.

    b) Pour les archis dataflow, j'ai précisé qu'à mon avis cela demanderait des circuits programmables, pour pré-câbler une bonne part de l'algo. Ensuite il était difficile à l'époque de déterminer quelles opérandes étaient indépendantes, mais l'analyse statique a fait des progrès et des langages comme Rust facilitent la vie du compilo. Bien d'autres choses ont également changé.

    c) Pour les CAM nous voyons pointer de nouvelles technos comme les memristors, parfaites pour ça.

    d) Pour les archis analogiques, la précision est relative au problème posé. Je ne crois pas en des archis programmables mais en des circuits analogues au problème à résoudre.
  • Traroth2
    Membre émérite
    Envoyé par Iradrille
    C'est à priori plus dans une optique d'évolution de la mémoire (remplacement des SSD à terme), enfin je crois ?



    source

    Tant que le jeu de données tient en RAM, ça n'apporte rien pour le temps de calcul, mais ça peut être sacrément cool à la maison. Si c'est la même révolution que les SSD c'est génial.
    En gros, ça permet d'avoir du stockage qui va à la même vitesse que la RAM. En d'autres termes, on peut fusionner les deux, avec l'impact algorithmique qu'on peut imaginer. HP appelle ça un système non-volatile.
  • DonQuiche
    Expert confirmé
    Envoyé par Traroth2
    En gros, ça permet d'avoir du stockage qui va à la même vitesse que la RAM. En d'autres termes, on peut fusionner les deux, avec l'impact algorithmique qu'on peut imaginer. HP appelle ça un système non-volatile.
    Ça permet surtout de faire réaliser des calculs au même endroit que là où tu stockes tes données puisque ces composants peuvent faire les deux. D'ailleurs le cerveau lui aussi réalise calculs et stockage au même endroit, dans une certaine mesure.

    Quant à savoir si ce sera utilisable, c'est autre chose. Les content-adressable memory que j'ai déjà mentionnées sont une cible de choix.