Hi

I have an app.ac1 file like below:
    [tsakai@vixen local]$ cat app.ac1
    -H vixen.egcrc.org   -np 1 Rscript /Users/tsakai/Notes/R/parallel/Rmpi/local/fib.R 5
    -H vixen.egcrc.org   -np 1 Rscript /Users/tsakai/Notes/R/parallel/Rmpi/local/fib.R 6
    -H blitzen.egcrc.org -np 1 Rscript /Users/tsakai/Notes/R/parallel/Rmpi/local/fib.R 7
    -H blitzen.egcrc.org -np 1 Rscript /Users/tsakai/Notes/R/parallel/Rmpi/local/fib.R 8

The program I run is
    Rscript /Users/tsakai/Notes/R/parallel/Rmpi/local/fib.R x
Where x is [5..8].  The machines vixen and blitzen each run 2 runs.

Here’s the program fib.R:
    [ tsakai@vixen local]$ cat fib.R
        # fib() computes, given index n, fibonacci number iteratively
        # here's the first dozen sequence (indexed from 0..11)
        # 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89

    fib <- function( n ) {
            a <- 0
            b <- 1
            for ( i in 1:n ) {
                 t <- b
                 b <- a
                 a <- a + t
            }
        a

    arg <- commandArgs( TRUE )
    myHost <- system( 'hostname', intern=TRUE )
    cat( fib(arg), myHost, '\n' )

It reads an argument from command line and produces a fibonacci number that
corresponds to that index, followed by the machine name.  Pretty simple stuff.

Here’s the run output:
    [tsakai@vixen local]$ mpirun -app app.ac1
    5 vixen.egcrc.org
    8 vixen.egcrc.org
    13 blitzen.egcrc.org
    21 blitzen.egcrc.org

Which is exactly what I expect.  So far so good.

Now I want to run the same thing on cloud.  I launch 2 instances of the same
virtual machine, to which I get to by:
    [tsakai@vixen local]$ ssh –A –I ~/.ssh/tsakai machine-instance-A-public-dns

Now I am on machine A:
    [tsakai@domU-12-31-39-00-D1-F2 ~]$                                        
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ # and I can go to machine B without password authentication,
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ # i.e., use public/private key
    [tsakai@domU-12-31-39-00-D1-F2 ~]$
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ hostname
    domU-12-31-39-00-D1-F2
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ ssh -i .ssh/tsakai domU-12-31-39-0C-C8-01
    Last login: Wed Feb  9 20:51:48 2011 from 10.254.214.4
    [tsakai@domU-12-31-39-0C-C8-01 ~]$
    [tsakai@domU-12-31-39-0C-C8-01 ~]$ # I am now on machine B
    [tsakai@domU-12-31-39-0C-C8-01 ~]$ hostname
    domU-12-31-39-0C-C8-01
    [tsakai@domU-12-31-39-0C-C8-01 ~]$
    [tsakai@domU-12-31-39-0C-C8-01 ~]$ # now show I can get to machine A without using password
    [tsakai@domU-12-31-39-0C-C8-01 ~]$
    [tsakai@domU-12-31-39-0C-C8-01 ~]$ ssh -i .ssh/tsakai domU-12-31-39-00-D1-F2
    The authenticity of host 'domu-12-31-39-00-d1-f2 (10.254.214.4)' can't be established.
    RSA key fingerprint is e3:ad:75:b1:a4:63:7f:0f:c4:0b:10:71:f3:2f:21:81.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'domu-12-31-39-00-d1-f2' (RSA) to the list of known hosts.
    Last login: Wed Feb  9 20:49:34 2011 from 10.215.203.239
    [tsakai@domU-12-31-39-00-D1-F2 ~]$
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ hostname
    domU-12-31-39-00-D1-F2
    [tsakai@domU-12-31-39-00-D1-F2 ~]$
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ exit
    logout
    Connection to domU-12-31-39-00-D1-F2 closed.
    [tsakai@domU-12-31-39-0C-C8-01 ~]$
    [tsakai@domU-12-31-39-0C-C8-01 ~]$ exit
    logout
    Connection to domU-12-31-39-0C-C8-01 closed.
    [tsakai@domU-12-31-39-00-D1-F2 ~]$
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ # back at machine A
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ hostname
    domU-12-31-39-00-D1-F2

As you can see, neither machine uses password for authentication; it uses
public/private key pairs.  There is no problem (that I can see) for ssh invocation
from one machine to the other.  This is so because I have a copy of public key
and a copy of private key on each instance.

The app.ac file is identical, except the node names:
    [tsakai@domU-12-31-39-00-D1-F2 ~]$ cat app.ac1
    -H domU-12-31-39-00-D1-F2 -np 1 Rscript /home/tsakai/fib.R 5
    -H domU-12-31-39-00-D1-F2 -np 1 Rscript /home/tsakai/fib.R 6
    -H domU-12-31-39-0C-C8-01 -np 1 Rscript /home/tsakai/fib.R 7
    -H domU-12-31-39-0C-C8-01 -np 1 Rscript /home/tsakai/fib.R 8

Here’s what happens with mpirun:

    [tsakai@domU-12-31-39-00-D1-F2 ~]$ mpirun -app app.ac1
    tsakai@domu-12-31-39-0c-c8-01's password:
    Permission denied, please try again.
    tsakai@domu-12-31-39-0c-c8-01's password: mpirun: killing job...

    --------------------------------------------------------------------------
    mpirun noticed that the job aborted, but has no info as to the process
    that caused that situation.
    --------------------------------------------------------------------------

    mpirun: clean termination accomplished

    [tsakai@domU-12-31-39-00-D1-F2 ~]$

Mpirun (or somebody else?) asks me password, which I don’t have.
I end up typing control-C.

Here’s my question:
How can I get past authentication by mpirun where there is no password?

I would appreciate your help/insight greatly.

Thank you.

Tena Sakai
tsakai@gallo.ucsf.edu