On 12/15/2010 8:22 PM, Jeff Squyres wrote:
> Sorry for the ginormous delay in replying here; I blame SC'10, Thanksgiving, and the MPI Forum meeting last week...
> On Nov 29, 2010, at 2:12 PM, David Robertson wrote:
>> I'm noticing a strange problem with Open MPI 1.4.2 on Mac OS X 10.6. We use both Intel Ifort 11.1 and gfortran 4.3 on the same machine and switch between them to test and debug code.
>> I had runtime problems when I compiled openmpi in my usual way of no shared libraries so I switched to shared and it runs now.
> What problems did you have? OMPI should work fine when compiled statically.
>> However, in order for it to work with ifort I ended up needing to add the location of my intel compiled Open MPI libraries (/opt/intelsoft/openmpi/lib) to my DYLD_LIBRARY_PATH environment variable to to get codes to compile and/or run with ifort.
> Is this what Intel recommends for anything compiled with ifort on OS X, or is this unique to OMPI-compiled MPI applications?
>> The problem is that adding /opt/intelsoft/openmpi/lib to DYLD_LIBRARY_PATH broke my Open MPI for gfortran. Now when I try to compile with mpif90 for gfortran it thinks it's actually trying to compile with ifort still. As soon as I take the above path out of DYLD_LIBRARY_PATH everything works fine.
>> Also, when I run ompi_info everything looks right except prefix. It says /opt/intelsoft/openmpi rather than /opt/gfortransoft/openmpi like it should. It should be noted that having /opt/intelsoft/openmpi in LD_LIBRARY_PATH does not produce the same effect.
> I'm not quite clear on your setup, but it *sounds* like you're somehow mixing up 2 different installations of OMPI -- one in /opt/intelsoft and the other in /opt/gfortransoft.
> Can you verify that you're using the "right" mpif77 (and friends) when you intend to, and so on?
Well, yes, he has to use the MPI Fortran libraries compiled by ifort
with his ifort application build, and the ones compiled by gfortran with
a gfortran application build. There's nothing "strange" about it; the
PATH for mpif90 and DYLD_LIBRARY_PATH for the Fortran library have to be
set correctly for each case. If linking statically with the MPI Fortran
library, you still must choose the one built with the compatible
Fortran. gfortran and ifort can share C run-time libraries but not the
Fortran ones. It's the same as on linux (and, likely, Windows).