Supercalculateurs: tout sur ces machines inconnues

Mare Nostrum à Barcelone, Espagne

Je pense aujourd'hui on ne peut pas parler de supercalcul sans le relier à Linux, et est-ce que, malgré le fait que Linux a été conçu au départ pour être le secteur des ordinateurs personnels, on peut dire qu'il a dominé tous les secteurs sauf que comme nous le verrons plus tard avec quelques statistiques intéressantes. De plus, c'est un secteur dans lequel il n'y a pas beaucoup d'informations publiées en espagnol qui soient accessibles à tous.

Par contre, j'ai pu vérifier que le monde des supercalculateurs ou des intérêts de supercalcul, mais en général, il est assez inconnu de nombreux utilisateurs. C'est pourquoi j'ai pris le temps de créer et publier ce méga article sur les supercalculateurs qui, je l'espère, vous apprendra beaucoup tous les secrets de ce "mystérieux", et que lorsque vous aurez fini de lire tout ce texte, il n'aura plus de secrets pour toi ...

Plus qu'un article ou un méga post, ce sera une sorte de Wiki théorique-pratique sur le calcul intensif que vous pouvez consulter à tout moment. C'est le but, que cet article de LxA soit un tournant, un avant et un après. Je obtiendrai? Regardons ça ...

Introduction au calcul intensif

Supercalculateur et administrateur système

Pour être clair dès le début, les ordinateurs que nous avons dans nos maisons sont parmi les plus puissants qui existent. Ce que je veux dire par là, c'est qu'il n'y a pas de microprocesseur beaucoup plus puissant que ceux que nous utilisons au quotidien. La clé des supercalculateurs ne réside pas dans des microprocesseurs ultra-puissants ou des composants très exotiques et différents de ceux que nous utilisons quotidiennement dans nos maisons, la clé du calcul intensif est le parallélisme.

Laissez-moi vous expliquer, les banques de mémoire RAM, les disques durs, les microprocesseurs, les cartes mères, etc. d'un supercalculateur sont probablement plus similaires que vous ne l'imaginez à ceux que vous utilisez actuellement ou que vous avez à la maison. Ce n'est que dans le cas des supercalculateurs qu'ils sont regroupés en centaines ou en milliers pour additionner la puissance de chacun de ces "ordinateurs" indépendants et ainsi composer une excellente machine qui fonctionne comme un système unique.

Je parle du traitement en parallèle, Oui. Un paradigme qui permet de créer des supercalculateurs ou ce que nous appelons HPC (High-Performance Computing) ou calcul haute performance. Ce que je veux dire, c'est que si vous avez un AMD Ryzen 7 à la maison, avec 16 Go de RAM, une carte réseau et un disque dur de 8 To, ... imaginez ce qui se passerait si vous le multipliiez par 1000 et le faisiez fonctionner comme s’ils n’étaient qu’un PC. Ce serait 1000 Ryzen fonctionnant en parallèle, 16 To de RAM et 8 Po de stockage. Wow !! Cela commence déjà à ressembler davantage à un supercalculateur, non?

Désolé si vous en pensez un introduction très simple et définition un peu collante, mais elle a été intentionnellement. Parce que je veux que même les utilisateurs les moins informés et expérimentés comprennent ce paradigme, sinon ils ne comprendront pas le reste de ce guide. Je veux que vous restiez avec cette idée, car si vous comprenez cela, vous verrez à quel point ces grosses et étranges machines qui occupent de grandes surfaces ne vous sembleront pas si étranges ...

Que sont les supercalculateurs?

Supercalculateur IBM

Dans la section précédente, nous avons introduit les termes parallélisme et HPC, c'est bien. Afin de créer un supercalculateur, c'est-à-dire un ordinateur doté de ces capacités HPC, le parallélisme est nécessaire, comme nous l'avons clairement indiqué. Par définition, les supercalculateurs sont ces machines dont les capacités de quelques sortes ils sont de loin supérieurs à celui d'un ordinateur commun que nous pouvons avoir à la maison.

En général, presque toutes les capacités d'un supercalculateur sont bien supérieures à celles d'un PC, mais elles peuvent surtout attirer l'attention Puissance de calcul qui est due aux noyaux ou aux unités de traitement, le RAM à la disposition de ces unités de traitement, et dans une moindre mesure capacité de stockage, car en général les deux premiers sont plus importants pour les applications normales qui sont données à ce type de machine. S'il est vrai qu'il peut y avoir certaines grosses machines qui nécessitent beaucoup plus de stockage et de bande passante que la puissance de calcul ou la RAM, c'est le cas des serveurs de stockage ...

Histoire des supercalculateurs:

Cray 1: photo historique

Peut-être l'un des premiers supercalculateurs, ou comme les historiens le classent ainsi, fut-il la machine construite dans les années 60 par Sperry Rand pour la marine américaine. Puis viendrait un moment où IBM était le grand roi avec des machines comme l'IBM 7030 et bien d'autres. Aussi l'Atlas de l'Université de Manchester et Ferranti au début des années 60 comme compétition européenne aux machines américaines. Des machines qui commençaient déjà à utiliser des transistors au germanium comme substitut des anciens tubes à vide (pas de circuits intégrés) et des mémoires magnétiques pour leur composition, mais qui étaient encore très primitives.

Puis viendra une autre ère dans laquelle un autre grand, CDC, entra avec le CDC 6600 conçu par une vieille connaissance qui nommera plus tard une entreprise importante qui est aujourd'hui un leader dans ce secteur. Je parle de Seymour cray. La machine qu'il a conçue a été achevée en 1964 et a été l'une des premières à utiliser des transistors en silicium. La vitesse apportée par la nouvelle technologie du silicium et l'architecture conçue par Cray ont rendu la machine jusqu'à 10 fois plus rapide que la concurrence, en vendant 100 d'entre elles pour 8.000.000 XNUMX XNUMX $ chacune.

Cray dejaría CDC (Control Data Corporation) en 1972 para formar la compañía líder que os he comentado, se trata de la Cray Research, creando el Cary-1 de 80 Mhz y uno de los primeros CPUs de 64-bit en 1976, convirtiendose en la supercomputadora más exitosa de la época y que podéis ver en la imagen principal de este apartado en la fotografía en blanco y negro. La Cray-2 (1985) seguiría el exitoso camino de la primera, con 8 CPUs, refrigeración líquida y marcando el camino de las modernas supercomputadoras en muchos sentidos. Aunque el rendimiento era de 1,9 GFLOPS.

Un montant qui peut paraître presque ridicule maintenant, étant donné que le smartphone que vous avez désormais dans votre poche dépasse ces supercalculateurs de cette époque. Par exemple, un SoC Snapdragon 835 ou Exynox 8895 de Qualcomm ou Samsung respectivement, il a une puissance d'environ 13,4 GFLOPS, soit près de 10 fois plus que le Cray-2 et environ 100 fois plus que le Cray-1. Ces machines gigantesques n'atteignent pas la semelle de vos chaussures à un objet aussi petit et léger que celui que vous avez maintenant entre les mains. Ce que j'aimerais penser que d'ici quelques décennies, nous pourrons avoir des appareils aussi puissants ou plus puissants que les supercalculateurs actuels mais réduits à de minuscules boîtiers.

Poursuivant l'histoire, après ce temps est venu l'ère des designs massivement parallèles, c'est-à-dire que des coûts moins élevés dans la production de puces et des améliorations des interconnexions ont rendu possible qu'au lieu de machines sophistiquées, des supercalculateurs puissent être construits en joignant des centaines ou des milliers de puces assez similaires à celles que nous avons dans notre équipement domestique, tel que commenté précédemment. En fait, dans les années 1970, il y avait une machine qui utilisait cette nouvelle conception massive et qui dépassait de loin le Cray-1 (250 MFLOPS), c'était l'ILLIAC IV, avec 256 microprocesseurs atteignant 1 GFLOPS, bien qu'elle ait eu quelques problèmes de conception et elle n'était pas terminée, seule une conception avec 64 microprocesseurs a été mise en œuvre.

Un supercalculateur graphique LINKS-1 de l'Université d'Osaka serait une autre de ces machines massivement parallèles, avec 257 microprocesseurs Zilog Z8001 et 257 FPU Intel iAPX 86/20, réalisant de bonnes performances pour l'époque et étant capable de rendre des graphiques 3D réalistes, avec 1.7 GFLOPS. Et peu à peu des machines de plus en plus puissantes viendraient, passant de centaines de microprocesseurs à des milliers comme les actuels ...

