[R] cannot load pbdMPI package after compilation

Pascal Oettli kridox at ymail.com
Mon Jun 10 04:17:22 CEST 2013


Hello,

I am not sure whether it helps you, but I was able to install it.

OpenSUSE 12.3
R version 3.0.1 Patched (2013-06-09 r62918)
pbdMPI version 0.1-6
gcc version 4.7.2
OpenMPI version 1.6.3

I didn't try with the most recent version of ompi (1.6.4).

Regards,
Pascal


On 07/06/13 21:42, Antoine Migeon wrote:
> Hello,
>
> I try to install pbdMPI.
> Compilation successful, but load fails with segfault.
>
> Is anyone can help me?
>
> R version 3.0.0
> pbdMPI version 0.1-6
> Intel compiler version 13.1.1
> OpenMPI version 1.6.4-1
> CPU Intel x86_64
>
> # R CMD INSTALL pbdMPI_0.1-6.tar.gz
> ..
> ....
> checking for gcc... icc -std=gnu99
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether icc -std=gnu99 accepts -g... yes
> checking for icc -std=gnu99 option to accept ISO C89... none needed
> checking for mpirun... mpirun
> checking for mpiexec... mpiexec
> checking for orterun... orterun
> checking for sed... /bin/sed
> checking for mpicc... mpicc
> checking for ompi_info... ompi_info
> checking for mpich2version... F
> found sed, mpicc, and ompi_info ...
>>> TMP_INC_DIRS = /opt/openmpi/1.6.4-1/intel-13.1.1/include
> checking /opt/openmpi/1.6.4-1/intel-13.1.1/include ...
> found /opt/openmpi/1.6.4-1/intel-13.1.1/include/mpi.h ...
>>> TMP_LIB_DIRS = /opt/openmpi/1.6.4-1/intel-13.1.1/lib64
> checking /opt/openmpi/1.6.4-1/intel-13.1.1/lib64 ...
> found /opt/openmpi/1.6.4-1/intel-13.1.1/lib64/libmpi.so ...
> found mpi.h and libmpi.so ...
>>> TMP_INC = /opt/openmpi/1.6.4-1/intel-13.1.1/include
>>> TMP_LIB = /opt/openmpi/1.6.4-1/intel-13.1.1/lib64
> checking for openpty in -lutil... yes
> checking for main in -lpthread... yes
>
> ******************* Results of pbdMPI package configure *****************
>
>>> TMP_INC = /opt/openmpi/1.6.4-1/intel-13.1.1/include
>>> TMP_LIB = /opt/openmpi/1.6.4-1/intel-13.1.1/lib64
>>> MPI_ROOT =
>>> MPITYPE = OPENMPI
>>> MPI_INCLUDE_PATH = /opt/openmpi/1.6.4-1/intel-13.1.1/include
>>> MPI_LIBPATH = /opt/openmpi/1.6.4-1/intel-13.1.1/lib64
>>> MPI_LIBS =  -lutil -lpthread
>>> MPI_DEFS = -DMPI2
>>> MPI_INCL2 =
>>> PKG_CPPFLAGS = -I/opt/openmpi/1.6.4-1/intel-13.1.1/include  -DMPI2
> -DOPENMPI
>>> PKG_LIBS = -L/opt/openmpi/1.6.4-1/intel-13.1.1/lib64 -lmpi  -lutil
> -lpthread
> *************************************************************************
> ..
> icc -std=gnu99 -I/usr/local/R/3.0.0/intel13/lib64/R/include -DNDEBUG
> -I/opt/openmpi/1.6.4-1/intel-13.1.1/include  -DMPI2 -DOPENMPI -O3
> -fp-model precise -pc 64 -axAVX    -fpic  -O3 -fp-model precise  -pc 64
> -axAVX  -c comm_errors.c -o comm_errors.o
> icc -std=gnu99 -I/usr/local/R/3.0.0/intel13/lib64/R/include -DNDEBUG
> -I/opt/openmpi/1.6.4-1/intel-13.1.1/include  -DMPI2 -DOPENMPI -O3
> -fp-model precise -pc 64 -axAVX    -fpic  -O3 -fp-model precise  -pc 64
> -axAVX  -c comm_sort_double.c -o comm_sort_double.o
> .
> ..
> ....
> ** testing if installed package can be loaded
> sh: line 1:  2905 Segmentation fault
> '/usr/local/R/3.0.0/intel13/lib64/R/bin/R' --no-save --slave 2>&1 <
> /tmp/RtmpGkncGK/file1e541c57190
> ERROR: loading failed
>
>   *** caught segfault ***
> address (nil), cause 'unknown'
>
> Traceback:
>   1: .Call("spmd_initialize", PACKAGE = "pbdMPI")
>   2: fun(libname, pkgname)
>   3: doTryCatch(return(expr), name, parentenv, handler)
>   4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
>   5: tryCatchList(expr, classes, parentenv, handlers)
>   6: tryCatch(fun(libname, pkgname), error = identity)
>   7: runHook(".onLoad", env, package.lib, package)
>   8: loadNamespace(package, c(which.lib.loc, lib.loc))
>   9: doTryCatch(return(expr), name, parentenv, handler)
> 10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 11: tryCatchList(expr, classes, parentenv, handlers)
> 12: tryCatch(expr, error = function(e) {    call <- conditionCall(e)
> if (!is.null(call)) {        if (identical(call[[1L]],
> quote(doTryCatch)))             call <- sys.call(-4L)        dcall <-
> deparse(call)[1L]        prefix <- paste("Error in", dcall, ": ")
> LONG <- 75L        msg <- conditionMessage(e)        sm <- strsplit(msg,
> "\n")[[1L]]        w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L],
> type = "w")        if (is.na(w))             w <- 14L + nchar(dcall,
> type = "b") + nchar(sm[1L],                 type = "b")        if (w >
> LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix
> <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")
> .Internal(seterrmessage(msg[1L]))    if (!silent &&
> identical(getOption("show.error.messages"),         TRUE)) {
> cat(msg, file = stderr())        .Internal(printDeferredWarnings())
> }    invisible(structure(msg, class = "try-error", condition = e))})
> 13: try({    ns <- loadNamespace(package, c(which.lib.loc, lib.loc))
> env <- attachNamespace(ns, pos = pos, deps)})
> 14: library(pkg_name, lib.loc = lib, character.only = TRUE,
> logical.return = TRUE)
> 15: withCallingHandlers(expr, packageStartupMessage = function(c)
> invokeRestart("muffleMessage"))
> 16: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,
> character.only = TRUE, logical.return = TRUE))
> 17: doTryCatch(return(expr), name, parentenv, handler)
> 18: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 19: tryCatchList(expr, classes, parentenv, handlers)
> 20: tryCatch(expr, error = function(e) {    call <- conditionCall(e)
> if (!is.null(call)) {        if (identical(call[[1L]],
> quote(doTryCatch)))             call <- sys.call(-4L)        dcall <-
> deparse(call)[1L]        prefix <- paste("Error in", dcall, ": ")
> LONG <- 75L        msg <- conditionMessage(e)        sm <- strsplit(msg,
> "\n")[[1L]]        w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L],
> type = "w")        if (is.na(w))             w <- 14L + nchar(dcall,
> type = "b") + nchar(sm[1L],                 type = "b")        if (w >
> LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix
> <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")
> .Internal(seterrmessage(msg[1L]))    if (!silent &&
> identical(getOption("show.error.messages"),         TRUE)) {
> cat(msg, file = stderr())        .Internal(printDeferredWarnings())
> }    invisible(structure(msg, class = "try-error", condition = e))})
> 21: try(suppressPackageStartupMessages(library(pkg_name, lib.loc =
> lib,     character.only = TRUE, logical.return = TRUE)))
> 22: tools:::.test_load_package("pbdMPI",
> "/usr/local/R/3.0.0/intel13/lib64/R/library")
> aborting ...
>
>



More information about the R-help mailing list