On Jun 5, 2007, at 6:46 PM, Jeff Squyres wrote:

On Jun 5, 2007, at 4:51 PM, Lie-Quan Lee wrote:

Using the OPEN_MPI #define is probably the safest bet to identify the
MPI as Open MPI, which then opens the door to using mpi<compiler> --
showme to find the proper linker flags. I would *NOT* recommend hard-
coding specific flags just because you know that you're linking
against Open MPI (because we can/have changed the flags behind the
scenes).

I think one of the possible solutions would be, in the next MPI
standard (will it come very soon?, or not?),

I would like to hope that MPI 2.1 comes out someday in the not-
distant future, but I'm guessing that it'll take quite a while.

specify the library (libraries) for mixed language linking.

MPI has traditionally shied away from specifying this kind of thing,
instead leaving it to be an implementation-specific detail.

it is a quite of headache for each compiler/platform to deal with mixed language issues. I have to compile my application on IBM visual age compiler, Pathscale, Cray X1E compiler,
intel/openmpi, intel/mpich, PGI compiler ...
And of course, openmpi 1.1 is different on this comparing with openmpi 1.2.2 (-lmpi_f77 is new to 1.2.2 version). :-)

You are right. MPI forum most like will not take care of this. I just made a wish ... :-)


What, exactly, do you need to do?  Do you need to link an application

that uses all 4 of the MPI language bindings?

Anthony Chan's macro works fine to identify the openmpi (Thanks a lot!). After that I use mpif90 -showme:link to find out the flags and put them into LDFLAGS in my application. -- That is all I needed. Thanks.

best,
Rich Lee
Stanford Linear Accelerator Center

Reply via email to