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

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 .


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

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.

MCM Cliquer pour voir une image JPG (35ko)


flechehaut

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: