You can test my guess by
mpiexec -n 1 R --interactive
Works for me ....
On 21/11/2013 07:17, Prof Brian Ripley wrote:
On 21/11/2013 06:39, jean-michel.perr...@csiro.au wrote:
I'd like someone familiar with the R options initialization to comment
on a difference of behavior within/without mpiexec
I have a (.NET) application with embedded R that is proven to run in a
single process:
./Sample1.exe
on a Debian Linux with R 3.0.2
Running the same code with mpiexec, it fails at the R engine
initialization:
mpiexec -n 1 ./Sample1.exe
Fatal error: you must specify '--save', '--no-save' or '--vanilla'
-------------------------------------------------------------------------
The behavior is actually reproducible with the straight R
mpiexec -n 1 R
Fatal error: you must specify '--save', '--no-save' or '--vanilla'
-------------------------------------------------------------------------
The following is working:
mpiexec -n 1 R --no-save
However in my Sample1 application, I do set up R init options that
should be suitable AFAIK:
rEngine = REngine.CreateInstance("RDotNet");
StartupParameter rStartParams = new StartupParameter
{
Quiet = true,
SaveAction = StartupSaveAction.NoSave,
Slave = false,
Interactive = true,
Verbose = false,
LoadInitFile = true,
LoadSiteFile = true,
RestoreAction = StartupRestoreAction.NoRestore,
NoRenviron = false
};
rEngine.Initialize(rStartParams); // calls the R API
R_SetParams, then setup_Rmainloop
I gather that the following is hit in src/R-3.0.2/src/unix/system.c,
in the function Rf_initialize_R:
if (!R_Interactive && Rp->SaveAction != SA_SAVE &&
Rp->SaveAction != SA_NOSAVE)
R_Suicide(_("you must specify '--save', '--no-save' or
'--vanilla'"));
I don't understand why it would complain if spawned by mpiexec and
fine otherwise.
Most likely because the way you are running R is considered to be batch
use, and R_Interactive is false. You've mixed up two scenarios here:
one an embedded use where we don't have all the code, and mpiexec. In
the mpiexec case, it is likely that stdin is not a ptty.
I do not have a suitable debugging environment to step through a R
with debug symbols, and no stack trace is given as console output.
As an aside, the same code (barring platform specifics) works on Windows.
Deciding if Rterm is interactive is clearly done differently on an OS
without pttys.
--
Brian D. Ripley, rip...@stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel