Dossier
REE
N°11
Décembre 2009
4
LE CALCUL À HAUTES PERFORMANCES :
URGENCE SCIENTIFIQUE, IMPERATIF INDUSTRIEL
■ Le calcul à hautes performances : évolution du matériel et du logiciel ■
Ce projet demandait à tout utilisateur d’un ordinateur
connecté à Internet de collaborer à ce projet en acceptant
de traiter des tâches envoyées par l’université, pendant les
périodes de veille de l’ordinateur.
En agrégeant la puissance de toutes les machines
connectées, SETI a été le premier projet à annoncer avoir
atteint la barre de un million de milliards d’opérations
(un Petaflops), mais en effectuant des tâches simultanées,
mais indépendantes.
Cette approche de la grille, conduit à s’intéresser à
l’architecture des ordinateurs parallèles.
3.2. Les ordinateurs parallèles
Les ordinateurs classiques sont construits selon l’archi-
tecture décrite par John von Neumann [8] en 1945. L’ordi-
nateur est constitué de la mémoire, de l’unité de contrôle,
de l’unité arithmétique et des entrées-sorties. L’unité de
contrôle lit une instruction en mémoire, la décode, puis la
transmet à l’unité arithmétique qui l’exécute. Les instruc-
tions sont traitées dans l’ordre où elles ont été placées en
mémoire, par le programmeur ou le compilateur.
L’architecture des machines parallèles est plus diversi-
fiée ; on distingue d’abord les architectures SIMD (Single
Instruction Multiple Data), chaque processeur exécute la
même instruction sur des données différentes, par exem-
ple calculer la somme de deux vecteurs, élément par élé-
ment, cette architecture est souvent appelée vectorielle.
Cette architecture a été utilisée et continue à l’être par
certains Cray et les machines NEC SX.
Les calculateurs les plus répandus actuellement sont
de type MIMD (Multiple Instruction, Multiple Data) où
chaque processeur exécute son propre flux d’instructions
appliqué à son flux de données. Les micro-ordinateurs ac-
tuels qui disposent souvent de plusieurs cœurs appartien-
nent à cette catégorie.
Pour comprendre les spécificités des ordinateurs pa-
rallèles, il faut maintenant entrer dans l’architecture mé-
moire de ces machines.
Deux cas extrêmes sont clairement définis, mémoire
distribuée, mémoire partagée. La seconde est la plus sim-
ple d’emploi, tous les processeurs utilisent le même es-
pace d’adressage, toute modification de la mémoire est
immédiatement visible de tous les processeurs. Le princi-
pal inconvénient est la difficulté et le coût de construction,
mais aussi la limitation en nombre de processeurs connec-
tables. Le nombre maximal de cœurs dans ces architectu-
res peut atteindre 1 024 dans certaines architectures SGI.
L’architecture à mémoire distribuée est plus facile à
réaliser, chaque processeur adresse directement sa mé-
moire, comme dans le cas d’un processeur unique et com-
munique avec les autres processeurs par un réseau d’inter-
connexion. Chaque processeur gère seul la mémoire qui
lui est connectée. Le temps d’accès à la mémoire dépend
de sa localisation. Pour la mémoire directement connectée
au processeur, le temps d’accès est très inférieur à la µs, il
peut se compter en ms ou centaines de ms dans le cas d’un
accès par réseau Ethernet ou Internet. Les espaces de mé-
moire étant disjoints la programmation est plus difficile.
Entre ces deux cas extrêmes, toutes les architectures
intermédiaires ont été envisagées. Il est courant de fabri-
quer des systèmes à mémoire partagée à petit nombre de
cœurs (8, 16, ) et on peut les connecter comme les archi-
tectures à mémoire distribuée. Parmi les ordinateurs les
plus puissants, cette architecture est assez répandue.
Dans le cas des architectures distribuées, deux pa-
ramètres sont importants, le nombre de processeurs par
nœud (thin ou fat node) et le réseau d’interconnexion.
Comme on l’a vu précédemment, la grille, forme la
plus étendue du parallélisme peut utiliser Internet pour la
connexion des nœuds entre eux. Pour des systèmes locaux,
la connexion la plus simple est le réseau local Ethernet qui
permet d’atteindre des débits de connexion de 1 à 10 Gbs,
puis des réseaux spécialisés comme Myrinet, Infiniband ou
Quadrics, pouvant atteindre 40 Gbs. Des réseaux spécifi-
ques sont quelquefois utilisés, on peut citer le réseau en tore
3D des Cray XT5. Comme dans un réseau cubique, cha-
que nœud est relié à chacun de ses six voisins par un lien à
9,6 Go/s.
4. Les benchmark et une vue
de l’évolution possible
Cette grande diversité d’architecture produit une aussi
grande diversité de performances, dépendant des cas tests
utilisés. Le test Linpack qui sert de référence au classe-
ment biannuel du Top500 [9] résout un système d’équa-
tions linéaires, à matrice pleine. La dimension du système
est librement déterminée pour assurer la performance
maximale. Ce test est très loin de pouvoir mesurer l’effi-
cacité d’un ordinateur pour un problème quelconque.
Prenons l’exemple du dépouillement des expériences
du LHC5, les calculs sont relativement complexes mais ils
sont réalisés sur un seul processeur, avec un jeu de don-
nées associées. Une grille dédiée a été mise en place par le
CERN et les laboratoires associés pour traiter ces calculs,
le Worldwide LHC Computing Grid (WLCG) [10] est une
collaboration mondiale de plus de 140 centres de calcul
dans 33 pays, réunissant plus de 100 000 ordinateurs.
Un autre cas très favorable au calcul parallèle est la
simulation par méthode de Monte-Carlo. Chaque paquet
d’événements peut être traité séparément et il suffit en-
suite de collationner les résultats. Ce type de calcul est dit
en anglais “embarassingly parallel”, ce qui est difficile à
traduire.
Les problèmes reposant sur la description géométri-
que et physique fine d’objet, par exemple l’aérodynami-
que d’un avion ou le crash d’un véhicule automobile met,
en général, en œuvre des techniques de décomposition de
domaine qui traitent les échanges entre des zones diffé-
rentes du modèle.
5 Large Hadron Collider.