Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Problem building OpenMPI with PGI compilers
From: Gus Correa (gus_at_[hidden])
Date: 2009-12-09 18:18:12


Hi All

As I stated on my original posting,
I haven't compiled OpenMPI since 1.3.2.
Just trying to be of help, based on previous,
and maybe too old, experiences.

The problem I referred to happened with PGI 8.0-4 and OpenMPI 1.3.
Most likely the issue is superseded already by the newer
OpenMPI configuration scripts, but it did exist
and it did involve libtool as well,
although it seems to be different from what
David Turner just reported with PGI 10,
and apparently with PGI 9 also (so he wrote).

These threads document the problem I had,
with one solution provided by Jeff Squyres,
and another by Orion Poplawski:

http://www.open-mpi.org/community/lists/users/2009/04/8724.php
http://www.open-mpi.org/community/lists/users/2009/04/8911.php

Those workarounds may no longer be required, considering what Jeff
and Gerry wrote, which is good news, of course.

Thanks,
Gus Correa
---------------------------------------------------------------------
Gustavo Correa
Lamont-Doherty Earth Observatory - Columbia University
Palisades, NY, 10964-8000 - USA
---------------------------------------------------------------------

Jeff Squyres wrote:
> Just to set the record straight: it's a Libtool problem with PGI version 10 (all PGI versions below 10 work fine).
>
> This has been reported to the GNU Libtool folks and patches have already been applied upstream. However, there hasn't been a new Libtool release yet with these patches, so we have to patch during the Open MPI build (hence, the solution is in our autogen.sh script, which sets up the configure/build system).
>
>
> On Dec 9, 2009, at 4:58 PM, Gerald Creager wrote:
>
>> Fascinating. I've not had any real problems building it from scratch
>> with PGI. We are using the PGI 9 compilers, though, for that.
>>
>> gerry
>>
>> Gus Correa wrote:
>>> Hi David
>>>
>>> Last I tried, OpenMPI 1.3.2, PGI (8.0-4) was problematic,
>>> particularly for C and C++.
>>>
>>> I eventually settled down with a hybrid gcc, g++, and pgf90
>>> (for both OpenMPI F77 and F90 bindings).
>>> Even this required a trick to avoid the "-pthread" flag
>>> to be inserted among the pgf90 flags (where it doesn't belong).
>>> Yes, libtool was also part of the problem back then.
>>> You may find my postings about on this list archives - early 2009 -,
>>> along with Jeff Squyres' solution for the problem.
>>>
>>>
>>> I also built a full Gnu version (gcc, g++, gfortran, gfortran)
>>> of OpenMPI that works well.
>>> Intel and hybrid Gnu(gcc,g++)+Intel(ifort for F77 and F90)
>>> versions of OpenMPI also work right.
>>> We need multiple compiler support here anyway.
>>>
>>> My $0.02
>>> Gus Correa
>>> ---------------------------------------------------------------------
>>> Gustavo Correa
>>> Lamont-Doherty Earth Observatory - Columbia University
>>> Palisades, NY, 10964-8000 - USA
>>> ---------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>> David Turner wrote:
>>>> Hi all,
>>>>
>>>> My first ever attempt to build OpenMPI. Platform is Sun Sunfire x4600
>>>> M2 servers, running Scientific Linux version 5.3. Trying to build
>>>> OpenMPI 1.4 (as of today; same problems yesterday with 1.3.4).
>>>> Trying to use PGI version 10.0.
>>>>
>>>> As a first attempt, I set CC, CXX, F77, and FC, then did "configure"
>>>> and "make". Make ends with:
>>>>
>>>> libtool: link: pgCC --prelink_objects --instantiation_dir
>>>> Template.dir .libs/mpicxx.o .libs/intercepts.o .libs/comm.o
>>>> .libs/datatype.o .libs/win.o .libs/file.o -Wl,--rpath
>>>> -Wl,/project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/ompi/.libs
>>>> -Wl,--rpath
>>>> -Wl,/project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/orte/.libs
>>>> -Wl,--rpath
>>>> -Wl,/project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/opal/.libs
>>>> -Wl,--rpath -Wl,/global/common/tesla/usg/openmpi/1.4/lib
>>>> -L/project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/orte/.libs
>>>> -L/project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/opal/.libs
>>>> ../../../ompi/.libs/libmpi.so
>>>> /project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/orte/.libs/libopen-rte.so
>>>> /project/projectdirs/mpccc/usg/software/tnt/openmpi/openmpi-1.4/opal/.libs/libopen-pal.so
>>>> -ldl -lnsl -lutil -lpthread
>>>> pgCC-Error-Unknown switch: --instantiation_dir
>>>> make[2]: *** [libmpi_cxx.la] Error 1
>>>>
>>>> So I Googled "instantiation_dir openmpi", which led me to:
>>>>
>>>> http://cia.vc/stats/project/OMPI?s_message=3
>>>>
>>>> where I see:
>>>>
>>>> There's still something wrong with the C++ support, however; I get
>>>> errors about a template directory switch when compiling the C++ MPI
>>>> bindings (doesn't happen with PGI 9.0). Still working on this... it
>>>> feels like it's still a Libtool issue because OMPI is not putting in
>>>> this compiler flag as far as I can tell:
>>>>
>>>> {{{
>>>> /bin/sh ../../../libtool --tag=CXX --mode=link pgCC -g -version-info
>>>> 0:0:0 -export-dynamic -o libmpi_cxx.la -rpath /home/jsquyres/bogus/lib
>>>> mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo file.lo
>>>> ../../../ompi/libmpi.la -lnsl -lutil -lpthread
>>>> libtool: link: tpldir=Template.dir
>>>> libtool: link: rm -rf Template.dir
>>>> libtool: link: pgCC --prelink_objects --instantiation_dir Template.dir
>>>> .libs/mpicxx.o .libs/intercepts.o .libs/comm.o .libs/datatype.o
>>>> .libs/win.o .libs/file.o -Wl,--rpath
>>>> -Wl,/users/jsquyres/svn/ompi-1.3/ompi/.libs -Wl,--rpath
>>>> -Wl,/users/jsquyres/svn/ompi-1.3/orte/.libs -Wl,--rpath
>>>> -Wl,/users/jsquyres/svn/ompi-1.3/opal/.libs -Wl,--rpath
>>>> -Wl,/home/jsquyres/bogus/lib -L/users/jsquyres/svn/ompi-1.3/orte/.libs
>>>> -L/users/jsquyres/svn/ompi-1.3/opal/.libs
>>>> ../../../ompi/.libs/libmpi.so
>>>> /users/jsquyres/svn/ompi-1.3/orte/.libs/libopen-rte.so
>>>> /users/jsquyres/svn/ompi-1.3/opal/.libs/libopen-pal.so -ldl -lnsl
>>>> -lutil -lpthread
>>>> pgCC-Error-Unknown switch: --instantiation_dir
>>>> make: *** [libmpi_cxx.la] Error 1
>>>> }}}
>>>>
>>>> I noticed the comment "doesn't happen with PGI 9.0", so I re-did the
>>>> entire process with PGI 9.0 instead of 10.0, but I get the same error!
>>>>
>>>> Any suggestions? Let me know if I should provide full copies of the
>>>> configure and make output. Thanks!
>>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>
>