Hello,

J'ai besoin de comprendre le comportement d'une application parall�le sur
une architecture parall�le de type cluster Beowulf. L'application est �crite
dans un langage quelconque (typiquement Fortran ou C), le mod�le de 
programmation
parall�le est celui par �change de messages impl�ment� � l'aide de MPI 
(impl�mentation
MPICH).

Afin de d�velopper un premier mod�le, nous aimerions disposer d'un certain
nombre de param�tres pour caract�riser le comportement de cette application.
Typiquement la charge CPU, m�moire , swapping par noeud, mais aussi la charge
r�seau.

Et c'est ce dernier point qui est l'objet de ma question.

Comment s�parer le trafic sur chaque noeud utilis� par l'application en trois:

- Trafic NFS (les IO sur cette machine se font de fa�on centralis�e)
- Trafic MPI (les messages eux-m�mes)
- Le reste 

Je pr�cise qu'actuellement j'ai les donn�es suivantes :

- Temps exacts (Timestamps) du d�but et de fin de l'application (donn�es
fournies par le RMS, ici OpenPBS)
- Des valeurs moyenn�es toutes les 30 secondes durant la dur�e de l'application
du nombre de paquets (somme globale par noeud), de leur taille, etc... ayant
transit� en entr�e et en sortie sur chaque noeud (donn�es fournies par Ganglia.
Je crois savoir que Ganglia r�cup�re ces donn�es en RT par lecture de /proc
- moyenn�es sur un intervalle plus petit - sur chaque noeud, puis centralisation
sur la frontale)
- Je dispose du trafic NFS (donn�es fournies par un appel � tcpdump avec
un filtrage des paquets, ceci sur chaque noeud)
- RSH entre les noeuds (pas SSH)
- Les noeuds tournent Linux Kernel 2.4

D'autre part je ne veux pas utiliser l'option de compilation -mpilog, j'aimerai
prendre l'application telle quelle et en tirer mes param�tres de mani�re
totalement cach�e � l'utilisateur (celui qui run une application)... ceci
m�me si il peut y avoir - dans une p�riode de tests - une grosse perte de
performances d�e aux senseurs suppl�mentaires (� Ganglia par exemple) tel
tcpdump.


En r�sum�: Comment discriminer PUIS mesurer la taille / le nombre / etc....
des packets MPI transitant par les NIC de chacun des noeuds allou�s � 
l'application
sans recompiler l'application (en y calculant ces valeurs, ou en ajoutant
l'option -mpilog) pendant un intervalle de temps de X secondes / minutes
/ heures ?

Ce que j'ai tent�:

- Trouver une description du header MPI ajout� � celui de TCP/IP > pas trouv�
?!?
- Parsing de tous les paquets TCP capt�s par tcpdump > pas efficient !
- essai de construction de filtres (dans un premier temps de capture, de
display dans un second) pour ethereal.. je ne suis pas un sp�cialiste de
ce logiciel.


Avec mes meilleures salutations (et mes remerciements d'avance)

Vincent

P.S: Dans un second temps, r�ussir � discriminer les paquets MPI en One-to-One,
One-to-All, All-to-One, All-to-All.

-------------------------------------------
Vincent Keller
Universit� de Gen�ve - Section Informatique
E-mail: [EMAIL PROTECTED]
Home Page: http://cui.unige.ch/~kellev01
-------------------------------------------

_______________________________________________
gull mailing list
[email protected]
http://lists.alphanet.ch/mailman/listinfo/gull

Répondre à