Re: [R] Turning control back over to the terminal

2006-02-14 Thread Martin Morgan
Hi Ross --

Not a direct answer to your question, but here's an idea.

I guess you've got some script in a file batch.sh

#! /bin/bash
R --no-save --no-restore --gui=none  `hostname`  21 BYE
# some mpi commands
# other mpi commands
BYE

and you do something like

mpiexec -np 10 batch.sh

Instead, you might create a file script.R

script.R


library(Rmpi)
mpi.spawn.Rslaves(nslaves=10)

variousCmds - function() {
  ## some mpi commands
  if( mpi.comm.rank() == 0  interactive()) {
while( (res - readline( prompt=  )) != DONE ) {
  try(cat(eval(parse(text=res)), \n))
  ## or other, e.g., browser()
}
  }
  ## other mpi commands
}

mpi.bcast.Robj2slave( variousCmds )
mpi.bcast.cmd( variousCmds())
variousCmds()

mpi.close.Rslaves()

Then just run R and

source(script.R)

to debug, and

R --vanilla  script.R

to run. This assumes that the 'some' and 'other' mpi commands include
communication of results between nodes, so that you don't have to rely
on the the return value of variousCmds to harvest the results. This
could be great fun, because you can edit the script file (in emacs,
for e.g.) and rerun without exiting R.

http://ace.acadiau.ca/math/ACMMaC/Rmpi/index.html provided some
inspiration for this, thanks!

Martin

Ross Boylan [EMAIL PROTECTED] writes:

 I'm invoking R from withing a shell script like this
 R --no-save --no-restore --gui=none  `hostname`  21 BYE
 # various commands here
 BYE

 I would like to regain control from the invoking terminal at some point.
 I tried source(stdin()) but got a syntax error, presumably stdin is the
 little shell here snippet (the part between BYE
 and BYE).

 Is there some way to accomplish this?  I am trying to regain control
 inside an R session that has been launched inside an MPI environment
 (and I'm usually running inside emacs).  This is on a Mac OS X cluster.

 I suppose there might be a way to do this with expect, but I'm hoping
 for something simpler.  Potentially, I could make the script itself act
 differently on the head node (the only one I want to debug right now),
 including changing the redirection there.


 -- 
 Ross Boylan  wk:  (415) 514-8146
 185 Berry St #5700   [EMAIL PROTECTED]
 Dept of Epidemiology and Biostatistics   fax: (415) 514-8150
 University of California, San Francisco
 San Francisco, CA 94107-1739 hm:  (415) 550-1062

 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


[R] Turning control back over to the terminal

2006-02-13 Thread Ross Boylan
I'm invoking R from withing a shell script like this
R --no-save --no-restore --gui=none  `hostname`  21 BYE
# various commands here
BYE

I would like to regain control from the invoking terminal at some point.
I tried source(stdin()) but got a syntax error, presumably stdin is the
little shell here snippet (the part between BYE
and BYE).

Is there some way to accomplish this?  I am trying to regain control
inside an R session that has been launched inside an MPI environment
(and I'm usually running inside emacs).  This is on a Mac OS X cluster.

I suppose there might be a way to do this with expect, but I'm hoping
for something simpler.  Potentially, I could make the script itself act
differently on the head node (the only one I want to debug right now),
including changing the redirection there.


-- 
Ross Boylan  wk:  (415) 514-8146
185 Berry St #5700   [EMAIL PROTECTED]
Dept of Epidemiology and Biostatistics   fax: (415) 514-8150
University of California, San Francisco
San Francisco, CA 94107-1739 hm:  (415) 550-1062

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html