Tout sur ces nouvelles technologies qui accélèrent les serveurs

Le hardware a une place primordiale dans les serveurs et est le principal vecteur de performances. Toutefois, tout ne repose pas seulement sur les épaules du processeur. Les accélérateurs, la RAM, les unités de stockage et même la connectique réseau sont autant de composants qui participent à l’augmentation des performances des serveurs.

Des traitements de plus en plus lourds sont aujourd’hui demandés aux serveurs : prise en charge de dizaines de machines virtuelles ; simulations numériques avancées ; analytique en mode Big Data ; Machine Learning, etc.

Les serveurs équipant les datacenters, comme ceux présents dans les PME, se doivent de monter en gamme afin de supporter cette hausse des workloads. Certes, le monde du logiciel participe à cet effort, avec du code mieux optimisé, des traitements in-memory, ou encore une déduplication des données. Mais le matériel se doit de faire sa part du travail.

De nombreuses technologies permettent aujourd’hui d’accélérer le fonctionnement des serveurs x86, tels ceux que nous trouvons chez HPE. Et pas besoin pour cela d’opter pour des machines spécifiquement dédiées au monde du HPC. Ces bénéfices sont en effet accessibles sur toute la gamme HPE, des ProLiant aux Apollo, en passant par les serveurs Integrity, les solutions lame BladeSystem ou encore les infrastructures composables Synergy.

Les processeurs en ligne de front

Les performances des serveurs passent tout d’abord par leurs processeurs. Tous les Intel Xeon proposés sur le marché sont aujourd’hui compatibles avec le jeu d’instructions x86-64, qui permet de manipuler des nombres entiers plus grands (codés sur 64 bits), mais également de disposer d’un adressage mémoire ‘direct’ dépassant la barrière de 4 Go imposée par les puces 32 bits. Il convient bien entendu de disposer d’un OS et d’applications 64 bits pour tirer la quintessence de ces processeurs. Ce qui est aujourd’hui majoritairement le cas en mode serveur.

Autre point clé permettant d’accélérer les traitements, le nombre de cœurs disponibles et leur fréquence de fonctionnement. Le multicœur s’est invité sur les puces Intel dès 2005, avec les Pentium D. Depuis, beaucoup de chemin a été parcouru, avec une multiplication des cœurs sur les Xeon. Cœurs physiques ou logiques. L’utilisation de l’hyperthreading permet en effet de séparer un cœur physique en deux ensembles logiques distincts. Avec un gain substantiel en performances.

Tout le problème réside toutefois dans une bonne utilisation de cette puissance par les logiciels. Côté 64 bits, pas de souci : c’est aujourd’hui une avancée souvent exploitée par les applicatifs serveurs modernes. Pour le multicœur, tout dépend du degré de multithreading de l’application. Bref, de sa capacité à découper les traitements en plusieurs parties qui fonctionneront en parallèle. En fonction de ce point, il peut être parfois utile d’opter pour un composant offrant moins de cœurs, mais dont chaque unité de calcul pourra fonctionner à une fréquence plus élevée.

Par exemple, le Xeon E5-2699A v4 propose 22 cœurs (44 threads) cadencés à une fréquence nominale de 2,4 GHz (3,6 GHz en pointe). Le tout pour 145 W consommés. Le Xeon E5-2667 v4 ne comprend que 8 cœurs, mais leur fréquence de base se fixe cette fois-ci à 3,2 GHz (et toujours 3,6 GHz en pointe). Les performances par thread seront ici bien supérieures. Autre aspect, le nombre de cœurs par machine peut être boosté en ajoutant d’autres processeurs. Si un Xeon E5-1600 v4 ne peut fonctionner qu’en solo, les Xeon E5-2600 v4 et E5-4600 v4 seront installés sur des configurations comprenant respectivement 2 et 4 sockets.

Autre point à étudier de près, l’accélération hardware de certaines fonctions clés. La plus commune aujourd’hui, c’est la prise en charge matérielle des machines virtuelles. Grâce à cette technologie, les processeurs virtuels peuvent proposer des performances quasi identiques à celles de puces réelles. Une offre connue sous le nom de VT-x chez Intel, et accessible là encore depuis 2005. La firme a depuis ajouté l’accélération des entrées/sorties via la technologie VT-d.

