On May 5, 2008, at 2:47 PM, Ethan Mallove wrote:

Line 386 of MTT/Test/Run.pm sets LD_LIBRARY_PATH. This
appears to have masked a problem in my wrapper compiler
(missing -R/foo/lib flags).

   if ($mpi_install->{libdir}) {
       if (exists($ENV{LD_LIBRARY_PATH})) {
           $ENV{LD_LIBRARY_PATH} = "$mpi_install->{libdir}:" .
               $ENV{LD_LIBRARY_PATH};
       } else {
           $ENV{LD_LIBRARY_PATH} = $mpi_install->{libdir};
       }
   }

Is the rationale for setting LD_LIBRARY_PATH for the
mpirun's the same as the rationale described below (from
GNU_Install.pm)?

No, it's set that way for other MPI's that may need to find their .so's, but weren't linked with -R.

If so, could we make MTT a little smarter. E.g., actually
check for a libmpi.so (and/or other possibly conflicting
DSOs), and if there's no conflict then skip the
LD_LIBRARY_PATH setting. (This way a wrapper compiler issue
is not masked.)


I'd prefer an INI param to check whether you want to disable this behavior. That is, the default should be enabled, but you can turn it off if you want to.

The reason is that some MPI's don't have a libmpi.so -- it may be named something else (e.g., libmpich.so).

--
Jeff Squyres
Cisco Systems

Reply via email to