wiki:jazz/mpdboot

Version 6 (modified by jazz, 16 years ago) (diff)

--

How to run R-MPI on multiple machine with normal user permission

Configure mpd for normal user

  • Fisrt, login as nornal user. Here we login with user id 'jazz'. Then exchange SSH public key to each computing node.
    login as: jazz
    jazz@bio-cluster-12's password:
    jazz@bio-cluster-12:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/jazz/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/jazz/.ssh/id_rsa.
    Your public key has been saved in /home/jazz/.ssh/id_rsa.pub.
    The key fingerprint is:
    XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX jazz@bio-cluster-12
    jazz@bio-cluster-12:~$ for i in 11 10 09 08 07 06; do scp .ssh/id_rsa.pub bio-cluster-$i:.ssh/authorized_keys; done
    
  • setup .mpd.conf for each compute node in $HOME
    jazz@bio-cluster-12:~$ echo "MPD_SECRETWORD=${user}$$" > ~/.mpd.conf
    jazz@bio-cluster-12:~$ chmod 600 .mpd.conf
    jazz@bio-cluster-12:~$ for i in 11 10 09 08 07 06
    > do
    > scp .mpd.conf bio-cluster-$i:.
    > done
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    .mpd.conf                                     100%   21     0.0KB/s   00:00
    
  • setup mpd.hosts on localhost
    jazz@bio-cluster-12:~$ cat > mpd.hosts << EOF
    > bio-cluster-11
    > bio-cluster-10
    > bio-cluster-09
    > bio-cluster-08
    > bio-cluster-07
    > bio-cluster-06
    > EOF
    
  • run mpdboot for 7 nodes and use mpdtrace to check the status of mpd process on each compute node. mpdringtest can test the speed of message passing. mpdallexit to terminate all mpd processes.
    jazz@bio-cluster-12:~$ mpdboot -n 7
    jazz@bio-cluster-12:~$ mpdtrace -l
    bio-cluster-12_54092 (10.220.202.219)
    bio-cluster-08_38361 (10.220.202.223)
    bio-cluster-09_52923 (10.220.202.222)
    bio-cluster-11_33377 (10.220.202.220)
    bio-cluster-10_33103 (10.220.202.221)
    bio-cluster-06_59631 (10.220.202.225)
    bio-cluster-07_59533 (10.220.202.224)
    jazz@bio-cluster-12:~$ mpdringtest 100
    time for 100 loops = 0.0729811191559 seconds
    jazz@bio-cluster-12:~$ mpdallexit
    

Test 1: single mpd and R-MPI in localhost

  • run mpd in localhost
    jazz@bio-cluster-12:~$ mpd &
    [1] 1505
    jazz@bio-cluster-12:~$ mpdtrace -l
    bio-cluster-12_37007 (10.220.202.219)
    
  • BTW, you can also use mpdboot to run mpd in localhost
    jazz@bio-cluster-12:~$ mpdboot
    [1]+  Done                    mpd
    jazz@bio-cluster-12:~$ mpdtrace -l
    bio-cluster-12_44810 (10.220.202.219)
    
  • run R-MPI with single mpd in localhost
    jazz@bio-cluster-12:~$ R
    
    R version 2.4.0 Patched (2006-11-25 r39997)
    Copyright (C) 2006 The R Foundation for Statistical Computing
    ISBN 3-900051-07-0
    
    > library(Rmpi)
    > mpi.spawn.Rslaves()
            1 slaves are spawned successfully. 0 failed.
    master (rank 0, comm 1) of size 2 is running on: bio-cluster-12
    slave1 (rank 1, comm 1) of size 2 is running on: bio-cluster-12
    > mpi.close.Rslaves()
    mpi.close.Rslaves()
    [1] 1
    > mpi.quit(save="no")
    mpi.quit(save="no")
    jazz@bio-cluster-12:~$