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!


Reply via email to