En Espagne, nous avons l'un des supercalculateurs les plus puissants d'Europe et aussi l'un des plus puissants au monde, créé par IBM et appelé Vertiges, situé à Bacelona et appartenant au réseau espagnol de supercalculateur composé de plusieurs d'entre eux, comme le Picasso de l'Université de Malaga, qui se nourrit du matériel rejeté dans les mises à jour que MareNostrum reçoit périodiquement. En fait, MareNostrum est une machine qui fascine l'auteur Dan Brown et qui a été choisie comme le plus beau centre de données (mélangeant une architecture d'un ancien monastère avec la plus haute technologie), comme vous pouvez le voir sur l'image principale de cet article.

Performance maximale 11.15hXNUMX FPLOPS
Microprocesseurs 165.888 XNUMX Intel Xeon Platinum
Memoria RAM 390 TB
Rouge Omnipathe
Diseñador IBM
Windows SUSE Linux

Caractéristiques du supercalculateur:

Ordinateur central IBM z13

Bien que de nombreux auteurs se séparent (à mon avis à tort) serveurs de supercalculateurs Et même les mainframes, selon la définition que je vous ai faite d'un supercalculateur, les serveurs pourraient être parfaitement englobés en tant que supercalculateurs, car ils ne sont rien de plus que des ordinateurs avec des capacités bien supérieures aux ordinateurs normaux, seulement qu'ils sont dédiés à offrir un type de service à un réseau ... La seule chose qu'il faut différencier, c'est qu'en fonction de ce à quoi la machine est destinée, on aura des capacités que l'on veut au dessus des autres ou des autres.

Par exemple, pour un serveur destiné aux données, comme un service Cloud Storage, ce qui nous intéresse, c'est qu'il dispose d'une capacité de stockage brutale. Alors que pour un mainframe destiné à traiter des transactions et des opérations bancaires, l'important sera sa puissance de calcul. Mais j'insiste, les deux sont des supercalculateurs. Cela dit, voyons quelques-uns des les principales caractéristiques qui nous intéressent à partir d'un supercalculateur / mainframe / serveur:

  • Sécurité: S'il s'agit d'un supercalculateur isolé, c'est-à-dire déconnecté d'Internet, des mesures de sécurité du périmètre doivent peut-être être mises en œuvre, mais la sécurité en tant que telle au sein du système lui-même n'est pas aussi importante qu'un serveur qui est connecté et auquel elles sont connecté de nombreux clients ou peut être la cible d'attaques alors qu'il est connecté à Internet. Mais que ce soit dans un cas ou dans un autre, il y aura toujours des mesures de sécurité.
  • Haute disponibilité: un serveur ou un supercalculateur doit fonctionner correctement et minimiser les éventuels problèmes matériels ou logiciels, car son arrêt peut être fatal aux fins pour lesquelles il a été construit et dans 100% des cas, un ordinateur en panne signifiera la perte de grosses sommes d'argent. C'est pourquoi des mesures sont prises dans les systèmes d'exploitation pour réduire les redémarrages nécessaires et robustes (UNIX / Linux), les alimentations alternatives (UPS) en cas de panne de courant, la redondance des systèmes en cas de panne qu'il y a une réplique qui n'affecte pas trop beaucoup aux performances générales, techniques de clôture pour isoler un nœud afin qu'il n'affecte pas les autres et puisse être remplacé à chaud sans affecter le fonctionnement du reste, tolérance aux pannes avec des systèmes tels que RAID sur les disques durs, mémoire ECC, éviter Split-brain, avoir un DRP (Disaster Recovery Plan) pour agir en cas de problème, etc. Et aussi, nous voulons que la fiabilité soit maximale, ainsi que la durée de vie utile, et les paramètres suivants sont toujours les plus bas ou les plus élevés selon ce qu'ils sont:
    • MTTF (Mean Time To Failure): c'est le temps moyen avant les pannes, c'est-à-dire qu'il mesure le temps moyen pendant lequel un système est capable de fonctionner sans interruption jusqu'à ce qu'il tombe en panne. Par conséquent, plus c'est élevé, mieux c'est.
    • MTBF (Mean Time Between Failure): c'est le temps moyen entre les pannes, c'est-à-dire qu'il est également important qu'il soit plus élevé, car nous ne voulons pas que les pannes soient très consécutives, sinon la fiabilité de l'équipement sera mauvaise.
    • MTTR (Mean Time To Repair): temps moyen de réparation, c'est-à-dire maintenabilité. Nous voulons qu'il soit plus bas, afin que le système ne soit pas inopérant pendant longtemps.
  • Haute performance et équilibrage de charge: Ceci est particulièrement important lorsqu'il s'agit d'un service cloud qui a besoin d'exécuter des applications pour ses clients, sur des supercalculateurs ou des mainframes pour des calculs mathématiques ou des simulations scientifiques, etc. Il est réalisé en augmentant les quantités de RAM et la quantité et / ou les performances des microprocesseurs. De plus, il faut avoir un bon équilibrage de charge, qui dépend de la gestion des processus que l'on fait, donc on ne va pas surcharger certains nœuds plus que d'autres, mais on va équilibrer la charge de travail sur l'ensemble du supercalculateur de manière égale ou dans le plus homogène possible.
  • Scalarité: capacité du logiciel et du matériel à s'adapter sans limitation pour changer de configuration ou de taille. Ce type de machine doit être flexible lorsqu'il s'agit d'étendre la capacité de calcul ou la capacité de mémoire, etc., s'il venait à tomber en panne sans avoir besoin d'acquérir un nouveau supercalculateur.
  • Coste: Cela dépend non seulement du coût de la machine elle-même et de la maintenance, qui peut facilement atteindre des millions, mais aussi de la consommation de la machine qui est généralement mesurée en MW (Mégawatts) et du coût des systèmes de refroidissement, ce qui est également élevé par la quantité de chaleur qu'ils génèrent. Par exemple, si on prend comme exemple le data center Facebook où il a le serveur où est hébergé son service, on a des milliards de dépenses, environ 1600 ingénieurs qui y travaillent, c'est sans compter les techniciens et administrateurs dédiés, certaines factures d'électricité. qui sont stratosphériques (notez que les centres de données consomment aujourd'hui 2% de l'énergie électrique produite dans le monde, soit des milliards de watts et des milliards d'euros. En fait, seul Google consomme 0,01% de l'énergie mondiale, il installe donc généralement ses centres de données dans les régions du monde où l'électricité est moins chère, car cela permet d'économiser plusieurs millions), etc. Vous pouvez imaginer que ce n'est pas bon marché de maintenir une équipe comme celle-ci ... et ce n'est pas pour moins cher, puisque le serveur monstrueux que Facebook possède en Oregon se trouve dans un entrepôt d'environ 28.000 m2 valant des centaines de millions d'euros, un énorme ferme de serveurs avec des milliers de processeurs, des disques durs pour ajouter plusieurs PB de stockage, de nombreuses banques de mémoire RAM, des cartes réseau à l'état sauvage (on calcule qu'il y a 6 km de câbles en fibre optique pour les entrelacer), et le tout consommant 30 MW de générateurs d'électricité et diesel comme mode UPS pour les pannes, générant toute la chaleur qui nécessite un système de dissipation complexe avec climatisation à grande échelle.

Et c'est tout pour les fonctionnalités les plus importantes, bien qu'il puisse y avoir applications spécifiques qui ont besoin de choses plus spécifiques.

Tendances réelles:

Puce IBM z13

Depuis les systèmes presque sur mesure Comme le premier d'IBM, CDC ou Cray, tout a très vite changé avec l'arrivée des puces ou des circuits intégrés et leur faible coût, permettant le démarrage du nouveau supercalcul massivement parallèle, avec des milliers d'éléments. Cependant, ne pensez pas que les supercalculateurs actuels sont des systèmes simples qui n'ont besoin que de rassembler des milliers d'appareils et c'est tout, ce sont des machines complexes qui nécessitent une conception soignée et une fabrication qui chouchoute chaque détail pour pouvoir en tirer le meilleur parti. et que tout fonctionne bien, forme appropriée en fonction des capacités ou des caractéristiques que nous voulons atteindre.

Après ces premières machines composées de circuits personnalisés ou des puces personnalisées conçues presque spécifiquement pour la machine, nous avons commencé à utiliser des systèmes beaucoup plus standard tels que des microprocesseurs, comme nous le verrons dans la section suivante.

Microprocesseurs spécifiques:

Carte mère AMD Epyc avec deux prises

Au début, presque les mêmes puces de traitement étaient utilisées comme ordinateurs personnels, mais aujourd'hui, de grandes entreprises telles qu'IBM, AMD et Intel, conçoivent des modèles spécifiques de leurs microprocesseurs pour les ordinateurs de bureau ou à d'autres fins. Par exemple, nous connaissons tous les microprocesseurs PowerPC d'IBM, qui ont été installés chez Apple jusqu'à il y a quelques années, lorsqu'ils ont adopté les puces d'Intel. Ces mêmes puces utilisées dans Apple ont également alimenté des supercalculateurs. Cependant, IBM a plusieurs conceptions spécifiques pour les grandes machines qui obtiennent de meilleures performances en travaillant ensemble, telles que la puissance, même s'ils partagent ISA avec des PowerPC.

La même chose se produit avec SPARC, qui bien qu'ils n'aient pas actuellement de modèles spécifiques pour le bureau car c'est un secteur qui ne les domine pas ou qui les intéresse beaucoup, oui que dans le passé il y avait des postes de travail avec ces mêmes microprocesseurs, bien que le les modèles actuels sont spécialement conçus pour travailler sur ces grandes machines. La même chose pourrait être dite pour les puces Intel et AMD, que des microprocesseurs spécifiques tels que Intel Xeon qui partagent la microarchitecture avec le Core i3 / i5 / i7 / i9 actuel et nombre de ses caractéristiques (pas le cas avec l'Intel Itanium), seulement qu'ils sont optimisés pour fonctionner en mode MP. Il en va de même pour AMD, qui a conçu une implémentation spéciale pour leurs supercalculateurs K8 ou Athlon64 appelée Opteron, et actuellement l'EPYC (basé sur Zen).

Là encore je m'arrête et je voudrais définir les types de microprocesseurs selon certains paramètres:

  • Selon son architecture: en fonction de l'architecture du CPU ou du microprocesseur lui-même, nous pouvons trouver:
    • Microprocesseur: C'est un CPU ou un microprocesseur normal, quelle que soit la microarchitecture ou les technologies qu'il implémente.
    • Microcontrôleur: il s'agit d'un processeur normal (généralement à faible performance) impulsé sur la même puce avec une RAM, un système d'E / S et un bus, c'est-à-dire un micro-ordinateur sur une puce. En général, ceux-ci ne sont pas utilisés dans les supercalculateurs, mais ils sont très présents dans une multitude d'appareils domestiques et industriels, des cartes comme Arduino, etc. Mais pour la question des supercalculateurs, oubliez-les ...
    • DSP (processeur de signal numérique): Vous pouvez également penser que ces processeurs de signaux numériques ne correspondent pas au sujet du calcul intensif, mais vous verrez à quel point ils ont un sens lorsque nous en verrons plus sur l'informatique hétérogène. Mais maintenant, il suffit de savoir qu'il s'agit de processeurs spécifiques pour pouvoir avoir de bonnes performances en matière de traitement des signaux numériques, ce qui le rend bon pour les cartes son, la vidéo, etc. Mais cela pourrait avoir quelques avantages dans certains calculs comme nous le verrons ...
    • SoC (système sur puce): C'est un système sur puce comme son nom l'indique, c'est-à-dire une puce dans laquelle quelque chose de plus que ce qui est inclus dans le microcontrôleur a été inclus. En plus d'un processeur (généralement ARM), il comprend également un flash, une RAM, des E / S et certains contrôleurs. Mais dans le cas des SoC, le CPU intégré est généralement très performant et destiné aux smartphones, tablettes, etc., bien que maintenant il existe des microserveurs qui utilisent ce type de puce comme unités de traitement comme nous le verrons.
    • Processeur vectoriel: est un type de microprocesseur SIMD, c'est-à-dire qu'il exécute une instruction avec plusieurs données. On peut dire que de nombreux microprocesseurs modernes ont des fonctionnalités SIMD grâce à ces extensions multimédias comme MMX, SSE, etc., dont nous avons parlé. Mais quand je dis processeur vectoriel, je veux dire les purs, qui ont été conçus sur la base du traitement d'un vecteur ou d'un tableau de données pour chaque instruction. Des exemples de ce type de processeur sont le Fujitsu FR-V, utilisé dans certains supercalculateurs japonais, et les GPU pourraient également être considérés comme tels.
    • ASICs: Il s'agit de circuits intégrés spécifiques à l'application, c'est-à-dire de puces personnalisées en fonction de leur utilisation. Quelque chose qui peut donner de grandes performances pour certaines applications spécifiques, bien que sa conception implique un coût plus élevé que l'utilisation d'unités de traitement génériques. De plus, si des FPGA sont utilisés pour les mettre en œuvre, ce ne sera pas le plus efficace électroniquement. Par exemple, ces jours-ci, ils sont largement utilisés pour construire des machines d'extraction de crypto-monnaie.
    • Autres: il y en a d'autres qui ne nous intéressent pas trop pour le moment, comme les APU (CPU + GPU), les NPU, le microprocesseur sans horloge, la C-RAM, le processeur baril, etc.
  • Selon leurs noyaux ou noyaux: nous sommes passés de processeurs mono-cœur ou mono-cœur à plusieurs, mais au sein des microprocesseurs qui en ont plusieurs, nous pouvons différencier:
    • Multicore: ce sont les multicores traditionnels que nous utilisons fréquemment, comme le dualcore, le quadcore, l'octacore, etc. Ils ont généralement 2, 4, 8, 12, 16, 32, ... noyaux ou noyaux, sur la même puce ou dans le même emballage mais des puces différentes.
    • Nombre de cœurs: similaire à ce qui précède, mais il s'agit généralement de centaines ou de milliers de cœurs, et pour que cela soit possible, les cœurs intégrés doivent être plus simples et plus petits que les conceptions Intel et AMD, par exemple, ainsi que plus écoénergétiques. C'est pourquoi ils sont généralement basés sur des noyaux ARM, placés sous forme de tuiles. En réunissant nombre de ces éléments, des capacités de calcul très élevées peuvent être obtenues. Intel a également flirté avec ce type, avec leurs Xeon Phi, qui sont de nombreux cœurs x86 utilisant des cœurs beaucoup plus simples mais regroupés en grand nombre (57 à 72) pour alimenter certains supercalculateurs actuels.
  • Selon son utilisation: Dans ce cas, nous ne sommes intéressés que par un type, qui est le MP ou les systèmes multiprocesseurs. Sur votre ordinateur de bureau ou portable, vous verrez que votre carte mère n'a qu'une seule prise pour insérer un microprocesseur, à la place, les cartes mères de serveur ont 2, 4, ... prises sur chacun d'eux, c'est ce que j'entends par MP.

Mais les microprocesseurs sont progressivement déplacés au profit d'autres unités de traitement plus spécifiques avec lesquelles de meilleures capacités de calcul sont obtenues, c'est-à-dire une meilleure efficacité entre FLOPS par W réalisé comme nous le verrons dans la section suivante.

Autres méthodes de traitement:

NVIDIA DGX

Comme je l'ai dit, les microprocesseurs ont évolué petit à petit, bien qu'ils détiennent toujours une part de marché importante, mais il y a d'autres unités de traitement qui entrent fortement ces derniers temps, comme GPGPU ou GPU à usage général. Et c'est que les puces des cartes graphiques sont généralement de type SIMD ou vecteur, ce qui permet d'appliquer la même instruction à une multitude de données simultanément, avec l'augmentation des performances que cela implique.

Et le meilleur de tous, en modifiant le contrôleur et par programmationSans modifier le matériel, ces GPU peuvent être utilisés pour le traitement des données comme s'il s'agissait d'un CPU, c'est-à-dire pour le traitement général et pas seulement pour les graphiques comme le font les GPU dédiés, permettant de profiter de leur énorme potentiel de calcul, car la quantité de Les FLOPS obtenus par une carte graphique sont beaucoup plus élevés que ceux d'un CPU.

La raison pour laquelle ils atteignent des performances de calcul aussi extraordinaires est parce qu'ils sont conçus pour fonctionner avec des graphiques, et cela nécessite beaucoup de calculs mathématiques pour les déplacer. En plus d'être SIMD comme je l'ai dit, ils suivent généralement un type de paradigme de programmation parallèle SIMT (instruction unique - threads multiples), obtenant de bons débits même lorsque la latence de la mémoire est élevée.

On notera que pour générer un graphe 3D, une modélisation est nécessaire qui commence par combiner une série de triangles avec les coordonnées W, X, Y et Z sur le plan, pour ensuite appliquer la couleur (R, G, B, A) et créer les surfaces, donner de l'éclairage, texturer les surfaces , mixte etc. Ces données et coordonnées de couleur signifient qu'elles contiennent des processeurs configurables pour les traiter, et il est entendu que ces coordonnées forment précisément les vecteurs avec lesquels les unités de traitement GPU fonctionnent et sont celles qui sont utilisées pour effectuer des calculs d'objectifs. Exemple, alors qu'un CPU doit exécuter 4 instructions d'ajout pour ajouter X1X2X3X4 + Y1Y2Y3Y4, c'est-à-dire X1 + Y1, puis X2 + Y2, et ainsi de suite, un GPU pourrait le faire en une seule fois.

Grâce à cela, nous avons des GPU qui fonctionnent à des fréquences d'horloge très basses, jusqu'à 5 ou 6 fois plus faibles que les CPU et atteignent un taux de FLOPS beaucoup plus élevé, ce qui signifie un rapport FLOPS / W plus élevé. Par exemple, un Intel Core i7 3960X atteint 141 GFLOPS de performances de calcul, tandis qu'un AMD Radeon R9 290X peut atteindre 5.632 GFLOPS, ce qui a un coût approximatif de chaque GFLOP d'environ 0,08 €, tandis qu'en 2004, un supercalculateur japonais appelé NEC Earth Simulator a été lancé avec des processeurs vectoriels et une performance totale de 41.000 10.000 TFLOPS dont le coût par GFLOPS était d'environ 8 XNUMX €, puisqu'il se composait de milliers de processeurs avec XNUMX GFLOPS chacun.

Comme vous pouvez le voir, c'est là que réside l'intérêt de créer supercalculateurs actuels basés sur GPU depuis NVIDIA ou AMD au lieu d'utiliser des processeurs. Et le calcul hétérogène devient également important, c'est-à-dire combiner différents types d'unités de traitement et confier chaque opération à l'unité qui la traite en moins de temps ou plus efficacement. Cela se heurte au paradigme informatique homogène, où le CPU gère la logique, le GPU gère les graphiques, les DSP pour les signaux numériques, etc.

Au lieu de cela, pourquoi ne pas les utiliser tous comme proposé calcul hétérogène pour optimiser les performances. Chacune de ces puces est bonne à quelque chose, elle a ses avantages et ses inconvénients, laissons donc chacune faire ce qu'elle fait le mieux ...

Parallélisme:

Insigne Cary 2

Et même si je n'aimerais pas être rentable, du moins pas autant que lecteurs de supercalculateurOui, je voudrais revenir sur le terme du parallélisme et expliquer un peu plus. Et c'est que, presque depuis le début de l'informatique, le parallélisme s'est amélioré dans un sens ou dans un autre:

  • Parallélisme au niveau du bit: Nous avons tous vu comment les microprocesseurs ont évolué de 4 bits, 8 bits, 16 bits, 32 bits et l'actuel 64 bits (bien qu'avec certaines extensions multimédias qui atteignent 128, 256, 512, etc.). Cela signifie qu'une seule instruction peut exploiter plus de données ou des données beaucoup plus longues.
  • Parallélisme au niveau des données: quand au lieu de données scalaires, nous utilisons des vecteurs ou des matrices de données sur lesquelles les instructions opèrent. Par exemple, un scalaire serait X + Y, tandis qu'un DLP correspondrait à X3X3X1X0 + Y3Y2Y1Y0. C'est précisément ce que font ces extensions dans les jeux d'instructions que j'ai mentionnés dans le parallélisme au niveau du bit.
  • Parallélisme au niveau de l'instruction: techniques qui visent à traiter plus d'une instruction par cycle d'horloge. Autrement dit, pour atteindre un IPC <1. Et ici, nous pouvons citer le pipeline, les architectures superscalaires et d'autres technologies comme les principales méthodes pour y parvenir.
  • Parallélisme au niveau des tâches: Je veux dire multithreading ou multithreading, c'est-à-dire obtenir plusieurs threads ou tâches proposés par le planificateur du noyau du système d'exploitation à effectuer simultanément. Par conséquent, le logiciel dans ce cas permettra à chaque processus d'être divisé en tâches plus simples pouvant être effectuées en parallèle. Si sous Linux vous utilisez la commande ps avec l'option -L, une colonne apparaîtra avec l'ID du LWP (Lightweight Proccess), c'est-à-dire un processus léger ou un thread. Bien que les moyens d'arriver à ce parallélisme soient multiples:
    • CMP (MultiProcessor Chip): c'est-à-dire utiliser plusieurs cœurs et traiter chacun un thread.
    • multithreading: que chaque processeur ou cœur peut traiter plusieurs threads en même temps. Et dans le multithreading, on peut également distinguer plusieurs méthodologies:
      • Multithreading temporaire ou superthreading: c'est ce qu'utilisent certains microprocesseurs comme l'UltraSPARC T2, ce qui se fait c'est qu'il alterne entre le traitement de l'un et l'autre thread, mais ils ne sont pas vraiment tous les deux traitement en parallèle en même temps.
      • Multithreading simultané ou SMT (MultiThreading simultané): dans ce cas, ils sont traités en parallèle, ce qui permet aux ressources du processeur de planifier dynamiquement et d'avoir plusieurs diffusions possibles. C'est ce qu'utilise AMD ou Intel, bien qu'Intel ait déposé une marque qui est HyperThreading, ce n'est rien de plus qu'un SMT. Cependant, avant d'adopter SMT dans l'AMD Zen, AMD a utilisé CMT (Clustered MultiThreading) dans sa Fusion, c'est-à-dire un multithreading basé sur des cœurs physiques et non sur des cœurs logiques. En d'autres termes, dans le SMT chaque cœur ou CPU agit comme s'il s'agissait de plusieurs cœurs logiques afin de réaliser ces tâches en parallèle, par contre, dans le CMT, plusieurs cœurs physiques sont utilisés pour effectuer ce multithreading ...
  • Parallélisme au niveau de la mémoire: ne fait pas référence à la quantité de mémoire installée dans le système, c'est donc un terme déroutant. Il fait référence au nombre d'accès en attente qui peuvent être effectués simultanément. La plupart des superscalaires ont ce type de parallélisme, réalisé grâce à la mise en œuvre de plusieurs unités de prélecture qui satisfont diverses demandes de défauts de cache, TLB, etc.

Indépendamment de ces niveaux de parallélisme, ils peuvent être combinés avec d'autres types d'architectures pour obtenir plus de parallélisme, comme:

  • Superscalaire et VLIW: En termes simples, ce sont ces unités de traitement (CPU ou GPU) qui ont plusieurs unités fonctionnelles répliquées, telles que plusieurs FPU, plusieurs ALU, plusieurs Branch Units, etc. Cela signifie que les opérations effectuées par ces types d'unités peuvent être effectuées deux par deux ou trois par trois, etc., selon le nombre d'unités disponibles. Par exemple, si pour exécuter un processus ou un programme, vous devez traiter les instructions Y = X +1, Z = 3 + 2 et W = T + Q, dans un scalaire, vous devez attendre la fin de la première opération avant de saisir la seconde un, en changement si vous avez 3 ALUs, ils peuvent se faire simultanément ... * VLIW: dans le cas de VLIW, ce qui existe habituellement est une réplique de certaines unités, et le compilateur ajuste les instructions pour les adapter à toute la largeur du CPU et que dans chaque cycle la totalité ou la plupart des unités sont occupées. Autrement dit, VLIW est une instruction longue qui est composée de plusieurs instructions plus simples emballées d'une manière spécifique pour se conformer à l'architecture matérielle. Comment comprendrez-vous que cela a ses avantages et ses inconvénients que je n'expliquerai pas ici ...
  • Pipeline: la canalisation ou la segmentation est réalisée en introduisant des registres qui divisent les circuits, séparant chaque unité fonctionnelle en étages. Par exemple, imaginez que vous ayez un pipeline à 3 profondeurs, dans ce cas, les unités fonctionnelles sont divisées en trois parties indépendantes, comme s'il s'agissait d'un processus de fabrication en chaîne. Par conséquent, une fois que la première instruction entrée a quitté la première étape, une autre peut déjà entrer dans cette première étape, accélérant l'exécution. En revanche, dans un système sans pipeline, l'instruction suivante ne peut pas être saisie tant que la première n'est pas complètement terminée.
  • Exécution dans le désordre: dans une architecture ordonnée, les instructions sont exécutées séquentiellement au fur et à mesure que le compilateur les a générées pour constituer le programme en cours d'exécution. D'un autre côté, ce n'est pas le plus efficace, car certains peuvent prendre plus de temps ou devoir introduire des bulles ou des temps morts dans le CPU en attendant que l'événement qui bloque le résultat de l'instruction se produise. D'autre part, dans le désordre, il alimentera constamment le CPU avec des instructions, quel que soit l'ordre, augmentant le temps de production. Ceci est réalisé grâce à des algorithmes dans lesquels je n'entrerai pas.

Généralement, la plupart des processeurs actuels, Intel, AMD, IBM POWER, SPARC, ARM, etc., utilisent un mélange de tous les niveaux de parallélisme, en pipeline, superscalaire, exécution dans le désordre, changement de nom de registre, etc. pour obtenir beaucoup plus de performances . Si vous souhaitez en savoir plus, vous pouvez consulter Taxonomie de Flynn, qui différencie les systèmes:

  • SISD: unité de traitement qui ne peut traiter qu'une seule instruction avec une seule donnée. Autrement dit, il exécute les instructions et les données de manière séquentielle, une par une.
  • SIMD: une seule instruction et plusieurs données, dans ce cas le parallélisme est uniquement dans le chemin de données et non dans le chemin de contrôle. Les unités de traitement actuelles pourront exécuter la même instruction sur plusieurs données en même temps. C'est le cas des processeurs vectoriels, des GPU et de certaines extensions multimédias qui ont réalisé cela au sein de microprocesseurs (ex: SSE, XOP, AVX, MMX,…).
  • MAUVAIS: dans ce cas, le parallélisme est au niveau des instructions, ce qui permet d'exécuter plusieurs instructions sur un même flux de données. Imaginez que vous ayez X et Y et que vous puissiez utiliser X + Y, XY, X · Y et X / Y simultanément.
  • MIM: c'est le plus parallèle de tous, puisqu'il peut exécuter plusieurs instructions sur plusieurs données en même temps ...

Et je pense qu'avec cela, les principes du parallélisme sont assez clairs. Si vous souhaitez approfondir, vous pouvez accéder aux sources que j'ai laissées dans la dernière partie de cet article et dans lesquelles j'ai travaillé au cours des 17 dernières années de ma vie.

Systèmes de mémoire:

Modules de RAM

Quelle que soit la méthode de traitement ou l'unité de traitement utilisée, une mémoire est nécessaire. Mais ici, nous entrons dans des problèmes un peu plus difficiles, car avec le parallélisme, les systèmes de mémoire doivent être cohérents et avoir une série de caractéristiques pour ne pas générer de données erronées. Ne vous inquiétez pas, je vais vous l'expliquer de manière très simple avec un exemple.

Imagine que tu as CPU unique En exécutant une instruction d'addition, imaginez que c'est Z = Y + X, dans ce cas, il n'y aurait pas de problème, puisque le CPU apporterait l'instruction d'addition et dirait à son unité arithmétique d'ajouter les emplacements mémoire Y et X où ils sont que data et enfin il sauvegardera le résultat dans la position Z de la mémoire. Aucun problème! Mais que faire s'il y a plusieurs processeurs? Imaginez le même exemple de ce CPU A faisant Z = Y + X, mais avec un autre CPU B faisant X = Y - 2.

Eh bien, donnons-lui des valeurs à chacune des lettres: Y = 5, X = 7. Si tel est le cas, si le CPU A agit en premier, nous aurions Z = 5 + 7, c'est-à-dire Z = 12. Mais si le CPU B agit en premier, X = 5 - 2 = 3, il accèdera donc à la mémoire et stocker 3 dans l'adresse où X est stocké, donc si le CPU A accède à cette position, il ferait alors la même instruction mais le résultat serait Z = 3 + 7, donc Z = 10. Oups! Nous avons déjà un grave échec que nous ne pouvions pas nous permettre, ou rien ne fonctionnerait correctement ...

Pour cette raison, les systèmes de mémoire ont développé une série de méthodes pour maintenir cette cohérence et savoir quelle opération doit être effectuée avant ou après pour que le résultat soit correct. Même sur votre ordinateur personnel, cela se produit, puisque vous avez maintenant plusieurs cœurs qui accèdent à la même mémoire, et non seulement cela, des microarchitectures sont également utilisées qui tirent parti du multithreading, des systèmes superscalaires et de l'exécution dans le désordre, ce qui compromet beaucoup de cohérence si des mesures correctives ne sont pas prises. Eh bien, imaginez sur un supercalculateur avec des milliers de ceux-ci ...

Mais bien sûr, le réduction des coûts de fabrication masse de copeaux et maturation de la technologie Les réseaux ont conduit à un changement rapide vers des machines avec de nombreux processeurs interconnectés et qui a également forcé le système de mémoire à changer (voir couplage), car les problèmes qui existent dans un ordinateur domestique se multiplieraient par milliers en ayant autant de processeurs agissant simultanément.

Que couplage que j'ai mentionné a évolué au fil du temps, à commencer par des systèmes étroitement couplés avec une mémoire principale partagée par toutes les unités de traitement; et le couplé de manière lâche, avec des systèmes dans lesquels chaque processeur a sa propre mémoire indépendante (distribuée). D'un autre côté, ces derniers temps, les deux systèmes que j'ai mentionnés se sont progressivement dilués et des progrès ont été accomplis vers hybridation, avec les schémas UMA (Uniform Memory Access) et NUMA (Non-Uniform Memory Access), bien que ce soit un autre sujet dont je pourrais parler longuement et que je voudrais nous donner pour un autre méga post.

Si vous voulez des informations, dites-vous brièvement que dans un Architecture UMA Les temps d'accès à la mémoire à l'une des positions uniformes de la mémoire principale sont les mêmes, quel que soit le processeur qui effectue l'accès (je comprends l'accès comme une opération de lecture ou d'écriture). C'est parce qu'il est centralisé.

Alors qu'en NUMA, il n'est pas uniforme et le temps d'accès dépendra du processeur qui le demande. Autrement dit, il existe une mémoire locale et une mémoire non locale, en d'autres termes, une mémoire partagée et physiquement distribuée. Vous l'aurez compris, pour que cela soit efficace, la latence moyenne doit être réduite au maximum, et chaque fois qu'il est possible de stocker les données et les instructions qu'un processeur va exécuter localement.

Avenir: l'informatique quantique

La était post-silicium et toutes les technologies de remplacement de la microélectronique actuelle sont encore assez immatures et en développement. Je suppose qu'il n'y aura pas de transition radicale, mais que les possibilités du silicium actuel commenceront à s'épuiser jusqu'à ce qu'il atteigne son plafond physique, puis viendra une ère de technologies hybrides dont la base continuera à être le silicium, en un avenir un peu plus lointain pour faire le saut vers l'informatique quantique ...

Dans cette transition je pense Les ARM joueront un rôle crucial et les nombreux cœurs pour leur efficacité énergétique (performances / consommation) et, c'est déjà un avis très personnel, peut-être que dans les années 2020 cette limite de silicium sera atteinte et dans les années 2030, il continuera à être fabriqué sur des technologies de silicium en profitant des investissements des fonderies et en les rendant un peu plus larges, dites-vous, puisqu'une matrice plus grande signifie maintenant plus de coûts de fabrication, mais lorsque vous n'avez pas à faire ces énormes investissements pour mettre à jour une fonderie, je suppose que la stabilité jouera en faveur du prix. Cependant, du côté des concepteurs, cela impliquera un effort de développement plus important, car pour que cette augmentation de surface sans réduire la taille de fabrication suppose une augmentation intéressante des performances, ils devront peut-être chouchouter beaucoup les microarchitectures à venir et aller davantage vers les microarchitectures. efficace comme ces ARM que j'ai nommés ...

Pour en revenir au sujet de l'informatique quantique, certains ont déjà été construits ordinateurs quantiques, mais honnêtement, vu ce que j'ai vu, ils sont encore assez limités et ont besoin de beaucoup plus de développement pour devenir quelque chose de pratique pour les entreprises, et bien plus encore avant d'être suffisamment mûrs pour devenir quelque chose de abordable pour les maisons. Comme vous pouvez le voir dans les images qui ouvrent cette section, ils semblent encore des objets de science-fiction assez complexes qui ont besoin d'être refroidis pour les maintenir proches du zéro absolu ºK (-273ºC).

Cette température limite son application pratique et massive, comme c'est le cas avec supraconducteurs. Dans le domaine des supraconducteurs, des mesures importantes ont été prises, mais la température de fonctionnement est encore bien inférieure à 0 ° C, même s'il serait très intéressant de les faire fonctionner à température ambiante ou dans des marges un peu plus normales. En plus de la barrière de température, d'autres facteurs problématiques doivent être traités, comme le fait que les fondements et les fondements du calcul binaire actuel ne fonctionnent pas pour le calcul quantique ...

J'ai voulu évoquer les supraconducteurs, car c'est l'une des technologies sur lesquelles sont basés certains ordinateurs quantiques pour pouvoir quantifier ou isoler ces qubits dont nous allons parler. Cependant, ce n'est pas la seule technologie de base, nous avons également ordinateurs quantiques à base d'ions (atomes avec un ou plusieurs électrons de moins) basé sur le nombre d'électrons des qubits piégés dans les pièges laser. Une autre alternative est le l'informatique quantique basée sur les spins nucléaires, en utilisant les états de spin des molécules comme des quibits ...

Laissant de côté les écueils, je vais essayer d'expliquer de manière très simple qu'est-ce que l'informatique quantique, pour que tous comprennent. En bref, il s'agit d'une étape supplémentaire dans le parallélisme, permettant aux futurs ordinateurs quantiques de traiter une telle quantité de données ou d'informations tout en nous permettant de faire de nouvelles découvertes et de résoudre des problèmes qui ne peuvent plus être résolus avec des supercalculateurs conventionnels. Par conséquent, ils ne représenteront pas seulement une révolution technologique, mais constitueront un formidable coup de pouce pour la science et la technologie dans d’autres domaines et pour le bien-être de l’humanité.

Nous allons avec l'explication simple de ce qu'est un ordinateur quantique. Vous savez que les ordinateurs actuels sont basés sur le système binaire, c'est-à-dire qu'ils traitent des bits qui peuvent prendre la valeur zéro ou un (on ou off, hautes ou basses tensions si on le voit du point de vue des circuits), et ces codes Les binaires sont des informations qui peuvent être traitées pour exécuter des programmes et faire tout ce que nous pouvons faire sur nos ordinateurs aujourd'hui.

En revanche, dans un ordinateur quantique, les bits quantiques (appelés qubits, des bits quantiques) non seulement fonctionnent dans les états on ou off (1 ou 0), mais ils peuvent également fonctionner dans les deux états, c'est-à-dire dans un chevauchement d'états (allumé et éteint). Il en est ainsi car il n'est pas basé sur la mécanique traditionnelle, mais sur les lois de la physique quantique. C'est pourquoi j'ai dit que la logique numérique ou binaire est inutile et que nous devons développer une autre logique quantique pour fonder le nouveau monde informatique qui nous attend.

