Accueil Instrumentación Performances exascale – nous savons ce que nous devons faire

Performances exascale – nous savons ce que nous devons faire

Les spécialistes du traitement haute performance ne connaissent peut-être pas l'histoire de la façon dont Henry Ford, l'inventeur bien connu de l'automobile, a adopté une approche entièrement différente du transport. Cela ressemble à ceci : Ford a reconnu que s'il avait demandé aux propriétaires d'entreprises et aux membres du public comment les transports pouvaient être améliorés, ils auraient répondu "des chevaux plus rapides". Il est clair que les chevaux ont bien fait leur travail, mais leur objectif était limité et à mesure que la demande augmentait, ces limitations devenaient de plus en plus évidentes. Le problème était que les gens ne pouvaient pas voir au-delà de ce qui était déjà là. Bien sûr, il n'était tout simplement pas possible de produire des chevaux toujours plus rapides, donc tous les progrès réalisés en termes de transport auraient stagné. Ford a proposé une solution qui n'essayait pas de respecter l'objectif du statu quo, mais était sur le point de répondre aux exigences actuelles et futures avec quelque chose d'assez nouveau. Involontairement, les développeurs de systèmes demandent depuis de nombreuses années des chevaux plus rapides (exascale). Cependant, si Henry Ford travaillait dans l'informatique aujourd'hui, il vous dirait que le simple fait de demander des performances supérieures ne résoudrait pas les problèmes de calcul exascale.

 

Quels sont donc ces problèmes exactement ? Dans le monde de l'automobile, M. Ford aurait pu prédire la puissance dont les voitures seraient capables ou le fait qu'elles pourraient ajouter le turbo à leurs capacités de puissance. Plus récemment, cependant, il y a eu un changement significatif en termes de pouvoir ; pourquoi avons-nous besoin de ces machines débordantes de moteur, ne pouvons-nous pas faire la même chose (sinon plus) avec moins de puissance ? De même, dans le monde de la puissance de traitement informatique, c'est devenu un gros problème, essayer d'atteindre des vitesses de traitement de plus en plus rapides a eu tendance à signifier utiliser de plus en plus d'énergie, ce qui n'est ni pratique ni bienvenu au 21e siècle. Existe-t-il donc un moyen de réduire le besoin de plus d'énergie dans le traitement exascale ? La reponse courte est oui. Une grande partie de l'énergie consommée par un ordinateur hautes performances implique les interconnexions entre les puces. En d'autres termes, une grande quantité de puissance est nécessaire lorsque des millions de processeurs sont invités à communiquer avec des millions d'autres processeurs. Par conséquent, pour un traitement exascale efficace, le traitement des connexions inter-puces est essentiel. Et pour une meilleure interface, la liste suivante devrait être un must pour tout développeur.

 

 • interopérabilité ; permettant le traitement et l'interconnexion d'appareils de différents fabricants fonctionnant ensemble dans un système unique

 

 • l'intégration; avoir moins de composants sur une carte peut réduire les délais de traitement des données (latence) et la quantité d'énergie requise

 

 • Accès direct à la mémoire à distance (RDMA) – la forme la plus efficace de gestion des messages et de transfert de lecture/écriture • Un schéma de routage qui prend en charge la diffusion, la multidiffusion et plusieurs chemins vers la même destination, le tout avec une latence minimale et une faible puissance

 

 • "goodput" (débit multiplié par la bande passante brute) : la bande passante brute doit correspondre autant que possible au goodput nécessaire

 

 • tolérance aux pannes – plus le système est grand, plus il est susceptible de tomber en panne. Pour contrer cela, l'interconnexion doit prendre en charge plusieurs stratégies de redondance et de tolérance aux pannes.

 

 • logiciel – pour une interconnexion optimale, le logiciel doit prendre en charge différentes topologies et être capable de fonctionner sur des systèmes de différents fournisseurs. Comme le montre la figure, il existe plusieurs protocoles leaders sur le marché qui prétendent offrir bon nombre de ces éléments souhaitables (et dans certains cas essentiels) pour le traitement exascale, mais comment se comparent-ils ? Cependant, PCI Express (PCIe), du côté positif, PCIe offre l'interopérabilité et est intégré dans les composants, ce qui signifie des interconnexions plus économes en énergie. Il permet également la sémantique de lecture/écriture, dispose de mécanismes de contrôle de flux qui garantissent un débit élevé et peut prendre en charge la communication orientée connexion, avec ou sans l'utilisation de moteurs d'accès direct à la mémoire. Cependant, PCIe n'offre pas une bonne prise en charge de la messagerie, donc la communication sans connexion entre les processeurs intelligents est un problème, et le protocole est limité dans les topologies qu'il peut prendre en charge, en particulier les topologies hypercube et toroïdales 3D. De plus, PCIe ne tolère pas les erreurs, ne prend pas en charge la multidiffusion pour les écritures et ne peut pas être utilisé pour la cohérence du cache entre les processeurs. Enfin, bien que le goodput soit élevé, ce n'est pas le meilleur possible.

 

