Configuration Installée
Description de l'architecture matérielle du cluster IBM
Le processeur Power4 : Introduction
La famille des processeurs RISC Power a commencé à équiper les produits RS/6000 d'IBM en février 1990 avec la technologie Power1. Par la suite sont sortis le processeur Power2 et ses variantes (1992-1996), les processeurs PowerPC (1993...), la famille RS64 (1997-2000), le processeur Power3 (1998...) pour arriver à la dernière génération la puce Power4. Les processeurs installés au CRIHAN sont cadencés à 1.3 GHz .- Le processeur Power4 ;
- La hiérarchie mémoire ;
- Le Multi Chip Module ;
- Le cluster 1600 installé au CRIHAN.
Caractéristiques du processeur Power4
Les principaux composants de la puce Power4 sont montrés dans la figure ci-dessous :
Cette puce est dotée de deux micro-processeurs, chacun étant une unité 64 bits totalement fonctionnelle.
Chacun dispose de son propre cache de niveau 1 (L1) qui a une capacité de 64 ko pour les instructions et 32 ko pour les données. Sur la puce se trouve un cache L2 (capacité 1440 ko) partagé (entre les deux micro-processeurs) au travers du CIU (core interface unit).
Il est physiquement divisé en trois parties de taille égale, chacune étant dotée de son propre contrôleur. Sa latence est 10 cycles d'horloge.
Pour augmenter les performances en réduisant le temps de latence vers la mémoire une partie du cache L3 et son contrôleur se trouvent aussi sur la puce Power4. Sa latence est de l'ordre de 100 cycles d'horloge.
Le fabric controller gère le réseaux de bus au sein de la puce. Ceux-ci connectent ensemble les caches L2, les caches L3, les autres processeurs Power4. Il dirige aussi un réseau de liens point-à-point entre chacune des 4 puces du MCM (Multi Chip Module).
Le processeur dispose de huit unités indépendantes d'exécution qui lui permettent de traiter plusieurs instructions simultanément, ce qui en fait un processeur superscalaire. Il utilise le réarrangement dynamique des instructions et le mode d'exécution spéculatif.
Ses deux unités de calcul flottant sont capables d'effectuer une instruction MADD
(multiply and add) à chaque cycle soit quatre opérations en virgule flottante par cycle et une performance crête théorique de 5.2 GFlops.
Hiérarchie mémoire
La hiérarchie de stockage du système Power4 consiste en trois niveaux de cache et le sous-système mémoire. Les caches L1 et L2 sont physiquement sur la puce Power4. Le tableau suivant résume les capacités et l'organisation des niveaux de cache.
| Composant | Organisation | Capacités |
|---|---|---|
| Cache L1 - instructions | map direct, 128 octets par ligne de cache |
64 ko par processeur, soit 128 ko par puce |
| Cache L1 - données | associatif à deux voies, 128 octets par ligne de cache |
32 ko par processeur, soit 64 ko par puce |
| Cache L2 | associatif à quatre voies, 128 octets par ligne de cache |
1440 ko par puce |
| Cache L3 | associatif à huit voies, 512 octets par ligne de cache vus comme quatre secteurs de 128 |
128 Mo par MCM, soit 32 Mo par puce |
Deux concepts sont très importants pour une bonne compréhension des caches, il s'agit de la longueur des lignes et de l'associativitée des ensembles.
Longueur des lignes de cache
La mémoire est partagée en lignes contigues de 128 octets de long, dont le début correspond au début d'une ligne de cache dont l'adresse matérielle est un multiple de 128.Le cache est lui aussi partagé en blocs de 128 octets et tous les échanges de données entre le cache et la mémoire se font par blocs de cette taille. Ainsi si une donnée est nécessaire, elle est copiée de la mémoire vers les caches puis vers un registre du processeur demandeur. En même temps, toute la ligne qui contient cette donnée est copiée de la mémoire vers le cache.
Associativité des caches
Il y a une projection (map) directe de la mémoire sur le cache L1 de données. Chaque colonne dans la figure ci-dessous est une classe de congruence, et chaque ligne de la mémoire peut être copiée vers une classe de congruence particulière, c'est-à-dire dans l'une des deux positions.Le cache L1 de données possède 128 classes de congruence différentes, chacune de 128 octets, ce qui fait un cache L1 de données de 32768 octets soit 32 ko.
Un gros problème de performances peut apparaitre lorsque les données traitées sont régulièrement espacées en mémoire (i.e. avec un pas, stride, constant). Dans le cas du processeur Power4, le cas critique survient lorsque le pas est de 16 ko exactement ou bien un multiple de 16 ko. En effet, tous les éléments référencés vont arriver dans la même classe de congruence et la taille "utile" du cache L1 sera alors de deux lignes. Cela peut survenir, dans une moindre mesure, avec des accès dont le stride est une puissance de 2.
La taille du cache L2 est 1440 ko par puce Power4, et il est
partagé entre les deux processeurs de la puce. Comme pour le cache L1,
la longueur d'une ligne est 128 octets. La politique de remplacement
des données est une pseudo LRU (least recently used); ainsi les données
fréquemment utilisées devraient rester dans le cache.
Le cache L2 est partagé en trois parties égales, chacune dotée de
son propre contrôleur. La manière dont une ligne arrivant est stockée
dans le cache L2 suit une règle de découpage. Seize éléments d'un
tableau fortran de réels double précision sont stockés dans une même
ligne, le dix-septième sera dans une autre ligne et l'algorithme de
hachage le placera dans une autre des deux parties restantes.
La cohérence des données partagées en mémoire se trouve au niveau du cache L2.
Chaque processeur Power4 dispose d'une logique permettant de détecter des défauts sur des lignes de cache consécutives. Si un tel phénomène est détecté, un pré-chargement des données (data prefetch stream) est effectué de façon automatique mettant à contribution l'ensemble de la hiérarchie mémoire (L1, L2, L3 mémoire). Chaque processeur peut traiter huit flux de données de ce type. L'accès aux données peut être fait dans l'ordre croissant ou décroissant sans monotonie.
Le cache de niveau 3 est conçu pour être combiné avec d'autres caches L3 du même MCM, par paire ou quadruplet, afin de créer un cache entrelacé, plus grand, de 64 ou 128 Mo.
Le Multi Chip Module
Le bloc de construction de base pour un noeud p690 est le MCM (Multi Chip Module).Composé de quatre puces Power4, il constitue ainsi un ensemble SMP de huit processeurs. Les quatre MCM sont reliés entre-eux point-à-point.
La figure suivante montre l'interconnection de quatre MCM qui forment ainsi un noeud SMP de 32 processeurs.
Le cluster 1600 installé au CRIHAN
Le calculateur IBM du CRIHAN est un cluster 1600 composé de deux noeuds p690 Turbo et d'un switch d'interconnection colony. La configuration est complétée par une baie de disques externes, FastT500.Chaque noeud p690 est doté de 32 processeurs Power4, cadencés à 1.3 GHz et de 32 Go de mémoire vive. La puissance crête théorique de chaque noeud est 166,4 GFlops. Il dispose aussi de 512 Go de disques internes qui servent (hors espace alloué pour le système d'exploitation) d'espace temporaire pour l'exécution des jobs soumis en batch, soit environ 400 Go par noeud.
La connection n'est possible que sur un seul noeud, joe
qui est en fait partagé en deux parties. La première, soit 4
processeurs et 4 Go de mémoire est la seule partie du cluster vue par
les utilisateurs. Son rôle est de traiter les connections, le travail
de développement (édition, compilation, déboguage), l'exécution en
interactif.
La seconde partie, inaccessible directement aux utilisateurs,
composée de deux morceaux, est réservée aux exécutions en mode batch au
travers du logiciel loadleveler. Il s'agit du reste du premier noeud, joe, soit 28 processeurs et 28 Go de mémoire et de la totalité du second noeud, jack, soit 32 processeurs et 32 Go de mémoire.
La baie FastT500 dispose d'un To de disques utiles sur une capacité de
16 To. Elle contient les espace disques permanents des utilisateurs :
/home, /work, /save qui sont vus simultanément par les deux noeuds. Les
espaces de travail sont décrits dans la page qui leur est consacrée.
Elle stocke aussi les arborescences des logiciels installés sur le
cluster : logiciels commerciaux comme Gaussian 98, logiciels
d'administration et de batch comme Loadleveler, etc ...
Le robot d'archivage, ADIC Grau Scalar 1000 est conservé et sert uniquement pour la migration des données des utilisateurs du cluster IBM.
Le schéma suivant reprend la configuration complète.