Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Werner Van Geit (wernervangeit_at_[hidden])
Date: 2007-04-06 09:22:11


Hello,

In our lab we are installing OpenMPI onto our Apple cluster computer. The
cluster contains a couple of PowerPC G5 nodes and the new Intel Xeon
Xserves, all with a clean install of Mac OS X Server 10.4.8 , Xcode 2.4.1
and Sun Grid Engine 6 (so we're not using XGrid). Since we want to make it 1
big cluster, we need Universal Binaries of OpenMPI.

We have been using the script buildpackage.sh available from the
contrib/dist/macosx-pkg from the openmpi-1.2.tar.gz file. If we run this
script on an Intel machine, we get fat binaries (checked this with the
command line "file" command) that run on the Intel machine (we used
"ompi_info" as the test), but not on the G5 machines. While running
ompi_info) we get an error:

dyld: Symbol not found: _lt_libltdlc_LTX_preloaded_symbols
  Referenced from: /tmp/werner/mpi/lib/libopen-pal.0.dylib
  Expected in: flat namespace

Trace/BPT trap

(There are no error @ compile time)

Also the inverse occurs. If we compile on a G5, again fat binaries of
everything are created, but now it doesn't run on the Intel anymore, with
exactly the same error. And it also doesn't run on a G5 unless we make a
thinner binary (from the fat ones), only containing the ppc and intel code
(not the ppc64).

First, we thought that the problem could be caused by the processor
switching modes from 32 to 64 bit or something, so we compiled everything
with a modified buildpackage.sh script adding "-m32" to the CFLAGS, CXXFLAGS
and OBJCFLAGS, but this had no effect, still the same errors @ runtime.

Then we compiled with "-enable-static" and "-disable-shared" but then the
error occurred @ compile time. We got an error like " Symbol not found:
_lt_libltdlc_LTX_preloaded_symbols".

Since we figured out that this libltdlc is used for the "dlopen", I disabled
it by putting "--disable-dlopen" in the buildpackage.sh script. Now
everything compiles on both Intel and PPC and also runs on both
architectures.
But now I can imagine that in the future we might be having problems with
installing plugins because we disabled the dlopen.

Do you maybe know if there is another way to compile OpenMPI on our
configuration, while still enabling dlopen ? (Is the problem maybe caused by
the fact that there doesn't seem to exist a 64-bit version of
libltdl.3.dylib and libltdl.a on the OS ? The output of the file command is

"
libltdl.3.dylib: Mach-O fat file with 2 architectures
libltdl.3.dylib (for architecture i386): Mach-O dynamically linked shared
library i386
libltdl.3.dylib (for architecture ppc): Mach-O dynamically linked shared
library ppc
"
(so no ppc64)

Thank you,

Werner Van Geit

-- 
                         ,,,
                        (o o)
====================oOO==(_)==OOo==================
PhD Student Laboratory for Theoretical Neurobiology
Department of Biomedical Sciences
University of Antwerp (Campus Drie Eiken)
Universiteitsplein 1
B-2610 Wilrijk (Belgium)
Office T5.37
Tel. ++ 32 3 8202610
werner_at_[hidden]