Utilisation de MPI dans les salles A102 et A106

Préparation de ssh

Afin d'utiliser MPI, il faut assurer une connectivité ssh directe entre les machines.

  1. Commencez par vous connecter sur chaque machine dans la salle :
    toto@a106-01:~> ssh a106-01
    The authenticity of host 'a106-01 (172.16.20.121)' can't be established.
    RSA key fingerprint is b6:9f:c0:55:2f:8d:da:a3:b5:65:16:2c:a1:09:19:c2.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'a106-01,172.16.20.121' (RSA) to the list of known hosts.
    Password: ********
    Have a lot of fun...
    toto@a106-01:~> exit
    logout
    Connection to a106-01 closed.
    toto@a106-01:~> ssh a106-02
    
    ... 
    
    Maintenant les identités des machines sont enregistrées dans ~/.ssh/known_hosts et il n'y aura plus de questions ennuyeuses.
  2. Créez une paire de clefs :
    toto@a106-01:~> ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/etudiant/toto/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase): [tapez quelque chose ici]
    Enter same passphrase again: [tapez la même chose ici]
    
    Your identification has been saved in /home/etudiant/toto/.ssh/id_rsa.
    Your public key has been saved in /home/etudiant/toto/.ssh/id_rsa.pub.
    The key fingerprint is:
    4a:46:3f:50:37:2b:5a:83:86:30:6d:49:73:e1:e5:8d toto@a106-01
    
    et autorisez l'utilisation de votre clef publique :
    toto@a106-01:~> cp .ssh/id_rsa.pub .ssh/authorized_keys
    
  3. Maintenant, grâce à ssh-agent vous pouvez vous identifier une seule fois au début de la session et vous connecter plusieurs fois sans fournir votre mot de passe jusqu'à la fin de la session :
    
    toto@a106-01:~> ssh-agent bash
    toto@a106-01:~> ssh-add
    Enter passphrase for /home/etudiant/toto/.ssh/id_rsa: [tapez la phrase utilisée dans 2]
    Identity added: /home/etudiant/toto/.ssh/id_rsa (/home/etudiant/toto/.ssh/id_rsa)
    toto@a106-01:~> ssh a106-02
    Last login: Thu Jan 27 15:23:30 2005 from a106-01.pedagogie
    Have a lot of fun...
    toto@a106-02:~> exit
    
    logout
    Connection to a106-02 closed.
    toto@a106-01:~> ssh a106-02 hostname
    a106-02
    toto@a106-01:~>
    

Préparation de l'environnement

  1. Ajoutez la ligne suivante dans votre .bashrc :

    export PATH=/home/personnel/balevs/mpich2/bin:$PATH
    

    Ouvrez un terminal et testez :

    
    toto@a106-01:~> which mpiexec
    /home/personnel/balevs/mpich2/bin/mpiexec
    

    Si vous avez la même réponse, vous pouvez continuer.

  2. Pour des raisons de sécurité, mpd cherche dans votre répertoire personnel un fichier nommé .mpd.conf. Créer un tel fichier :

    cd $HOME
    touch .mpd.conf
    chmod 600 .mpd.conf
    

    Maintenant utilisez votre éditeur de texte pour placer la ligne suivante dedans :

    secretword=<mon mot secret>
    

    Ne pas utiliser votre mot de passe !

  3. Maintenant on va lancer MPD en local :
    mpd &
    mpdtrace
    mpdallexit
    

    La sortie de mpdtrace doit être la machine sur laquelle vous êtes connecté.

    Essayez également d'exécuter une commande non-MPI :

    mpd &
    mpiexec -n 1 hostname
    mpdallexit
    
  4. Maintenant on va lancer un anneau de démons MPD sur un ensemble de machines. Créer un fichier mpd.hosts contenant les noms des machines, un par ligne. Lancer les démons MPD :

    mpdboot -n <nombre de démons> -f mpd.hosts
    

    Le nombre de démons peut être inférieur au nombre d'hôtes dans le fichier. Vérifier si tout va bien :

    mpdtrace
    mpdringtest
    mpdringtest 1000
    

    Lancer une commande :

    mpiexec -n <nombre de processus> hostname
    

    Vous pouvez spécifier un nombre de processus supérieur au nombre de démons :

    mpiexec -l -n 50 hostname
    

    Pour plus d'informations sur l'utilisation de mpiexec faites

    mpiexec --help