[R] Installation of R Rmpi and snow on cluster running Platform MPI and PBS Pro
Segovia, Andrea
Andrea.Segovia at ssc-spc.gc.ca
Mon Jan 18 19:51:59 CET 2016
Hello,
I am new to R support. I am trying to install R on a compute cluster running Platform MPI and PBS Pro.
I have installed R, Rmpi and snow - at first glance successfully.
When I try to run a simple Rmpi program, however, I get a Segmentation fault on mpi send.
The error messages reads as follows:
segoviaa at c01 Rmpi_examples]$ mpirun -e PATH=/export/opt/R-3.2.2/bin:$PATH -hostfile myhostfile -np 8 R --no-save -q <
mpi_test2.r
*** caught segfault ***
ddress 0x78, cause 'memory not mapped'
raceback:
1: .Call("mpi_send", .force.type(x, type), as.integer(type), as.integer(dest), as.integer(tag), as.integer(comm), P
CKAGE = "Rmpi")
2: mpi.send(x = scmd.arg, type = 4, dest = i, tag = 50000 + i, comm = comm)
3: mpi.bcast.cmd(.mpi.worker.exec, tag = tag, ret = ret, simplify = simplify, comm = comm)
4: mpi.remote.exec(mpi.get.processor.name(), comm = comm)
5: unlist(mpi.remote.exec(mpi.get.processor.name(), comm = comm))
6: slave.hostinfo(1)
borting ...
PI Application rank 0 killed before MPI_Finalize() with signal 11
The program I am running is:
[segoviaa at c01 Rmpi_examples]$ more Rmpi_test2.r
# The corresponding cluster of processes is already pre-constructed with mpirun.
# This where the main work happens
mpi.remote.exec(paste("Rank",mpi.comm.rank(),"on",Sys.info()[c("nodename")]))
# Shut down the cluster and clean up any remaining connections between machines.
mpi.close.Rslaves()
mpi.quit()
The Rprofile is located in the running directory, it is being run, and looks like this:
# This R profile can be used when a cluster does not allow spawning or a job
# scheduler is required to launch any parallel jobs. Saving this file as
# .Rprofile in the working directory or root directory. For unix platform, run
# mpirun -n [cpu numbers] R --no-save -q
# Another way is to modify R_home_dir/bin/R by adding the following line after
# R_HOME_DIR
# R_PROFILE=${R_HOME_DIR}/library/Rmpi/Rprofile; export R_PROFILE
# For windows platform with mpich2, use mpiexec wrapper and specify a working
# directory where .Rprofile is inside.
# Cannot be used as Rprofile.site because it will not work
# If no CPU consumptions of slaves while waiting are desirable, change
# nonblocak=FALSE to nonblock=TRUE and change sleep time accordingly
# Following system libraries are not loaded automatically. So manual loads are
# needed.
#
library(utils)
library(stats)
library(datasets)
library(grDevices)
library(graphics)
library(methods)
#Change to TRUE if you don't want any slave host info
quiet=FALSE
if (!invisible(library(Rmpi,logical.return = TRUE))){
warning("Rmpi cannot be loaded")
q(save = "no")
}
options(error=quote(assign(".mpi.err", FALSE, envir = .GlobalEnv)))
if (mpi.comm.size(0) > 1)
invisible(mpi.comm.dup(0,1))
if (mpi.comm.rank(0) >0){
#sys.load.image(".RData",TRUE)
options(echo=FALSE)
.comm <- 1
mpi.barrier(0)
repeat
try(eval(mpi.bcast.cmd(rank=0,comm=.comm, nonblock=FALSE, sleep=0.1)),TRUE)
if (is.loaded("mpi_comm_disconnect"))
mpi.comm.disconnect(.comm)
else mpi.comm.free(.comm)
mpi.quit()
}
if (mpi.comm.rank(0)==0) {
#options(echo=TRUE)
mpi.barrier(0)
if(mpi.comm.size(0) > 1 && !quiet)
slave.hostinfo(1)
}
.Last <- function(){
if (is.loaded("mpi_initialize")){
if (mpi.comm.size(1) > 1){
print("Please use mpi.close.Rslaves() to close slaves")
mpi.close.Rslaves(comm=1)
}
}
print("Please use mpi.quit() to quit R")
mpi.quit()
}
I am not certain that the R installation was successful, either. I installed R as follows:
./configure --prefix=/export/opt/R-3.2.2
make
make check
make install
make install-pdf
make install-tests
I installed Rmpi as follows:
[root at c01 R-3.2.2]# R CMD INSTALL Rmpi_0.6-5.tar.gz "--configure-args=--with-Rmpi-include=/export/opt/platform_mpi/include/ --with-Rmpi-libpath=/export/opt/platform_mpi/lib/linux_amd64/ --with-Rmpi-type=OPENMPI"
I installed snow as follows:
[root at c01 R-3.2.2]# R CMD INSTALL snow -l /export/opt/R-3.2.2
* installing *source* package 'snow' ...
** package 'snow' successfully unpacked and MD5 sums checked
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (snow)
Any suggestions would be greatly appreciated.
Thank you,
Andrea
Andrea Segovia - Team Lead, HPC Services
Science Portfolio/Portfolio de la Science
Shared Services Canada/Services partagés Canada
More information about the R-help
mailing list