Les ordinateurs de la classe des « super ordinateurs » sont conçu pour maximiser la puissance de calcul au détriment du coût.

Historique modifier

La course à la performance des ordinateurs à commencé avec l’ère commercial de l’informatique, au début des années 50 (Univac, première solution commerciale), suivi peu après par les premiers IBM. En 1958 IBM conçoit le modèle « Stretch » (de l’anglais étiré), qui utilise les dernières avancées dans le domaine de l’architecture des ordinateurs et une technologie de pointe.

En 1964, IBM est détrôné par CDC (Control Data Corporation) et son modèle 6600, trois fois plus rapide que le Stretch. C'est à cette occasion que né le terme superordinateur. Cette machine a été conçu par Seymour Cray, qui quittera CDC en 1972 pour fonder sa propre société Cray Research, dont le Cray 1 sera le premier modèle, commercialisé en 1976.

Entre temps, une ordinateur de conception massivement parallèle, l’Illiac IV, dont l’étude à commencée en 1964, ne sera terminé qu’en 1972 et sera utilisé jusqu'en 1982. Son successeur sera la CM1 contruite par Thinking Machines, composée de 65 536 processeurs de 1 bit.

La dynastie des Crays, machines (historiquement) vectorielles, s’est perpétuée à travers de nombreux modèles : Y-MP, C90, T90, etc. Les Japonais n’ont jamais été en reste, grâce aux sociétés : Fujitsu, Hitachi et NEC.

L’attention du grand public sur ces machines sera attiré par la défaite de Gary Kasparov contre l’IBM Deep Blue, au jeu d’échecs, fin 1997.

Architecture modifier

Aujourd’hui on peut distinguer trois types de super ordinateurs :

  1. les architectures vectorielles.
  2. les architectures parallèles, composées de centaines voire milliers d’élément de calcul.
  3. Les architectures multiflots (multithread) où le processeur change de contexte à chaque cycle d’horloge.

Les architecture vectorielles possèdent des instructions capable d’effectuer une opération entre deux vecteurs, soit entre un vecteur et un scalaire. Grâce à une architecture matériel adéquate, qui en particulier fera en sorte qu’aucune faute ne viendra interrompre l’instruction, ces machines sont capables de soutenir une cadence de calcul très importante. Le nombre d’unités de calcul de ces machines dépasse rarement 8, l’organisation de la mémoire centrale joue un rôle important, ainsi que la profondeur des pipelines.

Les architectures parallèles sont composés d’un nombre très important (de quelques centaines à quelque dizaines de millier) de processeurs, que ceux ci soient spécialement conçu ou pas. Certaines de ces machines sont simplement composés de micro-ordinateurs couplées entre eux par des réseaux de type Ethernet.

Les architectures multiflots sont composées de processeurs capable de changer de contexte à chaque cycle, les contextes sont donc cablés à l'intérieur du processeur. Il faut évidemment que la machine ait suffisamment de processus (et flots) à exécuter en même temps pour que l’utilisation des processeurs soit optimum.

Enfin, on notera que toutes les architectures multi-processeurs s’appuient sur un réseau de communication permettant aux processeurs de communiquer entre eux. Ces réseaux ont des topologies très diverses, tels que : bus, tore, hypercube etc.

Utilisation modifier

OK

On remarquera que de très nombreuses disciplines scientifiques ont besoin d’utiliser des super calculateurs : le problème à toujours été leur coût.

Programmation modifier

On ne programmera pas sur un super ordinateur comme sur une machine scalaire. Les problèmes qui surviennent typiquement sont ceux liés à la précision de l’arithmétique sur les processeurs flottant ainsi que le nombre très élevé d’itérations effectuées. Sur le CDC 6600 par exemple, le fragment de code suivant pouvait générer une erreur sur division par   :

if (x == 0) y = 100 else y = z / x

car il existaient des valeurs pour lesquels   était si petit qu’il était représenté par   dans le diviseur et pas dans le comparateur. les programmeurs remplaçaient donc ce code par :

if (1.0 * x == 0) y = 100 else z / x

mais celui ci ne tournait pas sur Cray car   est calculé de cette façon :   et   pouvait provoquer un dépassement de capacité !


Vitesse de calcul modifier

L’unité utilisé est le FLOP. Voici la puissance comparé de quelques machines :

Constructeur Modèle Année Nombre de processeurs Puissance
IBM Strech 1961 1 600 Kflop
CDC CDC 6600 1965 1 3 Mflop
Cray Research Cray 1 1976 1 160 Mflops
Cray Research Cray 2 1985 1 xxx
Cray Research Cray Y-MP 1 xxx
Fujitsu VPP 500
Thinking Machines CM 1
Cray Research T3D

Principaux obstacles techniques modifier

(supprimer la partie taille).