L’Europe se lance dans la conception de ses propres processeurs

L’Union européenne est bien lancée dans la course aux superordinateurs dont la puissance dépasse un exaflops, c’est-à-dire une dizaine de fois plus puissants que les meilleurs actuels, dans le cadre de H2020. Pour y arriver, simplement mettre à l’échelle les architectures actuelles ne suffira pas : la consommation énergétique de ces machines est trop importante, il n’est pas question de construire plusieurs centrales nucléaires par supercalculateur. C’est pourquoi l’Union européenne a lancé un programme pour se doter de telles machines, en finançant les programmes de recherche nécessaires. Les résultats sont déjà là, avec un premier superordinateur déjà déployé pour tester les résultats de recherche obtenus. In fine, l’objectif est d’atteindre des machines, vers 2022, qui consomment entre vingt et trente mégawatts, maximum quarante (machines et refroidissement inclus), avec un coût entre quatre cent et six cent millions d’euros l’unité.

Le consortium EPI (European processor initiative) complémente le premier programme. Lancé en mars dernier, son objectif est d’arriver à construire un superordinateur complètement européen, pour l’entièreté de ses composants et logiciels. La pièce manquante principale est le processeur de calcul, pièce maîtresse s’il en est.

Au vu de l’évolution géopolitique, ce programme n’est pas isolationniste : la plupart des supercalculateurs utilisent aujourd’hui des processeurs AMD, Cavium, Intel ou encore NVIDIA — uniquement des sociétés américaine. La Chine s’est aussi lancée dans le même genre de programme, avec Tianhe-2, suite au refus du gouvernement des États-Unis de leur fournir les puces nécessaires. L’Europe n’est pas à l’abri d’un tel camouflet, surtout avec les relations actuellement tendues. Le Japon, historiquement, n’utilise que des puces développées “en interne” et cette tradition se perpétuera avec le Post-K.

Les choix techniques sont loin d’être posés, vu l’âge du projet. Cependant, deux architectures ressortent du lot : RISC-V, complètement libre ; ARM, entièrement commerciale (et, accessoirement, anglais). Réaliser des processeurs x86 n’aurait pas beaucoup de sens, vu qu’il n’existe pas de programme de licence — contrairement à ARM, puisque les développeurs de l’architecture conçoivent certains cœurs, mais n’en fabriquent pas : ils n’ont pas d’autre choix que d’offrir un programme de licence. De plus, le fabricant français de superordinateurs Atos a une certaine expérience avec l’architecture ARM, de par son projet Mont Blanc par exemple. OpenPOWER serait un candidat raisonnable, au vu de sa licence, mais aucune entreprise ne s’est risquée à un développement dans un cadre HPC en Europe.

Deux types de processeurs seront développés : l’un plutôt pour les superordinateurs (assez générique), l’autre aussi pour les voitures (pour accélérer plus spécifiquement certaines opérations, comme l’inférence dans les réseaux neuronaux). Ils n’utiliseront pas forcément la même architecture (on pourrait voir le premier en ARM et le second en RISC-V), mais seront développés en parallèle pour réduire les coûts. Les machines déployées utiliseront une architecture modulaire, chaque partie étant spécialisée dans un type de calcul.

Le projet prévoit d’aller vite : la première génération de puces devrait être prête vers 2020-2021, avec les premiers systèmes (qui n’atteindront probablement pas l’exaflops) entre 2021 et 2022. La deuxième génération pourrait arriver deux ans plus tard, vers 2022-2023, des machines d’un exaflops devant arriver dès la fin 2023. Pendant ce temps, les processeurs pour l’automobile devraient être disponibles comme prototypes dès la fin 2021 et comme produits finis dès la fin 2024.

Le projet sera financé à hauteur de cent vingt millions d’euros par les pouvoirs publics, vingt-trois partenaires industriels et chercheurs investiront aussi leurs moyens. On compte notamment Atos (assembleur de machines), BSC, CEA, Jülich Supercomputing Centre (trois centres de recherche hébergeant des superordinateurs) et STMicroelectronics (fabricant de semiconducteurs),