Pratiquez avec la plate-forme IBM Q: un laboratoire en ligne qu'IBM a mis en place pour que n'importe qui puisse utiliser l'ordinateur quantique de 16 qubits. C'est un éditeur avec une interface graphique Web que vous pouvez utiliser pour créer vos programmes ...

Par conséquent, cette nouvelle unité de qubits d'information, qui remplacera le bit, a un potentiel latent en raison de ce parallélisme ou de cette dualité qui permet de traiter beaucoup plus de possibilités ou de données à la fois. Je te mets un exemple Pour mieux comprendre, imaginez que vous avez un programme qui ajoute deux bits (a, b) si un bit supplémentaire est 0 et les soustrait si ce bit supplémentaire a la valeur 1. Ainsi, les instructions chargées en mémoire seraient ( ajoutez a, b) dans le cas où ce bit vaut 0 et (sub a, b) dans le cas où il vaut 1. Pour obtenir à la fois les résultats, l'addition et la soustraction, nous devons l'exécuter deux fois, non? Et si l'état de ce bit supplémentaire pouvait être dans les deux états en même temps? Vous n'avez plus besoin de l'exécuter deux fois, non?

Autre exemple, imaginez que vous ayez une instruction NOT lancée sur 3 bits dans un ordinateur non quantique. Si au moment du lancement de ladite instruction ces trois bits ont la valeur 010, le résultat sera 101. Par contre, cette même instruction avec des qubits, où chaque valeur peut être dans les deux états en même temps, le résultat donnerait toutes les valeurs possibles d'une fois: 111, 110, 101, 100, 011, 010, 001 et 000. Ceci pour simulations scientifiques, cryptographie, résolution de problèmes mathématiquesetc, c'est tout simplement incroyable.

Qui est à l'avant-garde de cette technologie? Eh bien pour le moment, il semble que IBM est le leader, bien que Google, Intel et d'autres entreprises ou universités soient également en concurrence et lancent leurs prototypes d'ordinateurs quantiques à chaque fois capables de gérer plus de qubits, bien qu'ils aient un problème supplémentaire à ceux déjà mentionnés, et c'est que parfois ils ont besoin de certains de ces qubits comme des qubits de "parité", c'est-à-dire pour s'assurer que les résultats ne sont pas erronés.

Problèmes: consommation d'électricité et chaleur produite

Thermographie d'une carte mère centrée sur le microprocesseur (hotspot)

El la consommation et la dissipation thermique de ces grosses machines est un grand défi pour les ingénieurs. L'objectif est de réduire drastiquement cette consommation et de gérer la chaleur de manière peu coûteuse, car les systèmes de refroidissement supposent également une consommation électrique qui doit s'ajouter à la consommation de l'ordinateur lui-même. C'est pourquoi certaines idées exotiques sont envisagées comme l'immersion des centres de données sous la mer pour qu'ils utilisent leur propre eau comme liquide de refroidissement (ex: la marque commerciale Fluorinet de 3M, qui sont des liquides de refroidissement à base de fluorure) et économisez sur les systèmes complexes de climatisation ou de pompage de liquide de refroidissement ...

Comme je l'ai dit, Google recherche les zones avec les tarifs énergétiques les moins chers pour installer leurs centres serveurs, car même si la différence est faible, cela signifie au fil des ans plusieurs millions d'économies sur la facture d'électricité, je suppose qu'en Espagne, ils ont compliqué avec les tarifs que notre bien-aimée Endesa a pour nous ...

En ce qui concerne densité de chaleur, Cela génère également un autre problème sous-jacent, et c'est la réduction de la durée de vie des composants du serveur ou du supercalculateur, qui affecte les caractéristiques de durabilité et de durée de vie utile que nous décrivons dans la section sur les caractéristiques qu'un supercalculateur devrait avoir. Et cette chaleur est due aux performances électriques des composants du circuit, qui gaspillent l'essentiel de l'énergie consommée sous forme de chaleur, tout comme cela arrive aux moteurs à combustion interne, dont les performances ne sont pas trop élevées et peuvent aller de 25 à 30%. pour l'essence ou 30% ou plus pour les moteurs diesel, avec 40-50% pour certains turbo. Cela signifie, par exemple dans le cas de l'essence, que seulement 25 ou 30% de l'essence que vous consommez est réellement utilisée pour transférer la puissance aux roues, les 75-70% restants sont gaspillés sous forme de chaleur en raison du frottement des éléments. Comme détail pour dire que les moteurs électriques peuvent atteindre 90% ou plus d'efficacité ...

Bien que cet exemple de moteurs ne soit pas très pertinent, je tiens à vous faire savoir que chaque fois que vous voyez de la chaleur dans un appareil, cela signifie que de l'énergie est gaspillée sous forme de chaleur.

Une fois que ces deux problèmes ont été présentés et une le rapport chaleur / énergieJe peux vous donner l'exemple du supercalculateur chinois Tianhe-1A qui consomme 4,04 MW d'électricité, s'il était installé dans un pays où le kWh est facturé à 0,12 € comme dans le cas de l'Espagne, cela signifierait une consommation de 480 € / heure (4000 kW x 0,12 €), compte tenu du fait qu'il est connecté toute l'année, la consommation annuelle à payer s'élève à 4.204.800 480 24 € (365xXNUMXxXNUMX). Quatre millions d'euros, c'est un montant non négligeable de facture d'électricité, non?

Et c'est encore plus ennuyeux de payer si on sait qu'en raison de l'inefficacité de nos circuits de ces 4.204.800 € seul un pourcentage nous a vraiment été utile, et l'autre bon pourcentage a été gaspillé sous forme de chaleur. Et pas seulement cela, mais nous avons dû investir de l'argent pour atténuer cette chaleur qui est inutile mais qui affecte nos équipes. De plus, compte tenu de l'environnement, cette consommation disproportionnée est également un gros problème si l'énergie est obtenue à partir de sources qui génèrent un certain type de pollution (non renouvelable).

Un autre cas exemplaire serait le supercalculateur chinois qui occupe désormais la première place du Top500, c'est-à-dire qu'en 2018, il possède la puissance de calcul la plus élevée. Il s'appelle Sunway TaihuLight et est destiné aux études pétrolières et à d'autres aspects scientifiques, à la recherche pharmaceutique et à la conception industrielle. Il exécute RaiseOS (Linux), utilise un total de 40.960 microprocesseurs SW26010 qui sont de nombreux cœurs (chaque puce a 256 cœurs, avec un total de 10.649.600 cœurs), des disques durs pour compléter 20 Po de stockage et 1,31 Po de mémoire RAM si nous ajoutons tous les modules. Cela vous donne une puissance de calcul de 93 PFLOPS (j'expliquerai ce qu'est FLOPS plus tard si vous ne savez pas). Son prix avoisine les 241 millions d'euros et sa consommation s'élève à 15 MW, c'est pourquoi il occupe la 16ème place du classement des plus économes en énergie (6,051 15 GFLOPS / W). Ces 1 MW signifient que vous devez multiplier la facture d'électricité de Tianhe-3,75A par XNUMX ...

Le rapport de puissance de calcul est même mesuré par rapport à la quantité de watts nécessaire pour générer cette quantité de calcul, je parle de l'unité FLOPS / W. Plus une machine peut générer de FLOPS par watt, plus elle sera efficace et plus la facture d'électricité sera basse, et la température générée, donc aussi le coût de son refroidissement. Même cette relation pourrait être un facteur limitant, car l'infrastructure de réfrigération installée ne permettrait pas une éventuelle expansion future si elle ne peut pas être suffisamment réfrigérée avec les installations dont nous disposons. Rappelez-vous que cela est également attentif à l'une des caractéristiques qu'ils doivent avoir: la scalarité.

Taxonomie des supercalculateurs:

Supercalculateur

Eh bien, il existe de nombreuses façons de classer les supercalculateurs, mais je souhaite expliquer comment les classer en fonction de certains facteurs. Comme je l'ai dit, beaucoup ne considèrent pas les serveurs comme des supercalculateurs et je considère que c'est une grosse erreur, car ce sont des supercalculateurs, ou plutôt, les supercalculateurs sont un type particulier de serveur dans lequel ils cherchent à améliorer les capacités de calcul.

