Babel, IBM Blue Gene/P

BlueGene picture

  • 40.960 coeurs PowerPC 450
  • 20 To de mémoire
  • 139 Tflop/s de performance crête totale
  • 800 To de disques
  • 300 kW de consommation électrique

Pour plus de détails concernant l'utilisation des ressources de cette machine, cliquez ici

Description matérielle détaillée

Architecture

Babel est constituée de plusieurs machines ayant des fonctions bien précises :

  • Les noeuds interactifs, aussi appelés frontales ou noeuds de login
  • Les noeuds de service
  • La machine de calcul proprement dite (Blue Gene/P)

La frontale est le point d'entrée sur Babel et le seul endroit auquel un utilisateur a directement accès. C'est là que ce fait la compilation, la soumission,…

La frontale est constituée d'une machine tournant sous Linux (Suse) ayant 16 coeurs Power5+ cadencés à 1850 MHz et 64 Go de mémoire vive.

Les noeuds de service gèrent les ressources de Babel (jobs, bases de données,…).

cn2rack

La machine de calcul est constituée, en allant de la configuration complète vers ses éléments de base, de :

  • 10 racks ou cabinets Blue Gene/P,
  • chaque rack contient 32 node cards,
  • chaque rack est divisé en deux midplanes,
  • chaque midplane contient 16 node cards,
  • chaque node card possède 32 noeuds de calcul,
  • chaque noeud de calcul à 4 coeurs.

Chaque noeud de calcul à 2 Go de mémoire et une puissance théorique de 13,6 Gflop/s (3,4 Gflop/s par coeur). Soit pour l'ensemble de la configuration (10.240 noeuds de calcul, 40.960 coeurs), une puissance crête de 139 Tflop/s et 20 To de mémoire vive.

De plus, toutes les 2 node cards (càd tous les 64 noeuds de calcul), il y a un noeud d'I/O qui gère l'ensemble des entrées-sorties de ces 64 noeuds de calcul. De ce fait, chaque job sur Babel doit s'exécuter sur un multiple de 64 noeuds de calcul (ou 256 coeurs).

Noeuds de calcul et coeurs

Les caractéristiques principales d'un noeud de calcul sont données dans le tableau suivant :

Coeur PowerPC 450 32 bit
Coeurs par noeud 4
Fréquence horloge 850 MHz
Cache L1 (privé par coeur) L1i : 32 ko + L1d : 32 ko
Cache L2 (privé par coeur) unité de prefetching
Cache L3 (partagé) 2 x 4 Mo
Mémoire 2 Go
Puissance crête par noeud 13,6 Gflop/s
Bande passante mémoire 12,7 Go/s
Consommation électrique ca 30 W

La performance d'un coeur de calcul est relativement faible (fréquence d'horloge de seulement 850 MHz). Cela permet de limiter fortement la consommation de chaque coeur tout en multipliant leur nombre. Si l'on suppose que la consommation est de l'ordre du carré de la fréquence, diviser cette dernière par deux permet de multiplier la puissance de calcul par 2 à consommation électrique équivalente. La performance de la machine vient donc d'un très grand nombre d'unités de calcul de faible performance et à très basse consommation.

Pour pouvoir profiter de ce type d'architecture massivement parallèle (MPP), il est nécessaire d'avoir des applications pouvant s'exécuter avec un niveau de parallélisme très élevé (plusieurs centaines, voire milliers de processus).

Caches et mémoire

Les différents niveaux de cache et la mémoire sont détaillés dans une page séparée.

Réseaux

Babel possède 6 réseaux différents. Trois d'entre-eux sont spécialisés pour les communications entre noeuds de calcul. Ils permettent d'obtenir d'excellentes performances pour les communications de type MPI.

La figure suivante représente les 3 réseaux principaux (tore 3D, réseau collectif et global interrupt).

reseaux

Tore 3D

tore 3D

Le tore 3D connecte chaque noeud de calcul à ses 6 voisins (2 dans chaque direction en 3 dimensions). Ses caractéristiques principales sont :

  • 6 liens bi-directionnels (12 x 3,4 Gb/s = 5,1 Go/s)
  • Latences MPI : 3 à 10 microsecondes
  • Optimisé pour communications point-à-point et multicast
  • Utilise un moteur DMA qui permet un très bon recouvrement des communications par les calculs
  • Vrai tore seulement si la taille de la partition réservée pour un job est un multiple de midplanes

Ce réseau est utilisé par l'ensemble des communications point-à-point, ainsi que pour toutes les communications collectives non-optimisées.

Réseau collectif

Le réseau collectif est un réseau en arbre. Ses propriétés sont :

  • Connections en arbre (one-to-all)
  • 3 liens bi-directionnels (6 x 6,8 Gb/s = 5,1 Go/s)
  • Latence MPI : 2 microsecondes pour la traversée + 2 microsecondes si suivi par un broadcast
  • Optimisé pour certaines communications collectives (réductions, broadcasts,…)
  • Utilisable seulement si communicateur rectangulaire

Barrières (Global interrupt)

Le réseau Global interrupt permet une synchronisation très rapide et avec une faible latence d'un ensemble de processus. Il n'est utilisé (pour les applications MPI) qu'avec des barrières utilisant le communicateur MPI_Comm_world.

Autres réseaux

  • 10 Gb ethernet : utilisé essentiellement par les noeuds d'I/O pour les transferts de fichier
  • JTAG : réseau de service
  • Clock : pour l'horloge

Entrées/sorties

Côté serveurs de fichiers GPFS

Les entrées-sorties sur Babel se font en utilisant des serveurs de fichiers ayant comme système de fichiers GPFS. Ces serveurs sont partagés avec la machine Vargas.

La capacité disponible est d'environ 350 To pour l'espace WORKDIR et 350 To pour l'espace TMPDIR. La débit maximum sur chacun de ces systèmes de fichiers est de 8 Go/s.

Côté Babel

Les entrées-sorties sont prises en charges par des noeuds spécialisés. Il y en a un pour 64 noeuds de calcul. Chaque noeud d'I/O est capable d'écrire (ou de lire) jusqu'à un débit de 400 Mo/s. Cela signifie que, théoriquement, il est possible de saturer les serveurs de fichiers avec seulement 20 noeuds d'I/O (càd avec un peu plus d'un rack de Babel). Si le système de fichiers est sollicité par d'autres applications au même moment (il ne faut pas oublier que Vargas l'utilise également), les performances seront réduites.