Full_Text

Transcription

Full_Text
03-04 November 2007
4th International Conference on Computer Integrated Manufacturing CIP’2007 Construction d’une Grappe de PC pour le Calcul
Parallèle
M.R. Boufatah (1) et A. Sari (2).
Equipe du Calcul Parallèle, Laboratoire de Physique Théorique, Département de Physique,
Faculté des Sciences, Université Abou Bekr Belkaïd,
B.P. 119 Tlemcen 13000 – Algérie.
(1)
[email protected], (2) [email protected]
Abstract- La globalisation de ressources informatiques et de
données consiste en la possibilité d’offrir aux utilisateurs des
ressources informatiques virtuellement illimitées, tant en capacité
de stockage qu’en masse de calcul. Ces ressources sont réparties
de manière dynamique sur un ensemble non figé d’équipements,
et offrant à l’utilisateur un accès transparent à ces dernières. La
structure retenue est : des réseaux de stations de travail construits
en interconnectant des équipements informatiques standard à
travers un réseau à haut débit. La répartition et le couplage de
très grandes bases de données posent des problèmes. Par ailleurs,
on assiste à une évolution forte des ordinateurs avec l’intégration
des capacités de télécommunication : interconnecter des réseaux
dynamiques et hétérogènes et les utiliser comme ressources
globales est un sujet d’actualité.
Nous présenterons une grappe de PC que nous avons développé
dans notre laboratoire et montrons l’intérêt d’un tel système
comparé à ceux qui sont dédiés au calcul parallèle.
I.
INTRODUCTION
Au fur et à mesure que les niveaux de performance et de
commodité des ordinateurs et des réseaux augmentent, il
devient de plus en plus facile de construire des systèmes
informatiques parallèles à partir de composants facilement
disponibles, plutôt que de fabriquer des processeurs dédiés à de
très coûteux superordinateurs. En fait, le rapport
prix/performances d'une machine de type Beowulf [1] est de
trois à dix fois meilleures que celui des superordinateurs
dédiés.
Beowulf est une architecture multi-ordinateurs qui peut être
utilisée pour la programmation parallèle. Ce système comporte
habituellement un nœud serveur, et un ou plusieurs nœuds
clients connectés entre eux à travers Ethernet ou tout autre
réseau. C'est un système construit en utilisant des composants
matériels existants, adaptateurs Ethernet standard, et des
switches. Beowulf utilise aussi des éléments comme le système
d'exploitation Linux, Parallel Virtual Machine (PVM) et
Message Passing Interface (MPI). Le nœud serveur contrôle
l'ensemble du cluster et sert de serveur de fichiers pour les
nœuds clients. Une des principales différences entre Beowulf
et un Cluster de Stations de travail (COW) est le fait que
Beowulf se comporte plus comme une machine unique que
comme plusieurs stations de travail. Dans de nombreux cas, les
nœuds clients n'ont ni claviers ni moniteurs, et on y accède que
par une connexion distante ou par un terminal série. Les nœuds
Beowulf peuvent être envisagés comme un CPU et des
ensembles de mémoires qui peuvent être branchés dans le
cluster, exactement comme un CPU ou un module mémoire
peut être branché sur une carte mère. La récente liste du top500
[2] des supercalculateurs montre que 77 % des
supercalculateurs les plus puissants au monde sont des grappes.
L’intérêt de construire un tel système est d’obtenir une très
grande performance de calcul avec un budget relativement bas.
Nous allons décrire dans cet article la construction d’une
grappe avec du matériel informatique standard.
II. CONSTRUCTION
Dans cette partie, nous donnons une description des
différents composants matériels et logiciels informatiques que
nous avons utilisés pour développer notre grappe de PC au
Laboratoire de Physique Théorique de l’Université de Tlemcen
(Fig. 1).
A. Matériel
La configuration de chaque nœud de notre grappe ne diffère
pas des PC standard que nous trouvons dans le commerce
grand publique, à l’exception qu’ils ne disposent ni d’écran, ni
de clavier, ni de souris, ni lecteur de disquette et de CdRom
(Fig. 1). Chaque nœud est constitué d’un seul CPU AMD
Athlon cadencé à 1.42 GigaHz et de deux SDRAM de 128
Megaoctets à 133 MHz. Les caractéristiques de chaque nœud
ainsi que le cout financier sont données dans le Tableau I. Pour
le réseau nous avons utilisé un switch, la distance de
communication entre deux nœuds est la même. Nous assignons
à chaque nœud des adresses IP privées de la classe C ainsi nous
pouvons augmenter le nombre de nœud indéfiniment, seul le
serveur qui agit comme un routeur est vu de l’extérieur.
B. Logiciels
Pour faire tourner un programme sur une grappe, il faut:
1. des nœuds qui fonctionnent: choix d'un OS.
2. des nœuds qui communiquent: choix d'un réseau.
3. des nœuds qui partagent des données: choix d'un système
de fichiers.
4. des nœuds qui exécutent un code parallèle: choix d'un
paradigme de programmation.
Ce découpage semble logique, toutefois les choix à effectuer
ne sont pas toujours indépendants si l'on veut utiliser des
03-04 November 2007
4th International Conference on Computer Integrated Manufacturing CIP’2007 solutions déjà existantes. Pour cette grappe, les choix sont les
suivants:
Noeuds
Noeuds
Serveur
Fig. 1 La Grappe Baibars du Laboratoire de Physique Théorique. Puissance
atteinte 9.453 GigaFlop
1. l'OS: famille Unix. Nous utiliserons la distribution linux
Fedora Core 2 [3] car elle fournit certaines solutions pour
les choix suivants.
2. le réseau: couche physique Ethernet, couche transport
TCP/IP. Tout le nécessaire vient avec la distribution Linux.
3. le système de fichiers: NFS permet de partager des fichiers
sur des machines connectés en réseau, fournit avec la
distribution Linux.
4. le paradigme de programmation: échange de message, on
utilisera une distribution de MPI [4].
Le Tableau II résume les différents logiciels installés sur notre
grappe
TABLEAU II
LISTE DE LOGICIELS INSTALLES SUR LA GRAPPE
Produit
Linux Fedora Core 2
gcc
ifort
mpich
pvm
mkl
Atlas
Version
Kernel 2.6.10-1.771_FC2
3.3.3
9.0
1.2.7p1
3.4.5
8.0
3.6.0
Le second test est le code High Performance Linpack (HPL)
[6], utilisé pour classer les 500 plus puissants supercalculateurs
au monde [2]. Le HPL est un ensemble de programmes qui
résout un système linéaire dense aléatoirement en double
précision (64 bits) sur des calculateurs à mémoire distribuée.
Dans notre cas, nous l’avons exécuté pour trois tailles
différentes avec un nombre différent de CPU. Le pic théorique
de puissance est estimé à 12 × 1.42 = 17.04 GigaFlop. Le
Tableau IV résume les résultats obtenus.
Nous remarquons que la puissance maximale atteinte est 9.453
GigaFlop, soit 55% de la puissance théorique. Ceci nous
positionne à la 377 ième place de la liste top500 de juin 1997
[7].
TABLEAU I
LISTE DU MATERIEL ET COUT FINANCIER DE LA GRAPPE
Nœuds
Châssis
Carte mère
CPU
Mémoire
Disque Dur
Réseau
Switch
Cout d’un nœud
Cout du réseau
Cout de l’armoire
Cout total
12 nœuds de calcul +01 nœud serveur
Boitier de format 2U standard
PcChips M810
AMD Athlon XP 1700+/1460.468 MHz/ Cache
L2 256 Ko
2 × 128 Moctet SDRAM 133 MHz / 3Goctet au
total
30 Goctet Seagate IDE
Fast Ethernet 100 Mbps
16 ports Cent 10/100 Mbps
35.000,00 DA
25.000,00 DA
53.000,00 DA
533.000,00 DA
III. PERFORMANCE
Pour tester la performance de notre grappe, nous avons utilisé
deux benchmarks. Le premier, NetPipe [5], teste l’efficacité du
réseau de communication. De ce fait, nous l’avons testé en
mode ping qui utilise la couche ICMP sur la couche IP (Fig. 2).
Le Tableau III donne la latence et le débit d’une telle
communication.
Fig. 2 Bande passante du réseau en MegaOctet/sec en fonction de la taille du
message envoyé par le test ping en Octet
TABLEAU III
PERFORMANCE D’UNE COMMUNICATION POINT-A-POINT
Latence intra-nœuds (message de 8octet)
Débit intra-nœuds (message de 2097149 octet)
0.0639 msec
84. 213216 Mbps
TABLEAU IV
RESULTATS DU CODE HIGH PERFORMANCE LINPACK (HPL)
Nombre
de CPU
Taille de la
Matrice
Temps
(sec)
Résultat (GigaFlop)
04
06
12
10.000
12.300
17.700
149.98
251.87
391.14
4.446
4.926
9.453
4th International Conference on Computer Integrated Manufacturing CIP’2007 IV. CONCLUSION
Nous avons montré qu’un réseau de PC est un exemple très
simple pour construire une puissante machine de calcul. Avec
des composantes standard nous pouvons traiter des données à
la même vitesse que les superordinateurs dédiés. La machine a
été testée avec le code HPL de la liste de top500 et nous avons
obtenue une puissance de 9.453 GigaFlop soit 55% de la
puissance théorique. Signalons aussi que notre calculateur
revient à uniquement 55DA/MegaFlop. Ainsi les grappes de
PC peuvent être utilisées chaque fois qu’un organisme
universitaire ou institutionnel à besoin d’une puissance de
calcul. Cette solution s’avère d’autre part une alternative
convenable et performante pour les groupes de recherche dans
les pays en voie de développement. Enfin insistons sur le fait
que notre grappe peut donner une grande souplesse
académique et scientifique pour la résolution des problèmes de
simulation et de prédiction.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
http://www.beowulf.org
http://www.top500.org
http://fedora.redhat.com
http://www.mcs.anl.gov/mpi/mpich/index.html
http://www.scl.ameslab.gov/netpipe/
http://www.netlib.org/benchmark/hpl/
http://www.top500.org/site/1759/list/9
03-04 November 2007