[R] Rmpi and x86

Martin Morgan mtmorgan at fhcrc.org
Tue Aug 28 19:51:51 CEST 2007


Edna --

I'll keep this on the list, so that others will learn, and others will
correct me when I give bad advice!

> relocation R_X86_64_32 against `lam_mpi_comm_world' can not be used
> when making a shared object; recompile with -fPIC

This likely means that your lam was not built with the --enable-shared
configure option, as documented in the installation guide. (It might
also mean that R was not configure with --enable-R-shlib; the message
is opaque to me).

I believe others on the list have only had success with specific
versions of LAMMPI, so that would be the next place to look (after
sorting out the shared library issue)

Martin

"Edna Bell" <edna.bell01 at gmail.com> writes:

> Here is what happens:
> Note: lam-7.1.4
>
> linux-tw9c:/home/bell/Desktop/R-2.5.1/bin # ./R CMD INSTALL --clean
> Rmpi_0.5-3.tar.gz
> * Installing to library '/home/bell/Desktop/R-2.5.1/library'
> * Installing *source* package 'Rmpi' ...
> checking for gcc... gcc
> checking for C compiler default output... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking how to run the C preprocessor... gcc -E
> checking for egrep... grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking mpi.h usability... yes
> checking mpi.h presence... yes
> checking for mpi.h... yes
> Try to find libmpi or libmpich ...
> checking for main in -lmpi... yes
> Try to find liblam ...
> checking for main in -llam... yes
> checking for openpty in -lutil... yes
> checking for main in -lpthread... yes
> configure: creating ./config.status
> config.status: creating src/Makevars
> ** libs
> gcc -std=gnu99 -I/home/bell/Desktop/R-2.5.1/include
> -I/home/hodgesse/Desktop/R-2.5.1/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1   -DMPI2 -I/usr/local/include
> -fpic  -g -O2 -c conversion.c -o conversion.o
> gcc -std=gnu99 -I/home/bell/Desktop/R-2.5.1/include
> -I/home/bell/Desktop/R-2.5.1/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1   -DMPI2 -I/usr/local/include
> -fpic  -g -O2 -c internal.c -o internal.o
> gcc -std=gnu99 -I/home/bell/Desktop/R-2.5.1/include
> -I/home/bell/Desktop/R-2.5.1/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1   -DMPI2 -I/usr/local/include
> -fpic  -g -O2 -c RegQuery.c -o RegQuery.o
> gcc -std=gnu99 -I/home/bell/Desktop/R-2.5.1/include
> -I/home/bell/Desktop/R-2.5.1/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1   -DMPI2 -I/usr/local/include
> -fpic  -g -O2 -c Rmpi.c -o Rmpi.o
> gcc -std=gnu99 -shared -L/usr/local/lib64 -o Rmpi.so conversion.o
> internal.o RegQuery.o Rmpi.o -lmpi -llam -lutil -lpthread
> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld:
> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../lib64/libmpi.a(infoset.o):
> relocation R_X86_64_32 against `lam_mpi_comm_world' can not be used
> when making a shared object; recompile with -fPIC
> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../lib64/libmpi.a:
> could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make: *** [Rmpi.so] Error 1
> chmod: cannot access `/home/bell/Desktop/R-2.5.1/library/Rmpi/libs/*':
> No such file or directory
> ERROR: compilation failed for package 'Rmpi'
> ** Removing '/home/bell/Desktop/R-2.5.1/library/Rmpi'
> linux-tw9c:/home/bell/Desktop/R-2.5.1/bin #
>
>
>
> On 8/28/07, Martin Morgan <mtmorgan at fhcrc.org> wrote:
>> Hi Edna --
>>
>> I have Rmpi 0.5-3 under R 2.5.1 with LAM 7.1.2 installed on an x86_64
>> SuSE 10.0.
>>
>> I installed (as a regular user, to my own disc space) LAM and ran
>> through some basic checks (lamboot / lamhalt, checking that I could
>> compile the demo programs)
>>
>> After downloading Rmpi_0.5.3.tar.gz, I did
>>
>> CC=mpicc R CMD INSTALL --clean Rmpi_0.5.3.tar.gz
>>
>> the configure script of Rmpi found libmpi and liblam in my LAMHOME,
>> and also -lutil and -lpthread. Source files compiled without any
>> issues, and the package installed. If I have not issued a lamboot
>> command, inside R,
>>
>> > library(Rmpi)
>>
>> loads the library and indicates that it is starting lam. If I have
>> already issued lamboot, then library(Rmpi) loads as expected.
>>
>> Where do things go wrong for you?
>>
>> Martin
>>
>> "Edna Bell" <edna.bell01 at gmail.com> writes:
>>
>> > Dear R Gurus:
>> >
>> > Is there a problem with Rmpi on x86 with SUSE 10.1, please?
>> >
>> > I've tried everything and it still won't load.
>> >
>> > Has anyone else dealt with this please?
>> >
>> > Thanks,
>> > Edna Bell
>> >
>> > ______________________________________________
>> > R-help at 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
>> > and provide commented, minimal, self-contained, reproducible code.
>>
>> --
>> Martin Morgan
>> Bioconductor / Computational Biology
>> http://bioconductor.org
>>

-- 
Martin Morgan
Bioconductor / Computational Biology
http://bioconductor.org



More information about the R-help mailing list