Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^2: OpenMPI and Perl

by spadacciniweb (Deacon)
on Nov 19, 2009 at 15:32 UTC ( #808181=note: print w/ replies, xml ) Need Help??


in reply to Re: OpenMPI and Perl
in thread OpenMPI and Perl

I have downloaded module from CPAN, and build with

perl Makefile.PL make make install

I haven't seen any warnings or errors.
However, I am recompiling the OpenMPI lib as almut has suggested.

thank you,
Mariano

(($_="Mzz ojjdloobnf jt uvy5502383")=~y~b-zg2-5c96-81~a-z0-9~s)=~s~~~s; print


Comment on Re^2: OpenMPI and Perl
Download Code
Re^3: OpenMPI and Perl
by spadacciniweb (Deacon) on Nov 24, 2009 at 15:50 UTC
    Few later, update this question...

    As almut has written, I have recompiled OpenMPI lib, and it fix the problem.

    Thank you,
    Mariano

    (($_="Mzz ojjdloobnf jt uvy5502383")=~y~b-zg2-5c96-81~a-z0-9~s)=~s~~~s; print

      I am having the same problem as tux300181 (it seems to be reported a bit recently) However none of the published fixes appear to be working.

      The symptom is:
      [vlad@bd01 Parallel-MPI-Simple-0.03]$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl Can't load 'blib/arch/auto/Parallel/MPI/Simple/Simple.so' for module P +arallel::MPI::Simple: blib/arch/auto/Parallel/MPI/Simple/Simple.so: u +ndefined symbol: ompi_mpi_char at /usr/lib64/perl5/5.10.0/x86_64-linu +x-thread-multi/DynaLoader.pm line 203. at ic.pl line 3
      This appears to be a loader problem, although I am not sure, any assistance is greatly appreciated.
      What I did:
      perl Makefile.PL CC=mpicc CCFLAGS="-lopenmpi -m64 -L/usr/local/lib/ope +nmpi -L/usr/local/lib/" LIB=/usr/local/lib [vlad@bd01 Parallel-MPI-Simple-0.03]$ make mpicc -c -lopenmpi -m64 -L/usr/local/lib/openmpi -L/usr/local/lib/ - +O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protec +tor --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.03\ +" -DXS_VERSION=\"0.03\" -fPIC "-I/usr/lib64/perl5/5.10.0/x86_64-linux +-thread-multi/CORE" Simple.c Simple.xs: In function ‘_Gather’: Simple.xs:131: warning: null argument where non-null required (argumen +t 3) Simple.xs:124: warning: unused variable ‘rank’ Simple.xs: In function ‘_Comm_split’: Simple.xs:204: warning: unused variable ‘realcolour’ Simple.c: In function ‘Finalize’: Simple.xs:111: warning: control reaches end of non-void function Simple.c: In function ‘Barrier’: Simple.xs:106: warning: control reaches end of non-void function Simple.c: In function ‘Init’: Simple.xs:82: warning: control reaches end of non-void function Simple.c: In function ‘_Gather’: Simple.xs:160: warning: ‘buf_lens’ may be used uninitialized in this f +unction Running Mkbootstrap for Parallel::MPI::Simple () chmod 644 Simple.bs rm -f blib/arch/auto/Parallel/MPI/Simple/Simple.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions - +fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Simple +.o -o blib/arch/auto/Parallel/MPI/Simple/Simple.so \ \ chmod 755 blib/arch/auto/Parallel/MPI/Simple/Simple.so cp Simple.bs blib/arch/auto/Parallel/MPI/Simple/Simple.bs chmod 644 blib/arch/auto/Parallel/MPI/Simple/Simple.bs Manifying blib/man3/Parallel::MPI::Simple.3pm
      These warnings appear harmless enough... However make test fails as described above.
      Background:
      - using openmpi 1.4.1 which seems to run the examples ok. - ldconfig output is: vlad@bd01 Parallel-MPI-Simple-0.03]$ ldconfig -p | grep mpi libopenmpi_malloc.so.0 (libc6,x86-64) => /usr/local/lib/libopenmpi +_malloc.so.0 libopenmpi_malloc.so (libc6,x86-64) => /usr/local/lib/libopenmpi_m +alloc.so libmpi_f90.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_f90.so.0 libmpi_f90.so (libc6,x86-64) => /usr/local/lib/libmpi_f90.so libmpi_f77.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_f77.so.0 libmpi_f77.so (libc6,x86-64) => /usr/local/lib/libmpi_f77.so libmpi_cxx.so.0 (libc6,x86-64) => /usr/local/lib/libmpi_cxx.so.0 libmpi_cxx.so (libc6,x86-64) => /usr/local/lib/libmpi_cxx.so libmpi.so.0 (libc6,x86-64) => /usr/local/lib/libmpi.so.0 libmpi.so (libc6,x86-64) => /usr/local/lib/libmpi.so libexempi.so.3 (libc6,x86-64) => /usr/lib64/libexempi.so.3 - libmpi.so defines the symbol openmpi_mpi_char: [[vlad@bd01 Parallel-MPI-Simple-0.03]$ objdump -tT /usr/local/lib/libm +pi.so.0 | grep mpi_char 0000000000296920 g O .data 0000000000000200 ompi_m +pi_char 0000000000296b20 g O .data 0000000000000200 ompi_m +pi_character 0000000000296b20 g DO .data 0000000000000200 Base ompi_m +pi_character 0000000000296920 g DO .data 0000000000000200 Base ompi_m +pi_char - However the file Simple.so does not appear to look for this lib: [vlad@bd01 Parallel-MPI-Simple-0.03]$ ldd blib/arch/auto/Parallel +/MPI/Simple/Simple.so linux-vdso.so.1 => (0x00007fffaa1fe000) libc.so.6 => /lib64/libc.so.6 (0x00007fcaa1ae4000) /lib64/ld-linux-x86-64.so.2 (0x0000003da7a00000) System is FC10 x86_64
      What am I missing?
        Use absolute paths, as in -l/full/path/to/some/libmpi.so and make sure the file appears when you do make (in what you've posted, the file doesn't appear).
        I tried it on FC6, and it installed with no problems. It seems to me that since the problem is with a shared file, you want to try a static install. The author even encourages a static install, at least for Storable.

        For OpenMPI, I used

        ./configure --disable-shared --enable-static --with-gnu-ld
        to configure it. I manually downloaded and installed Parallel::MPI::Simple and had no problems.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://808181]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (13)
As of 2015-07-06 14:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (75 votes), past polls