Sources : European Program to Develop Supercomputing Chips Begins to Take Shape, European Processor Initiative: consortium to develop Europe’s microprocessors for future supercomputers.

Advertisements

JUWELS : l’Allemagne se dote d’un nouveau superordinateur

Le nouveau supercalculateur allemand, JUWELS (Jülich wizard for European leadership science), vient d’être lancé, il exécute pour le moment l’une des quatre-vingt-sept tâches qui ont été acceptées : il sera entièrement occupé à ces tâches pour les mois qui viennent, ce qui est un taux de remplissage très élevé.

JUWELS atteint “à peine” 6,18 Pflops (selon le test Linpack), mais est le supercalculateur allemand le plus puissant à ce jour. Il se classe à la vingt-troisième position du classement des superordinateurs, juste derrière l’Espagne. Sa particularité, cependant, est d’être issu d’un projet de recherche européen, DEEP (dynamical exascale entry platform). Il a été développé en collaboration avec Atos (France, pour le matériel) et ParTec (Allemagne, pour le logiciel) avec une architecture modulaire. L’objectif est de prévoir des machines à l’échelle de l’exaflops, tout en restant dans des limites budgétaires et énergétiques acceptables.

La partie qui vient d’être inaugurée est le premier “module”, de type grappe de calcul. Il s’agit de deux mille cinq cent septante-cinq nœuds de calcul, chacun disposant d’un processeur Intel Xeon de génération Skylake à vingt-quatre cœurs (une machine Atos Bull Sequana X1000). Quarante-huit nœuds disposent de cartes graphiques, à raison de quatre NVIDIA V100 par nœud, plus quatre nœuds dédiés à la visualisation, avec une carte NVIDIA P100 chacune. Ces machines sont reliées par un réseau Mellanox EDR InfiniBand. L’un des points forts de cette machine Atos est son refroidissement à eau tiède, qui limite les besoins en générateurs de froid : cette différence fait que JUWELS consomme bien moins d’énergie que son prédécesseur, JUQUEEN.

Ce premier module est prévu pour des tâches HPC traditionnelles, qui fonctionnent par mise à l’échelle horizontale (scale out). Ainsi, il peut accueillir tant des tâches à exécuter en série (sans parallélisme), en parallèle sur une machine (mémoire partagée) ou sur plusieurs machines (échange de messages). Le deuxième module sera plus spécifique : l’amplificateur sera prévu pour des algorithmes massivement parallèles (même si chaque cœur n’a pas une grande puissance de calcul — ce qui permet de réduire la consommation énergétique, par exemple). À l’origine, cette deuxième tranche devait utiliser les processeurs Intel Xeon Phi, mais la prochaine génération ne verra jamais le jour.

Pour exploiter au mieux la performance de ces futures différentes parties du supercalculateur, ParTec a développé ParaStation, qui analyse le code à exécuter et l’envoie sur le matériel le plus approprié. Ainsi, les parties les plus complexes du code seront exécutées sur la grappe de calcul (actuellement déployée), tandis que la partie la plus parallèle bénéficiera de l’amplificateur.

Source : JUWELS Becomes Germany’s Most Powerful Supercomputer, Fast and Innovative: Jülich Supercomputer is a New Development from Europe.

Selon une analyse détaillée, les processeurs ARM ont un futur prometteur pour le HPC

À l’instar de l’Espagne, le Royaume-Uni s’est lancé dans l’analyse de plusieurs types de processeurs pour ses futurs superordinateurs. Notamment, Isambard (un superordinateur en cours de construction) utilisera uniquement des puces ARM, des Cavium ThunderX2 précisément, afin d’évaluer cette technologie. Ce choix n’est pas dénué de sens : l’architecture ARM est très utilisée dans le monde de l’embarqué (notamment pour les téléphones portables) pour sa bonne performance avec une efficacité énergétique très haute. Le Japon ne s’y est pas trompé, son prochain superordinateur l’exploitera.

Isambard est une machine de dix mille processeurs ARM (moins puissante qu’Astra, récemment déployée aux États-Unis). Son exploitant, GW4 (un rassemblement de quatre universités anglaises), l’a comparée aux supercalculateurs existants sur différentes mesures. Leurs résultats montrent que, en termes de puissance brute, l’architecture ARM n’est pas la plus compétitive, mais qu’elle pourrait se tailler une part de marché importante. Trois processeurs sont en lice :  Cavium ThunderX2 (ARM, trente-deux cœurs), Intel Xeon Broadwell (x86, vingt-deux cœurs) et Intel Xeon Skylake (x86, vingt-huit cœurs).

La comparaison indique, sans surprise, que les processeurs d’Intel sont bien meilleurs quand il s’agit d’effectuer des opérations en virgule flottante. Notamment, la génération Skylake propose les instructions AVX2, qui peuvent travailler sur des vecteurs de cinq cent douze bits d’un seul coup : côté ARM, cette longueur est limitée à cent vingt-huit bits (deux nombres en virgule flottante avec une double précision, la plus utilisée en calcul scientifique).

Au contraire, les processeurs Intel sont déficients du côté de la mémoire : la bande passante du ThunderX2 est presque vingt-cinq pour cent supérieure à celle de la génération Skylake. De fait, le ThunderX2 dispose de huit canaux d’accès à la mémoire (six côté Skylake). Les caches sont souvent à l’avantage des processeurs Intel. Ceci signifie que ces derniers sont préférables pour tous les codes de calcul extrêmement intenses en opérations en virgule flottante (idéalement, toutes les données pouvant tenir dans les caches), mais pas en opérations mémoire, où le ThunderX2 brille bien plus.

Un autre avantage des processeurs ARM est leur prix. Bien que celui des processeurs utilisés pour Isambard n’a pas été dévoilé, il a été décrit comme “réduit d’un facteur deux à trois”. Le rapport performance-prix est donc bien plus intéressant — un facteur qui sera privilégié par certains acteurs de moindre taille.

La conclusion principale de cette analyse est que les processeurs ARM ont toute leur place dans les infrastructures HPC modernes, selon les cas d’utilisation prévus. Il est illusoire d’espérer obtenir une puce parfaite, capable d’effectuer un très grand nombre d’opérations par seconde et de disposer d’un très grand nombre de canaux d’accès à la mémoire, puisque le nombre de transistors est limité par processeur (à moins d’augmenter fortement la quantité de silicium qui est utilisée, ce qui ferait grimper fortement les prix).

Source : Benchmarks in Hand, UK Academics See Promising Future for Arm Chips in HPC.

Intel serait-il incapable de produire ses puces assez vite pour ses clients ?

Intel est l’un des plus grands fabricants de semi-conducteurs au monde, étant au cœur de l’extrêmement grande majorité des ordinateurs actuels. Connu pour son avance sur les processus de fabrication de processeurs depuis des dizaines d’années, la société perd sa position dominante sur le secteur : sa technologie en 10 nm devait voir le jour en 2015-2016, elle ne sera utilisée en volume qu’au début 2019 (certains processeurs l’utilisent déjà, mais le taux de rebut est trop important pour de grands volumes). Pendant ce temps, la concurrence n’attend pas : TSMC a déjà lancé la production de son processus en 7 nm (équivalent, d’un point de vue technique, au 10 nm d’Intel).

Sauf qu’Intel avait prévu que le développement de son 10 nm se passerait comme prévu. Ou pas trop loin. Conséquence : Intel sort plus de modèles de processeur exploitant son processus actuel, le 14 nm ou une de ses nombreuses variantes. Les nouveaux modèles ont plus de cœurs et sont donc plus gros : pour la même quantité de silicium, on fait donc moins de processeurs. Ainsi, la demande continue d’être forte, alors qu’Intel est en cours de transition vers le 10 nm (et prévoyait peut-être de faire passer certaines de ses usines 14 nm en 10 nm).

Il semblerait que cela crée quelques problèmes au niveau de l’approvisionnement : Intel n’a pas pu livrer toutes les puces H310 (des PCH, qui gèrent l’interconnexion entre le processeur et les périphériques) à peine un mois après son lancement. Intel n’avait tout simplement pas assez de capacité de production pour la demande… Il aura fallu quelques mois à Intel pour résoudre le problème.

