[R] cannot load pbdMPI package after compilation

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jun 10 08:19:20 CEST 2013


On 10/06/2013 03:17, Pascal Oettli wrote:
> 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).

But the system used to accept that version of pdbMPI for CRAN used it, 
with gcc.

The issue here is likely to be using the Intel compiler with OpenMPI. 
This is a programming matter really off-topic for R-help (see the 
posting guide).  The first port of call for help is the package 
maintainer, then if that does not help, the R-devel list.  But very few 
R users have access to an Intel compiler, let alone one as recent as 
that, and you will be expected to use a debugger for yourself (see 
'Writing R Extensions').

>
> 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 ...
>>
>>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


-- 
Brian D. Ripley,                  ripley at 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



More information about the R-help mailing list