Second secteur accéléré par les Xeon, le chiffrement. Ce dernier est maintenant boosté par les instructions AES-NI et un générateur de nombres aléatoires. Une technique qui n’est toutefois pas toujours exploitée par les logiciels. Un point qu’il faudra donc vérifier au cas par cas, sans quoi cette technologie ne vous sera d’aucun recours.

Les accélérateurs de calcul en renfort

Certains calculs doivent être réalisés un grand nombre de fois. Les instructions SIMD des processeurs (Single instruction multiple data) sont une première étape pour accélérer des calculs appliqués à l’identique sur un large volume d’informations. Par exemple, le SSE d’Intel offre de traiter avec une instruction 4 nombres entiers 32 bits ou 2 flottants 64 bits. Ou toute combinaison de nombres 8-16-32-64 bits pouvant tenir dans les registres 128 bits de cette unité de calcul. Avec l’AVX, Intel va encore plus loin, en proposant des registres de 256 bits, capables donc de traiter 8 nombres flottants 64 bits par instruction ou 16 nombres flottants 32 bits. L’AVX-512 double encore la taille des registres, mais n’est actuellement accessible que sur les Xeon Phi.

Un second mode d’accélération des calculs consiste à passer par des accélérateurs dédiés. Avec ici trois types d’offres en lice : les GPU, des unités de traitement graphique ; les Xeon Phi, boostés par l’AVX-512 ; les FPGA, qui sont aussi rapides que peu flexibles. Point commun entre les trois, une adoption rapide de l’OpenCL, qui permet d’unifier les développements logiciels visant à tirer parti de la puissance de ces solutions.

Les GPU et Xeon Phi sont assez communs dans les offres HPC de HPE, comme les systèmes Apollo. Ou certains ProLiant, tel le XL250a Gen9, qui peut accueillir deux accélérateurs en plus de ses deux puces Xeon. Notez que les GPU intégrés à certains Xeon E3 permettent de disposer d’un accélérateur intégré de bonne tenue. De quoi booster certains traitements (par exemple de l’analytique) sans opter pour des accélérateurs séparés, plus coûteux.

GPU et Xeon Phi utilisent la même technique pour booster les calculs : une multiplication à l’extrême du nombre de cœurs. L’utilisation d’algorithmes adaptés au multithreading massif sera donc requise pour en tirer la quintessence. Chose d’autant plus vraie que la puissance par thread ne sera pas très importante, du fait d’une fréquence de fonctionnement limitée. Prenons l’exemple du Xeon Phi 7290. Il comprend 72 cœurs x86 (288 threads) cadencés à 1,5 GHz (1,7 GHz en pointe). Le tout pour seulement 245 W. Il pourra utiliser un maximum de 384 Go de RAM, avec une bande passante mémoire de 115,2 Go/s. Du lourd. Le support des instructions x86-64 est bien entendu de la partie, tout comme la présence des extensions SIMD AVX-512. Bien exploité, un Xeon Phi 7290 affiche une puissance de calcul de 3,46 téraflops en double précision.

Dernier venu dans le monde des accélérateurs, le FPGA. Ce composant est reconfigurable à la volée, permettant ainsi de se créer une puce sur mesure, où un traitement peut être effectué en hardware. Les FPGA montent en puissance, en particulier dans le secteur du Machine Learning, friand de traitements massifs. Intel nous confie tester des produits intégrant une puce Xeon et un FPGA Arria 10 au sein d’un même package. Plus que les calculs, les FPGA pourront également accélérer les entrées/sorties ou le traitement de paquets réseau.

Mémoire et stockage : toujours plus rapides

La RAM est la mémoire centrale de l’ordinateur. Plus sa vitesse est grande, plus il sera possible d’alimenter le processeur en données à traiter. Et plus sa capacité est importante, moins il sera nécessaire de faire appel à des unités de stockage externes, bien plus lentes.

Dans ce domaine, les progrès sont réguliers. Voici les meilleures puces Xeon E5-2600 proposées par Intel au fil des ans, avec pour chacune le nombre de cœurs, la fréquence nominale et les caractéristiques de la RAM supportée (capacité maximale, type et bande passante) :

