Configuration Installée
Description de l'architecture matérielle du cluster IBM
Le cluster p575 installé au CRIHAN
le cluster installé au CRIHAN est basé sur les matériels et logiciels IBM.
Il s'agit de 22 nouveaux nœuds p575 dotés chacun de 8 processeurs Power5 cadencés à 1.9GHz et de 16Go de RAM. 16 des 22 nœuds p575 sont interconnectés par un commutateur à faible latence Federation.
La puissance théorique de chaque nœud p575 est de l'ordre de 60 GFlops. La puissance théorique totale de la configuration est de l'ordre de 1340 GFlops.
La connexion se fait sur deux frontales p510 dotées chacune de 2 processeurs Power5 cadencés à 1.5 GHz et de 4 Go de mémoire : william.crihan.fr et averell.crihan.fr. Il n'y a pas de mécanisme de sélection de la frontale. Ces frontales permettent d'accéder aux espaces disques des utilisateurs, de compiler les applications, de soumettre les travaux et de faire de la visualisation rapide des résultats (xmgrace, gnuplot). On accède ainsi aux mêmes espaces de manière analogue quelle que soit la frontale accédée.
Ces machines bi-processeurs, de part leur configuration, ne sont pas destinées à réaliser de grosses exécutions en interactif.
Les 22 nœuds p575 sont inaccessibles à la connexion directe et donc entièrement dédiés aux travaux.
Sur chacun des nœuds, la mémoire a été configurée afin d'améliorer la performance des applications parcourant de gros volumes.
Ainsi sur les p575, on dispose presque de 13 Go de mémoire pour les applications utilisateur : 10 Go sont configurés en Large Pages (16 Mo par page) pour les données (heap) et 2 Go sont configurés en Small Pages (4 ko par page) pour la pile (stack).
Une baie de stockage FastT500 contient un espace disque total de 20To qui sont répartis en différents systèmes de fichiers. Elle contient les espaces permanents des utilisateurs /home, /work, /save ainsi que les espaces temporaires alloués aux travaux soumis à loadleveler.
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 03, logiciels d'administration et de traitement pas lots comme Loadleveler, etc ...
Les deux noeuds p690 "joe" et "jack" ont été arrêtés en juillet 2007.
Le processeur Power5 : 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...) , le processeur Power4 (2001...) pour arriver à la génération la puce Power5. Les processeurs installés au CRIHAN sont cadencés à 1.9 GHz .Dans un premier temps, on décrit l'architecture power5 ; ensuite on s'intéresse à l'architecture Power4.
Caractéristiques de la puce Power5
Les principaux composants de la puce Power5 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. Il s'agit d'une puce à double coeur mais un seul est réellement actif, l'autre est inutilisé.
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 de niveau 2 (L2) avec une capacité de 1920 ko, partagé (entre les deux micro-processeurs). Il est physiquement divisé en trois slices de taille égale (640 ko), chacune étant dotée de son propre contrôleur.
Sa latence est 10 cycles d'horloge.
Le controleur du niveau de cache L3 est intégré à la puce afin d'améliorer sa réactivité. Le cache L3, d'une capacité de 36 Mo, est formé de 3 slices de 12Mo chacune.
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 7.6 GFlops.
Hiérarchie mémoire
La hiérarchie de stockage du système Power5 consiste en trois niveaux de cache et le sous-système mémoire. Les caches L1 et L2 sont physiquement sur la puce Power5. Le tableau suivant résume les capacités et l'organisation des niveaux de cache.
| Composant | Organisation | Capacités |
|---|---|---|
| Cache L1 - instructions | associatif à deux voies, 128 octets par ligne de cache |
64 ko par processeur, soit 128 ko par puce |
| Cache L1 - données | associatif à quatre voies, 128 octets par ligne de cache |
32 ko par processeur, soit 64 ko par puce |
| Cache L2 | associatif à dix voies, 128 octets par ligne de cache |
1920 ko par puce, soit par coeur |
| Cache L3 | associatif à douze voies, 256 octets par ligne de cache |
36 Mo par puce, soit 36 Mo par MCM |
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 256 octets de long.Le cache est 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 64 classes de congruence différentes, chacune formée de 4 voies à 128 octets, ce qui fait un cache L1 de données de 32768 octets soit 32 ko.
Lorsqu'une nouvelle ligne arrive, elle remplace la plus vieille des quatre lignes de la classe de congruence (principe LRU : Least-Recently Used).
Il en est de même pour le cache L2 d'instructions qui est associatif à deux voies.
La taille du cache L2 est 1920 ko par puce Power5, et il est partagé entre les deux coeurs de la puce. Comme pour le cache L1, la longueur d'une ligne est 128 octets.
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. Chaque partie est associative à dix voies.
Le processeur Power4 : Introduction
Le processeur Power4 de famille des processeurs RISC Power équipe les nœuds p690 du CRIHAN. Ils 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.