Je dirais donc que les types de supercalculateurs selon son utilisation sont:

  • Serveur: C'est un type de supercalculateur très courant qui peut aller de quelques microprocesseurs et quelques modules de RAM et disques durs configurés avec un certain niveau de RAID, à de grandes machines avec des milliers de microprocesseurs, beaucoup de RAM disponible et une grande capacité de stockage. Et ils sont appelés serveurs précisément parce qu'ils sont destinés à offrir un certain type de service: stockage, hébergement, VPS, courrier, web, etc.
  • Supercalculateur: la différence entre une batterie de serveurs et un supercalculateur au niveau visuel est nulle, vous ne pouviez pas faire la distinction entre les deux. La seule chose qui les différencie est que les supercalculateurs sont destinés à effectuer des calculs mathématiques ou scientifiques complexes, des simulations, etc. Par conséquent, la qualité qui intéresse le plus ici est celle du calcul. Cependant, ne confondez pas le terme de supercalculateur que nous avons donné à ce groupe et pensez que les serveurs et les mainframes ne sont pas des supercalculateurs (j'insiste encore une fois).
  • Unité centrale: Ce sont des supercalculateurs spéciaux, bien que, par définition, ce soient des machines volumineuses et coûteuses avec des capacités très élevées pour traiter de grandes quantités de données, telles que le maintien d'un contrôle civil quelconque, les transactions bancaires, etc. D'un autre côté, il existe une nette différence entre un mainframe et un supercalculateur, à savoir que le mainframe doit améliorer ses capacités d'E / S et doit être plus fiable, car il doit accéder à de grandes quantités de données telles que des bases de données externes. En général, les ordinateurs centraux sont plus utilisés par les ministères ou par certaines banques ou entreprises, tandis que les supercalculateurs sont plus convoités par les scientifiques et les militaires. IBM est la société leader dans les mainframes, comme son z / Architecture basé sur des bêtes informatiques telles que ses puces et avec des distributions comme SUSE Linux dessus ...

Concernant les types selon l'infrastructure:

  • regroupement: C'est une technique pour joindre des ordinateurs connectés les uns aux autres par un réseau pour créer un grand supercalculateur, mainframe ou serveur. En d'autres termes, c'est la base dont nous avons parlé dans les sections précédentes.
    • Centralisé: tous les nœuds sont situés au même endroit, comme les ordinateurs centraux et la plupart des serveurs ou supercalculateurs.
    • Distribué: tous les nœuds ne sont pas situés au même endroit, parfois ils peuvent être séparés par de grandes distances ou distribués par géographie, mais interconnectés et fonctionnant comme s'ils n'en étaient qu'un. Nous avons un exemple dans le réseau espagnol de supercalculateurs, qui est composé de 13 supercalculateurs répartis dans toute la péninsule. Ces 13 sont interconnectés afin d'offrir un calcul de très haute performance à la communauté scientifique. Certains noms de supercalculateurs qui le composent sont: MareNostrum (Barcelone), Picasso (Málaga), Finisterrae2 (Galice), Magerit et Cibeles (Madrid), etc.
  • Calcul en grille: c'est une autre façon d'exploiter et d'utiliser des ressources hétérogènes non centralisées, généralement les capacités de calcul, de stockage, etc., de divers appareils distribués dans le monde entier peuvent être utilisées pour certaines applications. Par exemple, nous pouvons participer à la puissance de calcul de milliers ou de millions d'ordinateurs de bureau ou portables de nombreux utilisateurs, smartphones, etc. Tous forment un maillage interconnecté via Internet pour résoudre un problème. Par exemple, SETI @ home est un projet de calcul distribué ou maillé qui fonctionne sur la plateforme BOINC (Berkeley Open Infrastructure for Network Computing) avec laquelle vous pouvez collaborer en installant un logiciel simple sur votre ordinateur afin qu'ils prennent part à vos ressources et ajoutent les à ce grand réseau pour la recherche de la vie extraterrestre. Un autre exemple qui me vient à l'esprit, bien que non légal, est un malware qui détourne une partie des ressources de votre ordinateur pour miner des crypto-monnaies, il y a ...

Bien qu'ils existent d'autres façons de les cataloguer, Je pense que ce sont les plus intéressants.

À quoi servent les supercalculateurs?

Formules mathématiques

Eh bien, ces capacités de stockage, de mémoire ou de calcul élevées dont disposent les supercalculateurs nous permettent de faire beaucoup de choses que nous ne pourrions pas faire avec un PC normal, comme certaines simulations scientifiques, la résolution de problèmes mathématiques, la recherche, l'hébergement, l'offre de services à des milliers ou des millions de connectés clients, etc. En bref, c'est le meilleur moyen que nous connaissons pour accélérer le progrès humain, bien que certaines des choses qui font l'objet d'une enquête soient destructrices (utilisées à des fins militaires) ou pour le vol de notre vie privée, comme certains serveurs de réseaux sociaux et d'autres cas que vous connaissez sûrement.

Serveurs, big data, cloud ...

Câble réseau avec bits

Les supercalculateurs qui offrir des services ils sont connus comme des serveurs, comme vous le savez. Ces services peuvent être les plus diversifiés:

  • Serveurs de fichiers: ils peuvent provenir de services d'hébergement ou d'hébergement de pages Web, Stockage, serveurs FTP, réseaux hétérogènes, NFS, etc.
  • Serveurs LDAP et DHCP: d'autres serveurs particuliers qui stockent des données comme les précédents, bien que leur fonction en soit une autre comme la connexion centralisée comme dans le cas de LDAP ou pour fournir des adresses IP dynamiques comme dans le cas de DHCP ...
  • Serveurs Web: ils peuvent être inclus dans le groupe précédent, car ils stockent également des données, mais ce sont des serveurs uniquement axés sur le stockage de pages Web afin de pouvoir y accéder via le protocole HTTP ou HTTPS à partir d'un réseau. Les clients pourront ainsi accéder à cette page depuis leur navigateur.
  • Serveurs de messagerie: Vous pouvez fournir des services de messagerie afin que les clients puissent envoyer et recevoir des e-mails.
  • Serveurs NTP: ils fournissent un service de synchronisation horaire, très important pour Internet. Ce sont les abréviations de Network Time Protocol et sont réparties en couches, les couches les plus basses étant les plus précises. Ces strates principales sont régies par des horloges atomiques qui présentent de très faibles variations tout au long de l'année, elles donnent donc une heure ultra-précise.
  • Autres: d'autres serveurs peuvent stocker des bases de données volumineuses, du big data, voire une multitude de services cloud (IaaS, PaaS, CaaS, SaaS). Un exemple est VPS (Virtual Private Server), c'est-à-dire que dans un grand serveur, des dizaines ou des centaines de serveurs virtuels isolés sont générés dans des machines virtuelles et les clients se voient offrir la possibilité de posséder l'un de ces serveurs pour les tâches qu'ils souhaitent sans avoir à payer un vrai serveur et payer pour l'infrastructure et la maintenance, il suffit de payer des frais pour l'acquisition de ce service auprès du fournisseur ...

Et avec cela, nous terminons le plus remarquable de cette catégorie.

IA:

Cerveau en circuit électronique

Certains supercalculateurs sont conçus pour mettre en œuvre des systèmes d'IA (intelligence artificielle), c'est-à-dire des structures capables d'apprendre grâce à l'utilisation de réseaux de neurones artificiels, soit mis en œuvre par des algorithmes logiciels, soit par des puces neuronales. L'un des exemples que j'ai maintenant à l'esprit est le supercalculateur IBM Blue Gene et l'algorithme BlueMatter développé par IBM et l'Université de Stanford pour pouvoir implémenter un cerveau humain artificiel dans un supercalculateur et ainsi analyser ce qui s'y passe dans certaines maladies psychiques ou des maladies neurodégénératives telles que la maladie d'Alzheimer, permettant ainsi de mieux comprendre ce qui se passe à l'intérieur du cerveau et d'être en mesure d'avancer dans de nouveaux traitements ou d'avoir une meilleure connaissance de notre organe le plus mystérieux.

De plus, de nombreux services d'IA que nous utilisons sont basés sur un supercalculateur, comme Siri ou Amazon (voir Alexa pour Echo), etc. Mais peut-être que l'exemple qui m'intéresse le plus est IBM Watson, un supercalculateur qui implémente un système informatique d'IA également appelé Watson qui est capable de répondre aux questions formulées en langage naturel et à d'autres incidents pour lesquels il a été programmé, comme la "cuisson" ou la connaissance de certains mélanges d'ingrédients qui peuvent être agréables au palais .

Il est basé sur une grande base de données avec une multitude d'informations issues de livres, encyclopédies (y compris Wikipedia anglais), et de nombreuses autres sources où vous pouvez rechercher des informations pour fournir des réponses. Il est basé sur des microprocesseurs IBM POWER7 et dispose d'environ 16 To de RAM et de quelques Po de stockage pour stocker cette grande quantité d'informations, du matériel qui coûte plus de 3 millions de dollars. De plus, ses développeurs affirment qu'il peut traiter 500 Go d'informations par seconde. Et pour notre plus grand plaisir, il est basé sur des projets gratuits et un système d'exploitation SUSE Linux Enterprise Server.

Applications scientifiques:

Mais les supercalculateurs sont principalement utilisés pour applications scientifiques, soit pour la recherche en général, soit pour un usage militaire spécifique. Par exemple, ils sont utilisés pour effectuer une multitude de calculs sur la physique quantique et nucléaire, des études sur la matière comme le fait le supercalculateur du CERN, des simulations pour comprendre le comportement des molécules élémentaires ou des particules, des simulations de fluides, comme le CFD utilisé pour étudier l'érodynamique. de voitures de course, d'avions, etc.

Également pour d'autres études sur chimie, biologie et médecine. Par exemple, pour tenter de mieux comprendre le comportement de certaines maladies ou pour recréer comment les tumeurs se reproduisent et ainsi tenter de trouver une meilleure solution au cancer. Dan Brown a dit à propos de MareNostrum, que peut-être le remède contre le cancer en viendra, espérons-le, et que ce sera le plus tôt possible. A l'UMA (Université de Malaga) il travaille Miguel Ujaldon que nous avons pu interviewer chez LxA exclusivement pour ses développements avec NVIDIA CUDA en supercalcul, et il peut parler de ces développements qui vont améliorer notre santé ... Je peux aussi penser à d'autres applications pratiques, comme l'étude et la prédiction du naturel des phénomènes tels que les conditions météorologiques, les études des brins d'ADN et des mutations, le repliement des protéines et l'analyse des explosions nucléaires.

Gardez à l'esprit que pour toutes ces études et enquêtes d'énormes quantités de calculs sont nécessaires mathématiciens très précis et déplaçant beaucoup de données très rapidement, quelque chose que si les humains devaient le faire avec la seule aide de leur intellect, cela pourrait prendre des siècles pour trouver la solution, alors qu'avec ces machines en quelques secondes, il a pu se développer une quantité brutale de processus mathématiques.

Quels sont les plus puissants du monde?

sunway taihulight

J'y ai déjà fait allusion dans certains cas, il y a un liste des 500 supercalculateurs les plus puissants au monde qui sont périodiquement mis à jour. Il s'agit de Top500, où vous trouverez également une multitude de statistiques sur ces machines, des informations, etc., ainsi qu'une autre liste particulière appelée Green500 qui se concentre sur cette efficacité énergétique, c'est-à-dire non seulement en mesurant les FLOPS bruts que la machine peut développer, mais également en classant les 500 machines avec le meilleur rapport FLOPS / W.

Cependant, il peut y avoir des supercalculateurs beaucoup plus puissants que ceux qui n'apparaissent pas sur la liste, soit parce qu'ils sont destinés à projets gouvernementaux secrets ou parce qu'en raison de leurs caractéristiques ils ne répondent pas à certaines exigences pour être analysés à travers les tests de référence que nous décrirons dans la section suivante et donc les résultats n'ont pas été publiés dans ce Top500. En outre, on soupçonne que certaines des machines bien positionnées sur cette liste peuvent altérer ces résultats car elles sont spécifiquement optimisées pour obtenir de bons scores dans ces analyses de performances, bien qu'en pratique ce ne soit pas tellement.

Repères

Graphique du CPU FLOPS vs GPU

Les tests pour positionner ces supercalculateurs sur la liste Top500 ou pour mesurer les performances de tous ceux qui sont en dehors de cette liste sont bien connus de tous, en fait ils sont similaires ou identiques à ceux que nous effectuons sur nos ordinateurs personnels ou appareils mobiles pour voir votre performance. Je parle de logiciel repères. Ces types de programmes sont des morceaux de code très spécifiques qui exécutent certaines opérations mathématiques ou boucles qui servent à mesurer le temps nécessaire à la machine pour les exécuter.

D'après la note obtenue, il sera positionné sur ladite liste ou les performances que cette machine peut avoir dans le monde pratique seront déterminées, pour les investigations que nous avons détaillées précédemment. En règle générale, les benchmarks testent également d'autres composants, non seulement l'unité de traitement, mais également la RAM, la carte graphique, le disque dur, les E / S, etc. De plus, ils sont très pratiques non seulement pour connaître les performances qu'une machine peut atteindre, mais aussi pour savoir ce qui doit être amélioré ou étendu ...

Les types de tests Ils peuvent être classés en synthétique, niveau bas / haut et autres. Les premiers sont les tests ou programmes spécifiquement conçus pour mesurer les performances (ex: Dhrystone, Whetstone, ...), tandis que les bas niveau sont ceux qui mesurent directement les performances d'un composant, comme la latence d'une mémoire, temps d'accès à la mémoire, IPC, etc. Au lieu de cela, ceux de haut niveau essaient de mesurer les performances des ensembles de composants, par exemple, la vitesse d'encodage, de compression, etc., ce qui signifie mesurer les performances globales du composant matériel qui interfère en lui, le pilote et la manipulation. que l'OS en fait. Le reste des tests peut être utilisé pour mesurer la consommation d'énergie, la température, les réseaux, le bruit, les charges de travail, etc.

Le programme le plus connu pour l'analyse comparative des supercalculateurs est peut-être LINPACK, car il a été conçu pour mesurer les performances des systèmes scientifiques et d'ingénierie. Le programme fait un usage intensif des opérations en virgule flottante, donc les résultats dépendent beaucoup du potentiel FPU du système et c'est précisément ce qu'il est le plus important de mesurer dans la plupart des supercalculateurs. Et c'est ici que nous pouvons mesurer cette unité dont nous avons tant parlé tout au long de l'article: FLOPS.

Les FLOPS (opérations en virgule flottante par seconde) Il mesure le nombre de calculs ou d'opérations en virgule flottante que l'ordinateur peut effectuer en une seconde. Vous savez déjà que les ordinateurs peuvent effectuer deux types d'opérations, avec des entiers et avec des virgules flottantes, c'est-à-dire avec des nombres de l'ensemble des nombres naturels (… -3, -2, -1,0,1,2,3,… ) et avec des ensembles de nombres rationnels (fractions). Précisément lorsque l'on travaille avec des simulations, des graphismes 3D, ou des calculs mathématiques complexes, de la physique ou de l'ingénierie, ce sont ces opérations en virgule flottante qui sont les plus abondantes et nous nous intéressons à une machine capable de les gérer plus rapidement ...

Nom multiple Abréviation Équivalence
- FLOPS 1
Kilo KFLOPS 1000
Mega MFLOPS 1.000.000
Giga GFLOPS 1.000.000.000
Tera TFLOPS 1.000.000.000.000
Peta PFLOPS 1.000.000.000.000.000
Exa eflops 1.000.000.000.000.000.000
Zeta ZFLOPS 1.000.000.000.000.000.000.000
Yota YFLOPS 1.000.000.000.000.000.000.000.000

Autrement dit, nous parlons de la machine Sunway TaihuLight Il peut effectuer à charge maximale environ 93.014.600.000.000.000 XNUMX XNUMX XNUMX XNUMX XNUMX d'opérations en virgule flottante par seconde. Impressionnant!

Parties d'un supercalculateur: comment sont-elles construites?

Nœud d'un supercalculateur

Vous avez déjà vu tout au long de l'article de nombreuses photographies de ces fermes de serveurs, ces grandes pièces typiques qui ont une multitude de câblage à travers le plafond ou sous le plancher qui relie ces grands placards qui sont alignés comme dans les couloirs. Eh bien, maintenant, il est temps de voir ce que sont ces armoires et ce qu'elles contiennent à l'intérieur, même si à ce stade, je pense que vous savez déjà très bien de quoi nous parlons.

Parties d'un supercalculateur:

Parties d'un supercalculateur

Si vous regardez l'image précédente de l'architecture d'un supercalculateur IBM, cela montre assez bien comment sont-ils constitués. Peut être bien apprécié parties du plus simple à l'ensemble assemblé. Comme vous pouvez le voir, le composant élémentaire est la puce, c'est-à-dire le CPU ou le microprocesseur qui sert de base. Par exemple, imaginez qu'il s'agit d'un AMD EPYC. Ensuite, ledit AMD EPYC sera inséré dans une carte mère qui a généralement deux ou quatre sockets, donc chacun d'entre eux aura 1 ou 2 EPYC contrairement aux cartes mères que nous avons dans notre équipement non MP.

Eh bien, nous avons déjà une carte avec plusieurs puces, et bien sûr, la carte mère aura également les composants normaux ajoutés. base de placa sur un ordinateur personnel, c'est-à-dire des banques de mémoire, etc. L'une de ces plaques est souvent appelée calculer la voiture comme vous le voyez sur l'image. Et ils sont généralement disposés dans des tiroirs métalliques seuls ou regroupés en plusieurs. Ces tiroirs sont ceux que vous voyez sur la photo démoniaque carte de nœud. Ces nœuds ou tiroirs sont insérés dans des rails qui ont généralement des mesures standard par groupes (plan médian), bien que tous ne correspondent pas toujours à des nœuds avec des voitures de calcul, mais certaines baies sont laissées libres en bas et en haut pour abriter d'autres "tiroirs" ou nœuds avec les cartes réseau et les systèmes de liaison qui interconnecteront tous ces éléments avec d'autres les armoires, le bloc d'alimentation ou l'alimentation, d'autres plateaux qui contiendront les disques durs configurés en RADI, etc.

Les rails où sont insérés ces "tiroirs" ou nœuds dont nous avons parlé sont montés de deux manières possibles: lame et  rack (racks), comme celui que l'on voit sur les différentes photos. Comme je l'ai déjà dit, ils ont généralement des mesures standard pour que les éléments qui entreront à l'intérieur s'adaptent bien comme cela se produit avec une tour d'ordinateur de bureau, avec des mesures en pouces afin qu'il n'y ait aucun problème lors de l'insertion d'un composant dans les baies. De plus, les raks ne fonctionnent généralement pas seuls, car ils peuvent également être regroupés en groupes qui ressemblent à de grandes armoires avec d'autres éléments auxiliaires si nécessaire.

En fonction de la taille du mainframe, du serveur ou du supercalculateur, le nombre d'armoires sera plus ou moins grand, mais ils seront toujours interconnectés par leurs cartes réseau entre eux, généralement à l'aide de puissants systèmes d'interconnexion haute performance et fibre optique, afin qu'ils fonctionnent comme un seul ordinateur. Rappelez-vous que nous parlons de ceux distribués, par conséquent, ces armoires peuvent être dans le même bâtiment ou réparties dans d'autres endroits, auquel cas elles seront connectées à un réseau WAN ou Internet afin qu'elles fonctionnent ensemble. Soit dit en passant, des réseaux qui ridiculiseraient nos connexions fibre les plus rapides chez nous ...

Types de refroidissement:

Refroidir un centre de données Google

Nous avons déjà parlé du souci de réfrigérationEn fait, une chose qui se démarque lorsque vous entrez dans une ferme de serveurs ou un centre de données est le grand bruit qu'il y a généralement dans certains et les brouillons. C'est à cause de ces systèmes de refroidissement qui doivent maintenir les systèmes à une température appropriée. Et ce que vous voyez dans l'image ci-dessus n'est ni plus ni moins qu'une pièce où se trouve tout le système de réfrigération auxiliaire de l'un de ces centres, comme vous le voyez, il est assez grand, complexe et ne semble pas "bon marché" à entretenir.

Ceux qui sont refroidis à l'air ont besoin d'énormes chambres climatiséesSi vous vous plaignez de la facture en été pour mettre votre gadget, imaginez-les. Et cela génère le grand bruit et les courants d'air que j'ai déjà dit. Et dans le cas d'être liquide refroidi, la chose n'est guère meilleure car on l'apprécie, avec des cadres de tuyaux sophistiqués, l'inspection conséquente pour éviter les fuites, et la nécessité d'utiliser des milliers ou des millions de litres d'eau.

Il est question d'utiliser de l'eau recyclée dans les usines de traitement ou de capturer l'eau de pluie pour ne pas gaspiller ces énormes quantités d'eau, et aussi ce que j'ai mentionné précédemment, la localisation des centres de données sous la mer ou sur les plateformes au-dessus de l'océan pour utiliser l'eau de mer comme réfrigérant. Actuellement, l'eau passe à travers les sources de chaleur pour extraire ces degrés supplémentaires, puis l'eau chaude est pompée vers des tourelles de refroidissement afin qu'elle soit à nouveau refroidie et le cycle recommence. D'autres méthodes expérimentales ont également été proposées qui utilisent d'autres réfrigérants liquides dans des systèmes d'échange pour abaisser la température de l'eau, sans compresseurs de fluide coûteux.

Réseaux d'interconnexion:

Liens réseau d'un supercalculateur

Les réseaux à travers lesquels interconnecter les différents nœuds et raks des serveurs ou supercalculateurs sont des réseaux à fibre optique ultra-rapides, car il faut éviter les goulots d'étranglement qui rendraient ce paradigme de regroupement massivement parallèle moins efficace. Si la machine a une connexion à l'extérieur, je veux dire si elle est connectée à Internet, la bande passante qu'ils gèrent est extrêmement grande comme vous pouvez l'imaginer.

Par exemple, les technologies d'interconnexion de cluster de type Myrinet et Infiniand sont typiques. Par exemple, dans le cas de Myrinet Il est composé de cartes réseau développées spécifiquement pour ce type de connexion qui seront placées dans un tiroir ou un nœud que nous décrivons dans la partie pièces. Les câbles à fibre optique (amont / aval) connectés à un seul connecteur les sortiront / y entreront. Les interconnexions se font via des commutateurs ou des routeurs, qui se trouveront dans les armoires. Ils ont également tendance à avoir une bonne tolérance aux pannes et ont évolué pour atteindre des vitesses de 10 Gbit /.

Au lieu de cela, Infinibande il est plus avancé et c'est la méthode la plus utilisée. C'est un système avec une vitesse élevée, une faible latence et une faible surcharge du processeur, ce qui est un avantage par rapport à Myrnet, permettant à la puissance du processeur d'être utilisée aux fins pour lesquelles elle est destinée à être utilisée en soustrayant le minimum pour gérer le système. Interconnexion . De plus, il s'agit d'un standard maintenu et développé non pas par une entreprise comme la précédente, mais par une association appelée IBTA.

Comme Myrnet, Infiniband utilise des cartes réseau (connectées aux slots PCI Express) pour les connexions, avec un câblage en fibre optique, avec un bus série bidirectionnel cela évite les problèmes de bus parallèles associés aux longues distances. Bien qu'il soit en série, il peut atteindre une vitesse de 2,5 Gbit / s dans chaque direction de chacune des liaisons, atteignant un débit maximal dans certaines de ses versions d'environ 96 Gbit / s.

Maintenance et administration:

Femme administrateur système avec serveur

Les supercalculateurs ou serveurs auront un bataillon de personnel, tous sont vraiment intéressés par les fonctions ou services dont dispose réellement la machine. Normalement, nous sommes habitués dans les ordinateurs personnels au fait que nous avons tendance à être les administrateurs système de nos systèmes et aussi les utilisateurs qui l'utilisent. Mais cela ne se produit pas dans ces cas, où s'il s'agit d'un serveur, les utilisateurs seront les clients et s'il s'agit d'un supercalculateur, les utilisateurs seront les scientifiques ou quiconque l'utilise ...

  • Ingénieurs et développeurs: ils peuvent s'assurer que la machine ou le fonctionnement est correct.
  • Administrateurs système: les administrateurs système seront en charge de gérer le système d'exploitation installé sur le supercalculateur pour qu'il fonctionne correctement. En général, ces serveurs ou supercalculateurs ne disposent généralement pas d'environnements de bureau ou d'interfaces graphiques, donc tout se fait généralement à partir du terminal. C'est pourquoi les administrateurs système peuvent se connecter physiquement à la machine via un terminal stupide ou, si l'administration à distance est possible, ils se connecteront à distance via ssh et d'autres protocoles similaires pour exécuter les commandes nécessaires.

terminal ssh linux

  • Autres administrateurs: si des bases de données, des sites Web et d'autres systèmes sont présents sur la machine.
  • Experts en sécurité: ils peuvent être de plusieurs types, certains qui sont en charge de la sécurité physique ou périmétrique, c'est-à-dire avec des caméras de surveillance, la sécurité dans les accès au centre de données, qui évitent également d'éventuels accidents (ex: incendies), etc., mais également des experts en sécurité qui sécurisent le système pour éviter d'éventuelles attaques.
  • techniciens: qu'il y aura aussi les plus variés, avec des techniciens en charge de la maintenance de l'infrastructure, des techniciens réseau, des techniciens en charge de remplacer ou de réparer les composants endommagés, etc. Normalement, ils ont des terminaux stupides et dans eux un logiciel leur dit ou marque le composant qui est endommagé, et comme s'il s'agissait d'un jeu de grille, il donnerait une série de coordonnées afin que le technicien sache dans quelle allée et quel rack aller pour remplacer le élément spécifique qui échoue. Par conséquent, les couloirs et les rayonnages seront marqués comme s'il s'agissait d'un parking. De plus, dans la pièce elle-même, il y a généralement des étagères avec des boîtes d'éléments de rechange pour pouvoir remplacer ceux qui échouent. Bien sûr, cela se fait à chaud, c'est-à-dire sans éteindre le système. Ils extraient le nœud, remplacent le composant, insèrent le nœud et se connectent pendant que les autres continuent de travailler ...

Quand j'ai dit le terme Terminal stupideJe fais référence à un type de table à roulettes que l'on trouve généralement dans ces types de centres et qui ont un écran et un clavier. Ce standard peut être connecté au serveur ou au supercalculateur afin que le technicien ou l'administrateur système puisse effectuer leurs vérifications.

Systèmes d'exploitation:

Comme vous le savez déjà, Linux a été créé dans le but de conquérir le secteur des ordinateurs de bureau, mais paradoxalement c'est le seul secteur qu'il ne domine pas aujourd'hui. le le bureau est presque monopolisé par Microsoft et son Windows, suivi de très loin par Apple MacOS avec une part d'environ 6-10% et un 2-4% pour GNU / Linux ...

Les chiffres ne sont pas très fiables, puisque les sources qui se consacrent à la réalisation de ces études ne font parfois pas les tests de manière adéquate, ou biaisées dans certaines régions de la planète ... De plus, certaines incluent ChromeOS et d'autres uniquement des distributions GNU / Linux à ce quota. Par exemple, NetMarketShare a publié une étude qui a placé Linux à 4,83% et MacOS à 6,29%, c'est-à-dire assez proche. Je suppose que dans cette étude, ils ont également inclus ChromeOS. Cependant, c'est peu comparé aux 88,88% qu'ils donnent à Windows, bien que bien meilleur que FreeBSD (0,01%) et d'autres systèmes d'exploitation qui ne sont même pas égaux à FreeBSD ajoutés tous ensemble.

En revanche, ces chiffres timides n'apparaissent pas dans des secteurs tels que les grandes machines, embarqués, appareils mobiles, etc. Par exemple, dans le secteur des supercalculateurs, qui est celui qui nous préoccupe actuellement, la domination est presque insultante et absolue. Si vous regardez la liste des supercalculateurs les plus puissants au monde, les statistiques de juin 2018 indiquent que 100% des 500 plus puissants utilisent Linux.

Si nous remontons à 1998, il n'y avait qu'un seul supercalculateur Linux parmi ceux 500 plus puissants. En 1999, le chiffre est passé à 17, un de plus l'année suivante, 28 en 2000, et à partir de là, ils ont augmenté de façon exponentielle pour atteindre 198 en 2003, 376 en 2006, 2007, ils ont atteint 427 et à partir de là, ils ont peu augmenté progressivement jusqu'à atteindre des chiffres de environ 490 sur 500 qui ont oscillé jusqu'à atteindre les 500 actuels sur 500.

Par conséquent, dans ces serveurs, mainframes ou supercalculateurs avec une sécurité totale, vous verrez les distributions de Red Hat et SUSE, RHEL ou SLES installés dessus, ou d'autres distributions différentes comme Debian, CentOS, Kylin Linux, etc. Dans le cas de ne pas avoir Linux, il aurait un autre UNIX tel que Solaris, AIX, UX ou un BSD, mais ceux qui brillent par leur absence sont MacOS et Windows. Et comme je l'ai commenté dans la section précédente, généralement sans environnement de bureau, puisque vous voulez allouer toute la puissance de ces ordinateurs au but pour lequel ils ont été conçus et ne pas en gaspiller une partie dans des environnements graphiques qui, par ailleurs, sont de peu d'intérêt pour ceux qui les manipulent. Une autre chose différente est les ordinateurs clients à partir desquels les utilisateurs ou les scientifiques travaillent, qui auront des environnements graphiques pour une analyse des informations d'une manière plus intuitive et graphique.

Comment créer un supercalculateur maison?

Supercalculateur avec cartes Raspberry Pi

Vous pouvez créer un supercalculateur maison, oui. En fait, dans le réseau, vous trouverez des projets tels que des supercalculateurs composés de nombreuses cartes Raspberry Pi rejoint. Évidemment, les capacités de ces machines ne seront pas d'un autre monde, mais elles permettent ajouter les capacités de plusieurs de ces cartes et faites-les fonctionner comme s'il s'agissait d'une seule machine. Plus que pour une utilisation pratique, ce type de projet de bricolage est fait pour enseigner comment fabriquer un supercalculateur mais de manière moins coûteuse et à plus petite échelle afin que tout le monde puisse le faire à la maison.

Un autre type de cluster ou de supercalculateur qui peut être fabriqué à la maison ou moins cher que les grandes machines s'appelle La légende de Beowulf. Il peut être implémenté avec n'importe quel type Unix, comme BSD, Linux/Unix ou Solaris et en utilisant des projets open source pour profiter de cette union parallèle de machines. Il réussit essentiellement à joindre plusieurs PC connectés par des cartes Ethernet et des commutateurs pour les rejoindre et les faire fonctionner comme un système unique.

Avec plusieurs Vieux PC ou que vous n'utilisez pas et aucune distribution Linux comme Ubuntu, vous pouvez construire votre Beowulf. Je vous conseille de revoir les projets MOSIX / OpenMOSIX o PélicanHPC. Avec eux, vous pourrez réaliser cette mise en œuvre. Cependant, si cela retient votre attention, j'essaierai à l'avenir de faire un tutoriel en LxA sur la façon de l'implémenter de manière pratique et étape par étape.

Installer un système d'exploitation sur l'ordinateur

YAST2 en mode texte

Cette section est assez facile à décrire, car l'installation est pratiquement le même que sur n'importe quel ordinateur. Seulement que nous devons garder à l'esprit que nous devons configurer certains aspects tels que la configuration LVM ou RAID qui est utilisée. Mais en général, ce n'est pas trop loin d'une installation de tous les jours. La seule chose choquante est qu'au lieu d'un seul processeur et de quelques modules de RAM et d'un ou deux disques durs, il y en a des centaines ou des milliers, même si du point de vue de l'administrateur, il n'y a pas de différence. Le système verra la machine dans son ensemble, seulement que les ressources dont nous disposons sont extraordinaires.

Ce que vous remarquerez également, la différence sera l'absence de BIOS / UEFIcar ces systèmes utilisent souvent différents systèmes EFI ou d'autres implémentations de firmware très spécifiques pour certaines plates-formes basées sur SPARC, POWER, etc. Par exemple, Intel EFI est pris en charge pour Intel Itanium, en fait, si vous nous lisez régulièrement, vous connaîtrez également le magnifique projet de linuxboot. Mais cela ne pose pas trop de problème, il suffit de se familiariser avec cette interface et rien d'autre, en plus, le nombre de fois que ce type d'équipement est éteint / allumé ou redémarré est pratiquement nul.

Papa maman! Puis-je avoir un supercalculateur à la maison?

Fond de nuage de CLOUD

Quels que soient les prototypes que nous pouvons construire en utilisant le format Beowulf ou le cluster de cartes Raspberry Pi ou d'autres types de SBC, j'ai de bonnes nouvelles pour vous. Vous pouvez utiliser la puissance d'un supercalculateur depuis votre domicile, sans acheter ni monter d'infrastructure. Il suffit de payer des frais mensuels pour acheter ce service vous pouvez compter sur toute cette puissance disponible quel que soit le but que vous souhaitez utiliser. Et c'est grâce aux différents services cloud, tels que AWS (Amazon Web Services), Google Cloud Computing, Microsoft Azure, IBM, etc.

Logos des services cloud les plus populaires

De plus, embaucher ce type de services signifie non seulement des économies par rapport à avoir votre propre serveur dédié, mais permet également autres avantages. Par exemple, cela nous permet d'augmenter rapidement le potentiel ou la taille de notre service en embauchant un taux légèrement plus élevé, ce qui, si nous l'avions physiquement, signifierait acheter du nouvel équipement. Nous n'avons pas non plus à payer de frais supplémentaires tels que la consommation d'électricité ou le personnel de maintenance, car cela sera pris en charge par les techniciens du fournisseur, ce qui nous permettra de vous offrir des garanties de fiabilité à un bon prix.

Il existe de nombreux services proposer des VPS à bon prix, c'est-à-dire un serveur virtuel implémenté sur une machine virtuelle dans un vrai serveur ou supercalculateur. Ce serveur accédera à une partie des capacités de la machine réelle à vous offrir. Vous pouvez trouver de bonnes plates-formes VPS avec 1 & 1, TMDHosting, HostGator, Dreamhost, et bien d'autres… De plus, vous pourrez voir les caractéristiques du VPS sur les sites Web respectifs, ainsi que les prix. Parmi les caractéristiques, vous verrez la RAM, les processeurs, le stockage disponible, la bande passante ou le trafic réseau autorisé, etc. De plus, ces VPS peuvent être principalement Linux ou Windows, selon vos besoins.

D'autre part, nous avons d'autres services un peu plus avancés comme ceux du cloud, qui nous permettent contrat IaaS (Infrastructure as a Service) ou infrastructure as a service. Autrement dit, cela nous permet d'avoir un supercalculateur ou un serveur en tant que service sans avoir besoin de l'avoir physiquement. Dans ce cas, nous avons Microsoft Azure, Google Cloud Platform, IBM SoftLayer, CloudSigma, Rackspace, VMWare vCloud Air, Amazon Web Services, Citrix Workspace Cloud, Oracle Cloud Infrastructure, etc.

Fuentes:

Architecture informatique et microprocesseur - Le monde de Bitman

Systèmes d'exploitation et administration - C2GL

N'oubliez pas de laisser vos commentaires avec des doutes, des contributions, ou ce que vous avez trouvé mon humble contribution ... J'espère que cela vous a aidé à en savoir plus sur ce monde.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   ale d'avocat dit

    Si j'ai 2 ou 3 ordinateurs à la maison, comment fusionner facilement leur alimentation? télécharger un tutoriel

  2.   Maria Cecilia dit

    Excellent article. Merci pour la contribution !!!

  3.   pacochote dit

    Article magnifique, très illustratif et facile à comprendre. Merci pour l'entrée. Je n'ai qu'un doute, et c'est comment le système d'exploitation est installé, je comprends que le noyau doit être compilé pour le matériel, car le matériel est loin des standards qui pourraient bien fonctionner avec les packages que nous utilisons normalement.