Personal tools
You are here: Home Calcul Technique Documentation IBM cluster p575 (Power5) Configuration Installée
Document Actions

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.

Cluster CRIHAN


flechehaut

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.


flechehaut

Caractéristiques de la puce Power5

Les principaux composants de la puce Power5 sont montrés dans la figure ci-dessous :

Puce Power5

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.


flechehaut

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.

Caches L1

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.

Cache L2

flechehaut

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 .


flechehaut

Caractéristiques du processeur Power4

Les principaux composants de la puce Power4 sont montrés dans la figure ci-dessous :
Puce Power4 Cliquer pour voir une image JPG (39ko)

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.


flechehaut

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.

Cache L1 data Cliquer pour voir une image JPG (22ko)
Lorsqu'une nouvelle ligne arrive, elle remplace la plus vieille des deux lignes de la classe de congruence (principe FIFO : First In First Out).

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.


flechehaut

Le Multi Chip Module

Le bloc de construction de base pour un noeud p690 est le MCM (Multi Chip Module).
MCM Cliquer pour voir une image JPG (28ko)

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.

MCM Cliquer pour voir une image JPG (51ko)

flechehaut

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: