Page suivantePage pr�c�denteTable des mati�res

3. Aper�u de l'Architecture

3.1 A quoi cela ressemble-t-il ?

Je pense que la meilleure fa�on de d�crire l'architecture d'un superordinateur Beowulf est d'utiliser un exemple qui est tr�s proche du vrai Beowulf, mais aussi familier � beaucoup d'administrateurs syst�mes. L'exemple le plus proche d'une machine Beowulf est un Unix de laboratoire avec un serveur et un certain nombre de clients. Pour �tre plus sp�cifique, j'utiliserai le DEC Alpha au laboratoire d'informatique de la Facult� des Sciences de l'USQ comme exemple. Le serveur est appel� beldin et les machines clientes sont scilab01, scilab02, scilab03, jusqu'� scilab20. Tous les clients ont une copie locale du syst�me d'exploitation Digital Unix 4.0 install�, mais ont l'espace disque utilisateur (/home) et /usr/local du serveur via NFS (Network File System). Chaque client a une entr�e pour le serveur et tous les autres clients dans son fichier /etc/hosts.equiv: ainsi tous les clients peuvent ex�cuter une cession distante (rsh) vers tout autre. La machine serveur est un serveur NIS pour tout le laboratoire, ainsi les informations des comptes sont les m�mes sur toutes les machines. Une personne peut s'asseoir � la console de scilab02, se logue, et a le m�me environnement que s'il �tait logu� sur le serveur, ou scilab15. La raison pour laquelle les clients ont la m�me pr�sentation est que le syst�me d'exploitation est install� et configur� de la m�me fa�on sur toutes les machines, les espaces /home et /usr/local sont physiquement sur le m�me serveur et les clients y acc�dent via NFS. Pour plus d'informations sur NIS et NFS, reportez-vous � NIS et NFS.

3.2 Comment utiliser les autres noeuds ?

Maintenant que nous avons une vision correcte de l'architecture du syst�me, regardons comment nous pouvons utiliser les cycles CPU des machines dans le laboratoire. Toute personne peut se loguer sur n'importe laquelle des machines, et lancer un programme dans son r�pertoire de base, mais peut aussi �clater la m�me t�che sur diff�rentes machines simplement en ex�cutant un shell distant. Par exemple, si nous voulons calculer la somme des racines carr�es de tous les entiers inclus strictement entre 1 et 10, nous �crivons un simple programme appel� sigmasqrt (voir code source) qui fait cela exactement. Pour calculer la somme des racines carr�es des nombres de 1 � 10, nous ex�cutons :

[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 10
22.468278
real    0m0.029s
user    0m0.001s
sys     0m0.024s
La commande time nous permet de v�rifier le temps mis en ex�cutant cette t�che. Comme nous pouvons le voir, cet exemple a pris seulement une petite fraction de seconde (0.029 sec) pour s'ex�cuter, mais que se passe-t-il si je veux ajouter la racine carr�e des entiers de 1 � 1 000 000 000 ? Essayons ceci, et calculons le temps �coul�:

[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 1000000000
21081851083600.559000
real    16m45.937s
user    16m43.527s
sys     0m0.108s

Cette fois, le temps d'ex�cution de ce programme est consid�rablement sup�rieur. La question �vidente qui se pose est: est-il possible de diminuer le temps d'ex�cution de cette t�che et comment ? La r�ponse �vidente est de d�couper la t�che en un ensemble de sous-t�ches et d'ex�cuter ces sous-t�ches en parall�le sur tous les ordinateurs. Nous pouvons s�parer la grande t�che d'addition en 20 parties en calculant un intervalle de racines carr�es et en les additionnant sur un seul noeud. Quand tous les noeuds ont fini les calculs et retournent leurs r�sultats, les 20 nombres peuvent �tre additionn�s ensemble et fournir la solution finale. Avant de lancer ce processus, nous allons cr�er un "named pipe" qui sera utilis� par tous les processus pour �crire leurs r�sultats:

[jacek@beldin sigmasqrt]$ mkfifo output
[jacek@beldin sigmasqrt]$ ./prun.sh & time cat output | ./sum
[1] 5085
21081851083600.941000
[1]+  Done                    ./prun.sh
real    0m58.539s
user    0m0.061s
sys     0m0.206s

Cette fois, cela prend 58.5 secondes. C'est le temps qui a �t� n�cessaire entre le d�marrage du processus et le moment o� les noeuds ont fini leurs calculs et �crit leurs r�sultats dans la pipe. Ce temps n'inclut pas l'addition finale des 20 nombres, mais il repr�sente une petite fraction de seconde et peut �tre ignor�. Nous pouvons voir qu'il y a un avantage significatif � ex�cuter une t�che en parall�le. En fait la t�che en parall�le s'est ex�cut�e 17 fois plus vite, ce qui est tr�s raisonnable pour un facteur 20 d'augmentation du nombre de CPU. Le but de l'exemple pr�c�dent est d'illustrer la m�thode la plus simple de parall�liser du code concurrent. En pratique, des exemples aussi simples sont rares et diff�rentes techniques (les API de PVM et PMI) sont utilis�es pour obtenir le parall�lisme.

3.3 En quoi un Beowulf diff�re-t-il d'un COW ?

Le laboraroire d'informatique d�crit plus haut est un exemple parfait d'un cluster de stations (COW). Qu'est-ce qui rend donc Beowulf si sp�cial et en quoi diff�re-t-il d'un COW ? En r�alit� il n'y a pas beaucoup de diff�rence, mais un Beowulf a quelques caract�ristiques uniques. La premi�re est que dans la plupart des cas, les noeuds clients dans un cluster Beowulf n'ont pas de clavier, de souris, de carte graphique ni de moniteur. Tous les acc�s aux noeuds clients sont faits par une connection distante du noeud serveur, un noeud d�di� � une console, ou une console s�rie. Cela parce qu'il n'y a aucun besoin pour un noeud client d'acc�der � des machines en dehors du cluster, ni pour des machines en dehors du cluster d'acc�der � des noeuds clients directement; c'est une pratique habituelle que les noeuds clients utilisent des adresses IP priv�es comme les plages d'adresses 10.0.0.0/8 ou 192.168.0.0/16 (RFC 1918 http://www.alternic.net/rfcs/1900/rfc1918.txt.html). D'habitude la seule machine qui est aussi connect�e au monde externe en utilisant une seconde carte r�seau est le noeud serveur. La fa�on la plus habituelle d'acc�der au syst�me est soit d'utiliser la console du serveur directement, soit de faire un telnet ou un login distant (rlogin) sur le noeud serveur d'une station personnelle. Une fois sur celui-ci, les utilisateurs peuvent �diter et compiler leur code, et aussi distribuer les t�ches sur tous les noeuds du cluster. Dans la plupart des cas, les COW sont utilis�es pour des calculs parall�les la nuit et les week-ends, quand les stations ne sont pas utilis�es pendant les journ�es de travail, utilisant ainsi les p�riodes de cycles libres des CPU. D'autre part, le Beowulf est une machine d�di�e au calcul parall�le, et optimis�e pour cette t�che. Il donne aussi un meilleur rapport prix/performance puisqu'il est constitu� de composants grand public et qu'il tourne principalement � partir de logiciels libres. Beowulf donne aussi davantage l'image d'une seule machine, ce qui permet aux utilisateurs de voir le cluster Beowulf comme une seule station de calcul.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:39