De même, le Z390 (également un PCH) pourrait ne pas voir le jour sous la forme souhaitée, il pourrait n’être que la gamme inférieure (Z370) sous un autre nom. La différence est importante : le Z370 est fabriqué avec un processus encore plus vieux, le 22 nm… ce qui libère de la place pour de la production en 14 nm. Le changement de processus de fabrication n’a pas tellement d’impact sur ce type de puce, d’où la relative possibilité d’intervertir les processus.

La réponse actuelle d’Intel est assez simple, il s’agit d’augmenter les capacités de production en 14 nm. Les besoins en processeurs 14 nm se poursuivront probablement pendant encore une bonne partie de 2019 et ces capacités serviront de toute façon après la transition vers le 10 nm : certaines puces n’ont pas besoin de processus très avancés (comme les PCH ou certaines formes de mémoire), d’autres produits ont des durées de vie assez importantes (FPGA, par exemple) ou ont des besoins qui ne seront pas forcément rencontrés aux débuts du 10 nm (les puces qui consomment énormément d’énergie, notamment), des clients d’Intel Custom Foundry pourraient être plus intéressés par du 14 nm que du 10 nm.

Source : Intel Can’t Crank Chips Out Fast Enough.

Mémoire HBM : la demande dépasse très largement les capacités de production actuelle

La mémoire HBM2 (high-bandwidth memory) a de grands avantages par rapport aux solutions habituelles pour la mémoire vive comme la DDR : la consommation électrique est largement inférieure (avec une tension d’alimentation de 1,2 V, comme la DDR4), la bande passante est incomparable (256 Go/s, que Samsung a pu porter à 307 Go/s, par rapport aux 25 Go/s de la DDR4). Ces caractéristiques ont fait que ce type de mémoire a très vite été adopté par ceux qui ont de grands besoins en performance : les cartes graphiques très haut de gamme (NVIDIA Tesla, AMD Radeon Instinct), les FPGA et d’autres accélérateurs (comme feu les Intel Xeon Phi), les routeurs utilisés pour l’infrastructure Internet, etc.

Si ce type de mémoire n’est pas tellement utilisé pour le grand public, c’est notamment à cause d’une fabrication plus compliquée que pour la DDR  (les puces HBM doivent être positionnées dans le même boîtier que le processeur, à une distance de quelques millimètres), mais aussi à cause de leur prix (dû à une faible production). Samsung vient d’ailleurs d’annoncer ses prédictions de demande : même si tous les fabricant de HBM2 doublaient leur production, ils seraient incapables de répondre à la demande… actuelle. Pendant ce temps, bon nombre de sociétés réfléchissent à de nouveaux produits qui bénéficieraient très largement des capacités améliorées de cette mémoire.

Pourtant, Samsung ne peut pas vraiment augmenter sa production de HBM2. En effet, le même équipement est utilisé pour produire les autres types de mémoire de la compagnie (la famille DDR), dont la demande est extrêmement haute et, en volume, largement supérieure (tous les téléphones utilisent de la mémoire DDR). Les machines ne pouvant pas produire plus que leur capacité, Samsung et les autres fabricants de mémoire de disposent pas de grandes marges de manœuvre.

Néanmoins, la HBM2 a une certaine concurrence : la GDDR6. Avec une consommation supérieure (une tension d’alimentation de 1,35 V), cette technologie peut monter à une bande passante de 576 Go/s. Les premières puces de mémoire GDDR6 ne sont pas encore sur le marché, mais cela devrait être le cas avant la fin de l’année. Au vu de ses avantages (performance similaire à HBM2, prix inférieur, disponibilité plus grande), il semblerait qu’AMD ait décidé pour sa prochaine génération de cartes graphiques (Navi) d’utiliser la GDDR6 au lieu de la HBM2. Un autre facteur qui n’incite pas forcément à investir en masse dans la mémoire HBM2 est que son successeur, HBM3, est au coin de la rue.