– Xeon E5-2690 (lancé Q1 2012) : 8 cœurs, 2,9 GHz, 384 Go de DDR3-1600, 51,2 Go/s ;
– Xeon E5-2697 v2 (Q3 2013) : 12 cœurs, 2,7 GHz, 768 Go de DDR3-1866, 59,7 Go/s ;
– Xeon E5-2699 v3 (Q3 2014) : 18 cœurs, 2,3 GHz, 768 Go de DDR4-2133, 68 Go/s ;
– Xeon E5-2699A v4 (Q4 2016) : 22 cœurs, 2,4 GHz, 1,54 To de DDR4-2400, 76,8 Go/s.

Nous le voyons, Intel accompagne la montée des performances de ses processeurs par de constantes améliorations de leur sous-système mémoire. Et la future DDR5 promet de doubler la bande passante comme la capacité des barrettes de RAM.

L’arrivée de la Persistent Memory de HPE permet aussi d’accélérer les serveurs. Mais dans un autre domaine : celui du temps de démarrage. Ces barrettes de mémoire allient en effet les atouts de la RAM et de la Flash pour proposer de la mémoire non volatile. Dans le cadre d’une base de données in-memory, par exemple, il ne sera plus nécessaire de recharger des gigaoctets d’informations depuis les unités de stockage, ni même de vérifier la consistance de la base de données après incident, puisque les informations stockées en mémoire centrale de l’ordinateur n’auront pas été effacées lors de son redémarrage.

Le stockage a également largement progressé. Fini les débits anémiques de l’ordre de la centaine de mégaoctets par seconde des disques durs. Place aux gigaoctets par seconde ! Cette révolution à un double nom : Flash NAND et NVMe. La mémoire Flash NAND permet des débits extrêmes, avec des taux de latence faibles. La fragmentation des données ou la distance entre deux informations enregistrées sur l’unité de stockage n’ont ici aucune influence sur les performances. Toutefois, les interfaces reliant les disques au serveur ou à la baie de stockage sont souvent le goulet d’étranglement des systèmes full flash. Le SATA 3.0 culmine ainsi à 600 Mo/s, contre 1200 Mo/s pour le SAS 3. Le standard NVMe s’appuie sur l’interface PCI Express des ordinateurs pour proposer des débits culminants à près de 4 Go/s. Il a été rapidement adopté, dans des cartes de stockage PCI Express, mais aussi par les modules M.2 et SATA Express.

Une troisième révolution est en cours dans le monde du stockage avec l’arrivée récente des solutions Optane d’Intel. L’utilisation de mémoire 3D XPoint permet ici de proposer une offre non volatile combinant la vitesse et la latence de la RAM et la haute densité des composants Flash. En témoignent les performances des solutions PCI Express Optane SSD DC P4800X : 2400 Mo/s en lecture, pour 2000 Mo/s en écriture ; jusqu’à 550.000/500.000 opérations d’entrées/sorties par seconde ; des taux de latence de moins de 10 µs. Des performances extrêmes.

Réseau : l’optique surclasse le cuivre

Les réseaux aussi ont évolué. Et cela compte dans les performances d’un serveur. Car après la RAM et l’espace de stockage local, il lui faudra communiquer avec le reste du monde : baies de stockage, autres serveurs, Internet, etc. La norme est le 10 Gb/s sur les connexions cuivre et le 40/100 Gb/s pour les solutions optiques. C’est donc l’optique qui est promise aux meilleures performances. Même si les coûts plus bas du cuivre ne seront pas à négliger. D’autant plus que lui aussi devrait se mettre au 40 Gb/s.

HPE propose des solutions réseau variées, dont des switches 100 Gb/s pour datacenters au sein de la gamme Arista. Le 100 Gb/s est suffisant pour saturer la plupart des serveurs, même au niveau de la RAM. Un bon maillage réseau devrait donc suffire à faire du 100 Gb/s une approche ‘future proof’. C’est à partir de ce débit que travaillent certains acteurs, dont Intel, qui a organisé sa Fabric Omni-Path autour d’interfaces optiques à 100 Gb/s.

Avec un réseau Internet de plus en plus rapide – 5G, WiFi 802.11ac, fibre FFTH –, la pression exercée sur les datacenters et les serveurs va devenir de plus en plus forte. Ils devront donc impérativement proposer une accélération sur toute la chaine : réseau interne, stockage, mémoire, processeur.