Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-13 Thread Michael E. Thomadakis

 On 08/12/10 21:53, Jed Brown wrote:


Or OMPI_CC=icc-xx.y mpicc ...




If we enable a different set of run time library paths for Intel 
compilers than those used to build OMPI when we compile and execute the 
MPI app these new run-time libs will be accessible to OMPI libs to run 
against instead of those used when OMPI was being built right? I would 
think that this may cause some problems if for some reason something in 
the modern run-time libfs differs from the ones used when OMPI was built ?


A user is hoping to avoid rebuilding his OMPI app but i guess just 
change LD_LIBRARY_PATH to the latest Intel compile run-time libs and 
just launch it with teh latest and greatest Intel Libs I mentioned 
to him that the right way is to build the combination of OMPI + Intel 
run-time that the application is known to work with (since some may 
fail) but he wants me to insert a fixed run-time lib path for OMPI libs 
but use different and variable one for the run-time libs of the OMPI 
application! It is frustrating with people who get "great ideas" but 
then they presss someone else to make them work instead of doing this 
themselves


anyway thanks

Michael


Jed

On Aug 12, 2010 5:18 PM, "Ralph Castain" > wrote:



On Aug 12, 2010, at 7:04 PM, Michael E. Thomadakis wrote:

> On 08/12/10 18:59, Tim Prince wrote:
>>...

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 ...



___
users mailing list
us...@open-mpi.org 
http://www.open-mpi.org/mailman/listinfo.cgi/users



___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Jed Brown
Or OMPI_CC=icc-xx.y mpicc ...

Jed

On Aug 12, 2010 5:18 PM, "Ralph Castain"  wrote:


On Aug 12, 2010, at 7:04 PM, Michael E. Thomadakis wrote:

> On 08/12/10 18:59, Tim Prince wrote:
>>...
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 ...

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Tim Prince

On 8/12/2010 6: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 -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.




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!



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 :-)


According to my understanding, your application (or MPI) built with an 
Intel 11.1 compiler should continue working with future Intel 11.1 and 
12.x libraries.  I don't expect Intel to test or support this 
compatibility beyond that.
You will likely want to upgrade your OpenMPI earlier than the time when 
Intel compiler changes require a new MPI build.
If the interest is in getting performance benefits of future hardware 
simply by installing new dynamic libraries without rebuilding an 
application, Intel MKL is the most likely favorable scenario.  The MKL 
with optimizations for AVX is already in  beta test, and should work as 
a direct replacement for the MKL in current releases.


--
Tim Prince



Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Ralph Castain

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 -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.
>> 
> 
> 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 

Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Terry Frankcombe
On Thu, 2010-08-12 at 20:04 -0500, Michael E. Thomadakis wrote:
> 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 

Not building your application with the compiler you want to use sounds
like a very bad idea to me.  There's more to a compiler than it's
runtime libraries.




Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Michael E. Thomadakis

 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 -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.




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!



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 :-)



take care,,,
Mike



--
Tim Prince


___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Michael E. Thomadakis

 On 08/12/10 17:27, 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:



Hi Ralph, I believe the clean and rational solution when an MPI 
Application needs a specific combination of OMPI and Intel Compilers is 
to just build this OMPI against that compiler version statically or 
dynamically so the application can just use it. I feel that the OMPI 
libs + run-time is intimate part of the run-time of the application. 
What people think they can do is to build only ONCE against the same 
OMPI but freely swap in and out any Intel library run-time w/o worries 
and without REBUILDING the application. Nothing in life is free though.

Thanks for the reply 


Michael



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
___
users mailing list
us...@open-mpi.org 
http://www.open-mpi.org/mailman/listinfo.cgi/users



___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Tim Prince

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



Re: [OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Ralph Castain
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
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users



[OMPI users] OpenMPI Run-Time "Freedom" Question

2010-08-12 Thread Michael E. Thomadakis

 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