Puissance : la loi de Moore dépassée ?
Depuis des décennies, la puissance des processeurs informatiques ne cesse de croître. Gordon Moore, un des créateurs d’Intel, a modélisé en 1975 cette augmentation continue dans ce qui est connu depuis comme la « loi de Moore». La nouvelle génération des processeurs Intel® de la famille Itanium® 2, souvent décrits sous leur nom de code « Montecito », du nom d’un petit bourg de 10 000 personnes dans le comté de Santa Barbara en Californie, ne déroge pas à la règle.
L’augmentation continue de la puissance des processeurs repose sur l’évolution, elle aussi continue, de la technologie des semi-conducteurs vers des gravures de plus en plus fines. Les versions actuelles des processeurs Itanium® 2 utilisent une technologie dont la dimension caractéristique, la largeur de grille du transistor de base, est de 130 nm (1 nanomètre = 10-9 mètre).
Montecito utilise une technologie 90 nm, le transistor de base est donc 30% plus petit.
Les approches innovantes de Montecito
Le Multi-core et le Multi-threading dans les processeurs Intel® Itanium® 2
Pendant longtemps cette évolution technologique a été traduite en performances additionnelles par l’accélération de la fréquence de fonctionnement et simultanément par l’enrichissement des algorithmes internes des processeurs (prévision de branchement, mécanismes de cache à plusieurs niveaux, exécution des instructions hors séquence).
Sans que ces approches ne soient abandonnées, la quantité de portes de logique et de points-mémoire qu’il est maintenant possible de loger dans une puce ouvre la voie à de nouvelles innovations que Montecito met en jeu :
• Le « Multi-Core » (Multi cœur), c'est-à-dire la présence de plusieurs processeurs complets sur une seule puce. Montecito comporte deux cœurs (« dual core ») – un premier pas – car dans un avenir assez proche, les processeurs auront quatre cœurs ou même davantage.
• Le « Multi-threading » (Multi-flux d’instructions), c'est-à-dire la possibilité pour un cœur d’exécuter en même temps plusieurs flux d’instructions indépendants. Pendant un cycle, un cœur travaille pour un seul flux d’instructions, mais comme il comporte deux jeux complets de registres de contexte, il peut très rapidement basculer sur un deuxième flux d’instructions.
Chaque cœur d’un Montecito peut ainsi prendre en compte deux flux d’instructions (« threads »). Ce mécanisme tend à maximiser l’utilisation de toutes les unités du cœur. Dès qu’un flux d’instructions doit être mis en attente d’un événement, par exemple pour accéder à une information qui n’est pas immédiatement disponible, le cœur reprend l’exécution de l’autre flux d’instructions.
Ces deux mécanismes, présents simultanément dans Montecito, nécessitent une adaptation du vocabulaire habituellement employé. Traditionnellement, trois concepts étaient confondus : une puce contenait un processeur qui était capable d’exécuter un flux d’instructions.
Avec Montecito il faut distinguer ces trois concepts : une puce (dans son boîtier) est reliée à la carte électronique par un connecteur (« socket »), elle contient deux cœurs (« cores »), chacun d’entre eux se comportant pour les logiciels comme deux processeurs logiques (« logical processors » ou « threads ») indépendants.
Un serveur NovaScale 5245 qui a 24 sockets, devient ainsi potentiellement, lorsque tous les sockets sont équipés, un serveur multiprocesseur de 96 processeurs logiques (24 sockets x 2 cœurs x 2 processeurs logiques).
Cette explosion du nombre des processeurs se traduit pleinement en performances utiles pour l’utilisateur lorsque les logiciels les mettent en œuvre efficacement. La plupart des logiciels serveur sont déjà conçus dans cette perspective, en particulier les logiciels de gestion de base de données, de serveur Web ou de calcul haute performance. Des progrès vont continuer à apparaître.
Le « Fall Processor Forum » s’est tenu en octobre 2005 à San José en Californie sur le thème « The Road to MultiCore ». Ce rendez-vous annuel de la conception hardware a été ouvert par Herb Sutter de MicroSoft. Sous le titre « Software and the Concurrency Revolution », il a décrit comment cette évolution technologique remet en cause le paradigme « threads and locks » (flux parallèles protégés par des verrous) sur lequel la plupart des applications logicielles s’appuient aujourd’hui pour gérer le parallélisme de plusieurs flux d’instructions.
24 Mo de cache et la technologie Pellston
C’est aussi grâce aux progrès technologiques que Montecito propose l’augmentation de la taille des caches dans la puce, jusqu’au volume impressionnant de 12 Mo pour le cache de niveau 3 (« L3 cache ») de chaque cœur. A titre de comparaison, la taille maximale équivalente dans les processeurs Itanium® 2 actuels est de 9 Mo, une augmentation supérieure à 30 %.
 |
