On 8/12/2010 3:27 PM, Ralph Castain wrote:
Ick - talk about confusing! I suppose there must be -some- rational
reason why someone would want to do this, but I can't imagine what it
would be....
I'm no expert on compiler vs lib confusion, but some of my own
experience would say that this is a bad idea regardless of whether or
not OMPI is involved. Compiler version interoperability is usually
questionable, depending upon how far apart the rev levels are.
Only answer I can offer is that you would have to try it. It will
undoubtedly be a case-by-case basis: some combinations might work,
others might fail.
On Aug 12, 2010, at 3:53 PM, Michael E. Thomadakis wrote:
Hello OpenMPI,
we have deployed OpenMPI 1.4.1 and 1.4.2 on our Intel Nehalem cluster
using Intel compilers V 11.1.059 and 11.1.072 respectively, and one
user has the following request:
Can we build OpenMPI version say O.1 against Intel compilers version
say I.1 but then built an application with OpenMPI O.1 BUT then use
a DIFFERENT Intel compiler version say I.2 to built and run this MPI
application?
I suggested to him to 1) simply try to built and run the application
with O.1 but use Intel compilers version I.X whatever this X is and
see if it has any issues.
OR 2) If the above does not work, I would build OpenMPI O.1 against
Intel version I.X so he can use THIS combination for his hypothetical
application.
He insists that I build OpenMPI O.1 with some version of Intel
compilers I.Y but then at run time he would like to use *different*
Intel run time libs at will I.Z <> I.X.
Can you provide me with a suggestion for a sane solution to this ? :-)
Best regards
Michael
Guessing at what is meant here, if you build MPI with a given version of
Intel compilers, it ought to work when the application is built with a
similar or more recent Intel compiler, or when the run-time
LD_LIBRARY_PATH refers to a similar or newer library (within reason).
There are similar constraints on glibc version. "Within reason" works
over a more restricted range when C++ is involved. Note that the Intel
linux compilers link to the gcc and glibc libraries as well as those
which come with the compiler, and the MPI could be built with a
combination of gcc and ifort to work with icc or gcc and ifort.
gfortran and ifort libraries, however, are incompatible, except that
libgomp calls can be supported by libiomp5.
The "rational" use I can see is that an application programmer would
likely wish to test a range of compilers without rebuilding MPI. Intel
documentation says there is forward compatibility testing of libraries,
at least to the extent that a build made with 10.1 would work with 11.1
libraries.
The most recent Intel library compatibility break was between MKL 9 and 10.
--
Tim Prince