Tout compte fait, PCIe est une option risquée pour le traitement haute performance dans les grands systèmes. ethernet; la nature ouverte d'Ethernet et le fait qu'il soit le fondement d'Internet, qui est sans doute la plus grande interconnexion au monde, laisseraient penser qu'il se prêterait parfaitement à un traitement haute performance. Parce qu'il a été intégré dans un nombre important d'appareils, Ethernet permet à un concepteur de système de mélanger et assortir. Il est également facile à utiliser, offre une messagerie extrêmement tolérante aux pannes et prend en charge une large gamme de protocoles. Dans la technologie conçue pour une utilisation grand public, Ethernet est le mieux adapté aux connexions et aux réseaux à faible bande passante et à forte latence, ce qui le rend inadapté au traitement exascale, qui exige un débit maximal, une bande à grande largeur et une faible latence. De plus, les réseaux Ethernet ne peuvent pas garantir la livraison des transactions ou les livrer dans l'ordre, et le bon débit est bien inférieur à la quantité de bande passante brute disponible. Infiniband, l'interconnexion de choix dans 50% des meilleurs supercalculateurs du monde, Infiniband pourrait sembler offrir un potentiel exascale significatif. Il utilise un logiciel de support disponible gratuitement, a une latence de pointe et permet un haut niveau de performances pour une variété d'applications. Capable de fonctionner avec n'importe quelle topologie de réseau, Infiniband prend en charge la messagerie et la sémantique de lecture/écriture, rend possible le RDMA, dispose d'excellentes options de bande passante haut de gamme (14 Gbit/s) et peut fournir un débit élevé. Cependant, Infiniband a des limites importantes qui affectent son efficacité et son évolutivité. La technologie du protocole utilise des périphériques d'interface réseau externes qui se connectent aux processeurs utilisant PCIe, ce qui le rend beaucoup moins efficace que les alternatives intégrées (réduire la latence est difficile). Et comme PCIe ne prend pas en charge la sémantique de cohérence du cache, il n'est pas possible d'augmenter la taille des cœurs à l'aide d'Infiniband. De plus, encore une fois, les paquets peuvent ne pas être livrés dans l'ordre et le protocole a besoin d'une quantité importante de puissance pour traiter les transactions. Enfin, Infiniband possède de nombreuses fonctionnalités limitées de la technologie d'interconnexion propriétaire mentionnée ci-dessous. RapidIO - Ce protocole offre la meilleure promesse d'interconnexion ouverte. Utilisé dans les smartphones 4G et les applications satellites, RapidIO est conçu pour les situations où il existe des contraintes de puissance et de taille. Il utilise également une technologie interopérable, est intégré à de nombreux appareils de divers fournisseurs de processeurs, offre une communication à faible latence, à large bande passante et économe en énergie et assure la livraison des paquets dans l'ordre. RapidIO prend en charge le routage multicast et broadcast dans n'importe quelle topologie, ainsi que la cohérence du cache et la sémantique de lecture/écriture. Il utilise également des communications de type RDMA et assure un débit élevé et une excellente tolérance aux pannes. Cependant, même RapidIO n'est pas sans défauts, notamment le fait que l'écosystème est trop lent. En termes de bande passante haut de gamme et de débit maximal pouvant être atteint, le protocole est à la traîne par rapport aux autres interconnexions. Il ne dispose pas non plus du meilleur logiciel pour le traitement exascale et le support logiciel est remarquablement faible, bien que des travaux soient en cours pour changer cela. Solutions propriétaires Il existe des problèmes courants liés aux systèmes propriétaires, tels qu'un manque d'interopérabilité et de prise en charge de différentes topologies de système. Bien que les solutions intégrées puissent fournir une efficacité énergétique élevée et une bande passante haut de gamme, il est difficile d'évaluer avec précision leur qualité, en particulier lorsque les utilisateurs doivent connecter des applications à des interfaces propriétaires. D'autre part, les solutions propriétaires ne peuvent généralement pas innover assez vite pour couvrir toutes les applications. Pour conclure, il est largement admis que la croissance du traitement haute performance sera stimulée par l'évolution des moteurs d'accélération, des logiciels et des technologies d'interconnexion ouvertes. Mais la bonne technologie d'interconnexion n'existe tout simplement pas pour le moment, ce qui signifie que le traitement exascale reste terriblement hors de portée. La bonne nouvelle est que toute personne intéressée par le développement d'une solution sait ce qui doit être fait et sait qu'avoir des chevaux plus rapides n'est pas une option viable.