TP Globus
1) Cadre
Vous devrez rendre «individuellement» les réponses et sources concernant les questions 3, 4, 5.
Récupérez l'archive http://icps.u-strasbg.fr/~latu/grille/TP_globus.tgz
Les machines serveurs pour Globus sont :
- Linux PC : pellinore.u-strasbg.fr, lancelot.u-strasbg.fr, mordred.u-strasbg.fr, gauvain, duality
- Machines ENSEIRB : poulsard, meunier, mondeuse, sciacarello, tibouren, braquet, roussane, mourvedre, duras
Les outils de développements Globus et MPICH-G2 sont sur :
pellinore, lancelot
Les machinesclientes pour Globus sont :
les machines de l'ENSEIRB, pellinore, lancelot, mordred
2) Démarrage
Décompressez TP_globus.tgz, puis faite '$source mpi/environnement'.
//// Obtention du certificatGlobus (A NE PAS FAIRE, DEJA FAIT A VOTRE PLACE) :
/// - Logez-vous sur pellinore : "$ ssh globus[x]@pellinore.u-strasbg.fr"
/// - Demandez un certificat : "$ grid-cert-request"
/// - -> Enter your name, e.g., John Smith: globus[x],
/// - -> Enter PEM pass phrase: [ choisissez votre pass phrase ]
/// - Prévenez votre professeur pour qu'il génère le certificat avec le logiciel «autorité de certification».
Après l'obtention du certificat, logez vous sur la machine pellinore :
- Décompressez TP_globus.tgz, puis '$source mpi/environnement'.
- Vérifiez la présence du certificat usercert.pem dans le répertoire .globus
- '$ grid-proxy-init' (un fichier est créé /tmp/x509* avec votre clé privée décryptée, la pass phrase est identique au password))
- Regarder si votre Distinghuished Name «GlobusX» apparaissez bien dans /etc/grid-security/grid-mapfile
- '$ globus-job-run mordred /bin/hostname'
- '$ globus-job-run duality /bin/hostname'
Depuis l'enseirb :
A. Recopiez votre clé privée SSH 'id_rsa' depuis le répertoire 'mordred.u-strasbg.fr:.ssh' sur votre compte ENSEIRB (par exemple avec 'scp') et mettez cette clé privée dans un fichier globusx_rsa
B. '$ ssh-agent /bin/bash' # uniquement si vous n'avez pas d'agent qui tourne déjà
C. '$ ssh-add globusx_rsa' (entrer la pass phrase SSH : identique au password)
D. '$ ssh -A mordred.u-strasbg.fr' (vous ne devez plus entrer de mot de passe maintenant)
E. Si l'étape D a bien fonctionnée, delogez vous simplement avec exit. Recommencez l'étape D pour les machines : gauvain, lancelot, pellinore.
Sur la machine pellinore :
1. '$ source mpi/environnement'
2. '$ make' (il y a quelques warning causés par les bibliothèques globus)
3. Modifiez le fichier pelli.rsl en fonction de votre propre configuration
4. '$ globusrun -f pelli.rsl' . Attention : 1) le résultat de l'exécution est concaténé au fichier de sortie ; 2) pour arrêter un job: Control-C une seule et UNIQUE fois. Le signal est alors transmis aux processus distants.
5. Essayez le fichier pelli_gau.rsl.
Depuis l'enseirb :
A. Recopiez le répertoire 'mordred.u-strasbg.fr:.globus' à votre racine
B. Sur une des machines CEPAGE faites '$ source mpi/environnement'
C. '$ grid-proxy-init' (un fichier est créé /tmp/x509* avec votre clé privée décryptée, la pass phrase est identique au password)
D. '$ globus-job-run mordred.u-strasbg.fr /bin/hostname'
E. Si l'étape D a bien fonctionnée, recommencez l'étape D pour les machines : gauvain, lancelot, pellinore, duality.
F. L'installation de globus sur l'ENSEIRB est de type « non-root » (utilisateur) au contraire de l'installation sur les machines de Strasbourg. En conséquence, pour lancer un job globus sur l'ENSEIRB, il faut que l'utilisateur lance lui-même un processus gatekeeper sur la machine cible de l'ENSEIRB (alors que dans l'installation en mode « root » le gatekeeper tourne en permanence). Lancez maintenant la commande `globus-personal-gatekeeper -start -port 31000` sur l'une des machines cépages. Le port utilisé (ici 31000 ) doit être dans la plage 30000,40000 et ne doit pas être déjà utilisé.
G. '$ globus-job-run poulsard:31000:/O=FE/OU=CD/OU=u-strasbg.fr/CN=Globus0 /bin/hostname'
Sur la machine pellinore :
1. '$ source mpi/environnement'
2. Lancez une commande du style
'$ globus-job-run poulsard.enseirb.fr:31000:/O=FE/OU=CD/OU=u-strasbg.fr/CN=Globus0 /bin/hostname'
3. Modifiez le fichier braq.rsl en fonction de votre propre configuration pour lancer un job mpi sur l'ENSEIRB
4. Lancez un job mpi qui fait participer des machines de l'ENSEIRB et des machines de Strasbourg (stra_bdx1.rsl).
3) Déploiement d'une appli MPICH-G2
1. Exécutez le programme 'simple' sur les cinq machines de strasbourg (écrire un fichier stra.rsl).
2. Faites participer toutes les machines du point 1) avec une machine de l'ENSEIRB en plus (stra_bdx2.rsl).
4) Scripts GLOBUS
1. Lancez un serveur gass sur mordred
- '$ grid-proxy-init'
- '$ globus-gass-server &'
REMARQUE 3 : Notez que le port utilisé par le gass-server est dans la fourchette spécifiée par la variable d'environnement GLOBUS_TCP_PORT_RANGE.
Lancez sur une des machines CEPAGE de l'ENSEIRB
- '$ grid-proxy-init'
- '$ globus-url-copy <adresse https du serveur>/etc/hosts file:$PWD/thehost'
- '$ cat thehost'
2. Essayez le fichier 'mpi/importefichier.sh' pour réaliser des recopies distantes de fichiers entre les différents machines de la plate-forme. Regarder les différentes possibilités proposées en commentaire dans le scrit.
3. Comprendre le fonctionnement de 'globusrun -s -r pellinore.u-strasbg.fr -f afficheinfo.rsl'.
4. Regarder le fonctionnement du script 'mpi/lancescript'. Ecrire un script qui efface les sorties 'globus__*' du répertoire 'mpi' sur toutes les machines de la plate-forme.
5. Ecrire un script qui compresse le répertoire 'mpi', puis le recopie sur une machine distante.
5) Applications MPICH-G2
1. Ecrire une application MPI qui mesure les performances en communication (la bande passante pour des envois de paquets de 8 Mbit + la latence). Vous donnerez les performances entre les machines locales (strasbourg, et bordeaux) . Vous donnerez des performances inter-sites. Donnez toutes les performances obtenues en Mbit/s.
2. Vous mesurerez ensuite la bande passante agrégée lorsque n processus sur une machine communiquent avec n processus d'une machine sur l'autre site. Donnez les performances aggrégées obtenues en Mbit/s.