On Fri, 2009-06-05 at 14:36 +0200, DEVEL Michel wrote:
> Terry Frankcombe a Ã©crit :
> > Is there any compelling reason you're not using the wrappers
> > mpif77/mpif90?
> In fact, this is for the same reason that I also try to use static linking:
> I have been using two middle-size clusters as a normal user without root
> Hence I cannot update the compiler/libraries... packages.
> The binaries are installed via apt-get (Debian distro) and almost never
> updated by the administrator.
> Hence, they are not optimized for our hardware.
> The default gfortran is still 4.1.2 and ifort is 10.0 20070426 (hence
> also mpif90).
> I have made tests with more recent compilers and libraries installed
> under my account and the system compilers indeed produce much slower codes.
> I could go on this way and use LD_LIBRARY_PATH to point to my private
> versions of the compilers/library but I have problems with the fact that
> the SGE batch system uses an openmpi environment with an old version of
> openmpi coherent with the compilers and glibc versions...
> Furthermore, I would like to have the same computing environment on my
> machine and on the cluster.
> Maybe there is a clever way to deal with my problems than going for
> static link, but I have already wasted quite some time trying other
> solutions unsuccessfully. However, I would evidently appreciate if
> someone could point me one! ;-)
I'm no SGE expert. But don't you have a PE available that simply
allocates nodes and calls your script? Then you can specify in your
script any mpirun you want, and it all should still work.
Alternatively, can't you shut down the SGE-called mpirun as the first
thing you do, then continue on calling your own mpirun? All this
depends on exactly how your machine and SGE is set up.
I don't see how statically linking your app avoids this issue at all, if
you're still calling the wrong mpirun.