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