Source : Samsung could double HBM2 memory production and still not meet demand.

Interact.jl, la nouvelle manière de réaliser des sites Web interactifs pour accéder à des codes de calcul

Julia est un langage de programmation principalement prévu pour des applications scientifiques, où la quantité de calculs à effectuer est très importante. D’habitude, ce genre de code s’écrit dans un langage assez statique, comme C, C++ ou Fortran, pour profiter de leur performance ; cependant, Julia se focalise sur une approche plus dynamique (comme Python ou MATLAB, plus prévus pour les interfaces que le calcul intensif) tout en gardant la performance à l’exécution. Julia arrive à rassembler ces deux côtés, la performance et la dynamicité.

Cet aspect dynamique a déjà été exploité pour créer des interfaces graphiques par le Web qui exploitent des codes de calcul. Par exemple, Escher.jl proposait de créer des interfaces composables, développées d’une manière similaire à Shiny en R. Ce paquet n’est plus maintenu depuis 2016 et n’a de remplaçant digne de ce nom que depuis peu, avec Interact.jl nouvelle génération (ce projet s’appelait InteractBase.jl jusqu’il y a peu avant d’être renommé et de remplacer l’ancien Interact.jl).

Ce nouveau paquet propose de créer des interfaces graphiques sur le Web pour des applications scientifiques. Il se construit par-dessus WebIO.jl, une couche d’abstraction pour l’interaction à travers les protocoles du Web : on peut ainsi développer un seul code pour l’utiliser dans un navigateur Web traditionnel (à travers le serveur Mux.jl), dans une application de bureau créée avec Electron (grâce à Blink.jl) ou encore dans Juno, l’environnement de développement de référence actuel pour Julia, ou IJulia.

Interact.jl utilise HTML5 et ses composants pour ses widgets, ce qui permet de couvrir facilement un grand nombre de fonctionnalités (sélection de couleur, de date, d’heure, de texte, etc.). Des frameworks CSS sont utilisés pour le style, qui est alors entièrement abstrait du code de l’interface : pour le moment, on peut utiliser Bulma et UIkit, mais aussi utiliser d’autres frameworks (UIkit a été ajouté en moins de deux cents lignes de code) ou encore intégrer son propre code CSS pour modifier un framework existant. Vue.js/.jl est utilisé pour la logique JavaScript et la synchronisation avec le script Julia.

Voir aussi : le tutoriel officiel, la liste des widgets disponibles, la documentation.

Sources : ANN: InteractBase, a redesign of Interact to create and style web apps in Julia, Sputnik project, second update.

Qt et AVX-2

Clear Linux est la distribution Linux éditée par Intel dans l’objectif de fournir, de base, une performance maximale. Pour ce faire, ses développeurs tendent souvent à compiler les applications en exploitant au maximum les jeux d’instructions des processeurs les plus récents — un gain de performance intéressant au prix d’une compatibilité des binaires fournis réduite aux processeurs plus récents. Pour toujours s’adresser à un public large, les applications sont toujours compilées pour des processeurs plus anciens : la détection des instructions disponibles se fait à l’installation de la distribution, les binaires les plus performants en restant compatibles étant toujours téléchargés.

Pour le moment, les développeurs s’intéressent au cas de Qt, afin d’activer les instructions AVX-2. Celles-ci sont disponibles sur tous les processeurs Intel depuis 2014 et AMD depuis 2015. Ces instructions servent à effectuer la même opération sur une grande quantité de données simultanément, ce qui est notamment utile pour les applications 3D (comme Qt 3D). Les opérations sur les chaînes de caractères pourraient aussi, par exemple, en profiter.

La difficulté avec Qt est l’intégration d’un système de compilation particulier, qmake, qui installe ses fichiers sans respecter les conventions de nommage spécifiques à Clear Linux (une extension aux fichiers .so indique le jeu d’extensions). Après discussions sur la liste de diffusion, il semblerait que la solution soit déjà implémentée et prête à être utilisée. Reste alors à voir les gains de performance effectifs avec une modification aussi simple.