Ces caches permettent que les accès à la mémoire soient souvent en temps masqué. Les améliorations de performance qu’ils procurent varient selon les caractéristiques des applications.
Les deux caches de 12 Mo occupent une large proportion de la surface de silicium de la puce Montecito. Un défaut éventuel du silicium, voire l’effet d’un rayonnement alpha peut être sensible. Pour garantir à coup sûr l’intégrité absolue des données, Intel a développé une technologie spécifique, appelée la technologie Pellston.
|
La technologie Pellston permet d’invalider une ligne de cache en erreur (une ligne de cache de Montecito contient 128 octets). Pendant l’initialisation, le BIOS teste toutes les lignes des caches et invalide celles qui présentent un défaut. De plus, si une erreur est détectée dynamiquement, l’algorithme Pellston est capable de tester la ligne en cause et de discriminer une erreur transitoire d’une erreur solide.
Des accès mémoire accélérés
Autre évolution importante, l’accélération des échanges entre les cœurs de Montecito et la mémoire. Ces échanges se font à travers un bus système, le Front Side Bus (FSB). Les processeurs Itanium® 2 actuels communiquent avec un FSB cadencé à 400 MHz (un échange toutes les 2,5 ns). Montecito permet des échanges avec des FSB cadencés à 533 MHz, voir ultérieurement à 667 MHz.
Les lois de l’électricité réservent l’utilisation de ces vitesses aux configurations dans lesquelles le FSB relie au maximum trois éléments ; il est alors dit à 3 charges (« 3 loads »). Il faut aussi que la puce qui contrôle la mémoire sache utiliser ces fréquences nouvelles.
Une dissipation thermique maîtrisée
Ces évolutions, tout en permettant l’augmentation de la puissance de calcul des processeurs, tendent à faire croître la puissance électrique consommée ainsi que la dissipation thermique qui l’accompagne. L’enveloppe thermique des processeurs Itanium® 2 est de 130W. C’est sur cette spécification que les mécanismes de refroidissement des serveurs sont conçus.
Par différentes techniques, les ingénieurs d’Intel ont réussit à limiter à 100W la dissipation thermique de chaque puce Montecito (avec 2 cœurs, 4 threads et 24 Mo de cache). C’est une amélioration technologique significative par rapport aux processeurs Itanium® 2 précédents qui étaient proches de 130W.
NovaScale® : des serveurs qui exploitent toutes les innovations de Montecito
Les nouveaux serveurs NovaScale intègrent les processeurs Montecito.
L’une des caractéristiques des NovaScale 3005, serveurs bi- et quadri-sockets récemment annoncés, est l’utilisation possible de FSB grande vitesse, particulièrement intéressante pour des applications de calcul scientifique haute performance (High Performance Computing) gourmandes en débit mémoire.
La nouvelle gamme de moyens et grands serveurs NovaScale 5005, modulaires de 8 à 32 sockets, a été conçue autour d’une nouvelle version du FAME Scalability Switch (FSS), développée par Bull spécifiquement pour l’utilisation optimum de Montecito et de son successeur Montvale.
Chaque tiroir NovaScale comporte 2 FSS. Cette puce, de 18,3 mm x 18,3 mm en technologie 180 nm, communique via quatre Scalability Port (SP : liens série bidirectionnel à 0,8 GHz) avec les autres éléments du même tiroir. Elle communique aussi via deux eXtended Scalability Port (XSP : liens séries à 2,5 GHz) vers deux autres tiroirs NovaScale 5005. Quatre tiroirs sont ainsi connectables « en anneau » pour constituer un serveur de 32 sockets.
La puce FSS contient un « Directory » qui limite le nombre des requêtes circulant entre les différents éléments du serveur, limitation indispensable à l’efficacité des grands serveurs. Le « Directory » d’une puce FSS nouvelle est capable de prendre en compte le contenu des caches de l’ensemble des cœurs qui lui sont connectés et ce jusqu’à 13 Mo de cache par cœur.
Une coopération étroite avec Intel.
Pendant toute la durée du projet Montecito, les ingénieurs de Bull ont travaillé en étroite coopération avec ceux d’Intel.
Fin 2004, les premiers exemplaires de Montecito en version « stepping A » étaient reçus dans nos laboratoires des Clayes-sous-Bois et testés sur des serveurs NovaScale. Faut-il préciser que toutes les fonctions décrites ici n’étaient pas encore opérationnelles dans cette version prototype ? Mais cela nous a permis de mener à bien les premières expérimentations et de tester les adaptations du BIOS et des outils d’administration des serveurs NovaScale, en particulier pour la mise en oeuvre du Multi-Core et du Multi-Thread. Ces tests se sont poursuivis en 2005.
Mais c’est la réalisation en vraie grandeur du supercalculateur TERA-10 livré au CEA en décembre 2005, avec plusieurs milliers de puces Montecito installées et en opération, qui a apporté la preuve que les offres matérielles et logicielles NovaScale étaient prêtes pour une utilisation optimum de Montecito.