On Aug 12, 2010, at 7:04 PM, Michael E. Thomadakis wrote:
On 08/12/10 18:59, Tim Prince wrote:
On 8/12/2010 3:27 PM, Ralph Castain wrote:
Ick - talk about confusing! I suppose there must be
rational reason why someone would want to do this, but I can't
what it would be....
Guessing at what is meant here, if you build MPI with a given
of Intel compilers, it ought to work when the application is built
a similar or more recent Intel compiler, or when the run-time
LD_LIBRARY_PATH refers to a similar or newer library (within
There are similar constraints on glibc version. "Within reason"
over a more restricted range when C++ is involved. Note that the
linux compilers link to the gcc and glibc libraries as well as
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
libgomp calls can be supported by libiomp5.
I'm no expert on compiler vs lib confusion, but some of my
experience would say that this is a bad idea regardless of
not OMPI is involved. Compiler version interoperability is
questionable, depending upon how far apart the rev levels are.
Only answer I can offer is that you would have to try it.
will undoubtedly be a case-by-case basis: some combinations
others might fail.
On Aug 12, 2010, at 3:53 PM, Michael E. Thomadakis
we have deployed OpenMPI 1.4.1 and 1.4.2 on our Intel
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
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
I suggested to him to 1) simply try to built and run the
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
Intel version I.X so he can use THIS combination for his
He insists that I build OpenMPI O.1 with some version of
compilers I.Y but then at run time he would like to use
Intel run time libs at will I.Z <> I.X.
Can you provide me with a suggestion for a sane solution
to this ? :-)
The "rational" use I can see is that an application programmer
likely wish to test a range of compilers without rebuilding MPI.
documentation says there is forward compatibility testing of
at least to the extent that a build made with 10.1 would work with
The most recent Intel library compatibility break was between MKL
Dear Tim, I offered to provide myself the combination of OMPI+ Intel
compilers so that application can use it in stable fashion. When I
inquired about this application so I can look into this I was told
that "there is NO application yet (!) that fails but just in case it
fails ..." I was asked to hack into the OMPI building process to
let OMPI use one run-time but then the MPI application using this
OMPI ... use another!
The "easy" way to accomplish this would be to:
(a) build OMPI with whatever compiler you decide to use as a "baseline"
(b) do -not- use the wrapper compiler to build the application. Instead, do "mpicc --showme" (or whatever language equivalent you want) to get the compile line, substitute your "new" compiler library for the "old" one, and then execute the resulting command manually.
If you then set your LD_LIBRARY_PATH to the "new" libs, it might work - but no guarantees. Still, you could try it - and if it worked, you could always just explain that this is a case-by-case situation, and so it -could- break with other compiler combinations.
Critical note: the app developers would have to validate the code with every combination! Otherwise, correct execution will be a complete crap-shoot - just because the app doesn't abnormally terminate does -not- mean it generated a correct result!
Thanks for the information on this. We indeed use Intel Compiler set
11.1.XXX + OMPI 1.4.1 and 1.4.2.
The basic motive in this hypothetical situation is to build the MPI
application ONCE and then swap run-time libs as newer compilers come
out.... I am certain that even if one can get away with it with
nearby run-time versions there is no guarantee of the stability
at-infinitum. I end up having to spent more time for technically
"awkward" requests than the reasonable ones. Reminds me when I was a
teacher I had to spent more time with all the people trying to avoid
doing the work than with the good students... hmmm :-)
users mailing list
users mailing list