Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] open-mpi on Mac OS 10.9 (Mavericks)
From: George Bosilca (bosilca_at_[hidden])
Date: 2013-11-27 13:26:17


Puzzling! I removed my entire Mac Ports installation in order to fall back to the default set of tools provided by Apple via the command tool package. I recompile a fresh copy of Open MPI with the following configure:

./configure —prefix=/opt/trunk/apple-only —enable-shared —disable-static --enable-debug --disable-io-romio --enable-contrib-no-build=vt,libtrace --enable-mpirun-prefix-by-default

And every test I throw at it passed without any issue. Totally puzzling …

  George.

On Nov 27, 2013, at 18:04 , Meredith, Karl <karl.meredith_at_[hidden]> wrote:

> None of the C or C++ examples run. For example, the hello_c.c example in the examples directory included with openmpi. It compiles, but hangs on MPI_Init().
>
> Are your compiler versions different from the ones I’m showing? Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
>
> Karl
>
>
> On Nov 27, 2013, at 11:51 AM, Nathan Hjelm <hjelmn_at_[hidden]> wrote:
>
>> Been running on Mavericks all summer with no issues. I do not use the C++ interface
>> though (C++ bindings were removed from the MPI standard in 3.0.) Can you try a C
>> example and see if that works?
>>
>> -Nathan Hjelm
>> Application Readiness, HPC-5, LANL
>>
>> On Wed, Nov 27, 2013 at 11:43:05AM -0500, Meredith, Karl wrot
>>> Okay, in order to try and track down this problem I have done a fresh install of OpenMPI-1.7.3 on Mac OS 10.9 (Mavericks). I am using the Apple compilers, and not using anything from macports. The code compiles fine, but when running the examples for openmpi-1.7.3, the code hangs in MPI::Init() and never returns. No error message. No warning. It just hangs. If I compile in debug mode and do a stack trace, it shows that it is stalled inside of MPI::Init() every time. Has anyone been able to successfully get openmpi working on 10.9? If so, what, if anything, are you doing differently?
>>>
>>> This is how I installed openmpi:
>>> ./configure --prefix=$HOME/tools/openmpi-1.7.3
>>> make
>>> make install
>>>
>>> Here are my settings, environment variables, compilers, etc:
>>>
>>> bash-4.2$ which g++
>>> /usr/bin/g++
>>>
>>> bash-4.2$ which gcc
>>> /usr/bin/gcc
>>>
>>> bash-4.2$ which clang
>>> /usr/bin/clang
>>>
>>> bash-4.2$ g++ --version
>>> Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
>>> Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
>>> Target: x86_64-apple-darwin13.0.0
>>> Thread model: posix
>>>
>>> bash-4.2$ gcc --version
>>> Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
>>> Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
>>> Target: x86_64-apple-darwin13.0.0
>>> Thread model: posix
>>>
>>> bash-4.2$ which mpicc
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/bin/mpicc
>>>
>>> bash-4.2$ which mpic++
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/bin/mpic++
>>>
>>> bash-4.2$ which mpirun
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/bin/mpirun
>>>
>>> bash-4.2$ mpicc -show
>>> gcc -I/Users/meredithk/tools/openmpi-1.7.3-noenv/include -L/Users/meredithk/tools/openmpi-1.7.3-noenv/lib -lmpi
>>>
>>> bash-4.2$ mpic++ -show
>>> g++ -I/Users/meredithk/tools/openmpi-1.7.3-noenv/include -L/Users/meredithk/tools/openmpi-1.7.3-noenv/lib -lmpi_cxx -lmpi
>>>
>>> bash-4.2$ pwd
>>> /Users/meredithk/tools/openmpi-1.7.3-src
>>>
>>> bash-4.2$ otool -L hello_cxx
>>> hello_cxx:
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi_cxx.1.dylib (compatibility version 3.0.0, current version 3.3.0)
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi.1.dylib (compatibility version 4.0.0, current version 4.0.0)
>>> /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
>>>
>>> bash-4.2$ mpirun -n 5 hostname
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com>
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com>
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com>
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com>
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com>
>>>
>>> bash-4.2$ echo $PATH
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/bin:/usr/bin:/bin:/usr/sbin:/sbin
>>>
>>> bash-4.2$ echo $LD_LIBRARY_PATH
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib:
>>>
>>> bash-4.2$ echo $DYLD_LIBRARY_PATH
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib:
>>>
>>> bash-4.2$ ls /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/
>>> libmca_common_sm.4.dylib libmpi_cxx.1.dylib libopen-pal.6.dylib libopen-trace-format.1.dylib libotfaux.dylib libvt-mpi-unify.0.dylib libvt-mpi.dylib libvt.0.dylib
>>> libmca_common_sm.dylib libmpi_cxx.dylib libopen-pal.dylib libopen-trace-format.a libotfaux.la libvt-mpi-unify.a libvt-mpi.la libvt.a
>>> libmca_common_sm.la libmpi_cxx.la libopen-pal.la libopen-trace-format.dylib libvt-hyb.0.dylib libvt-mpi-unify.dylib libvt-mt.0.dylib libvt.dylib
>>> libmpi.1.dylib libompitrace.0.dylib libopen-rte.6.dylib libopen-trace-format.la libvt-hyb.a libvt-mpi-unify.la libvt-mt.a libvt.la
>>> libmpi.dylib libompitrace.dylib libopen-rte.dylib libotfaux.0.dylib libvt-hyb.dylib libvt-mpi.0.dylib libvt-mt.dylib openmpi
>>> libmpi.la libompitrace.la libopen-rte.la libotfaux.a libvt-hyb.la libvt-mpi.a libvt-mt.la pkgconfig
>>>
>>> bash-4.2$ otool -L /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi_cxx.dylib
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi_cxx.dylib:
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi_cxx.1.dylib (compatibility version 3.0.0, current version 3.3.0)
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libmpi.1.dylib (compatibility version 4.0.0, current version 4.0.0)
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libopen-rte.6.dylib (compatibility version 7.0.0, current version 7.0.0)
>>> /Users/meredithk/tools/openmpi-1.7.3-noenv/lib/libopen-pal.6.dylib (compatibility version 7.0.0, current version 7.0.0)
>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
>>> /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
>>>
>>> On Nov 27, 2013, at 9:41 AM, Meredith, Karl <karl.meredith_at_[hidden]<mailto:karl.meredith_at_[hidden]>> wrote:
>>>
>>> I’m pretty sure it is using the correct g++
>>>
>>> $ )which g++
>>> /opt/local/bin/g++
>>>
>>>
>>> $ )echo $PATH
>>> /Users/meredithk/tools/openmpi/bin:/opt/local/bin:/opt/local/sbin:/Users/meredithk/tools/bin:/Users/meredithk/OpenFOAM/fireFoam-2.2.x/scripts:/Users/meredithk/OpenFOAM/ThirdParty-2.2.x/platforms/darwinIntel64Gcc46/gperftools-svn/bin:/Applications/paraview.app/Contents/bin:/Users/meredithk/OpenFOAM/ThirdParty-2.2.x/platforms/darwinIntel64Gcc46/paraview-3.12.0/bin:/Users/meredithk/OpenFOAM/meredithk-2.2.x/platforms/darwinIntel64Gcc46DPOpt/bin:/Users/meredithk/OpenFOAM/site/2.2.x/platforms/darwinIntel64Gcc46DPOpt/bin:/Users/meredithk/OpenFOAM/OpenFOAM-2.2.x/platforms/darwinIntel64Gcc46DPOpt/bin:/Users/meredithk/OpenFOAM/OpenFOAM-2.2.x/bin:/Users/meredithk/OpenFOAM/OpenFOAM-2.2.x/wmake:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
>>>
>>>
>>> $ )g++ --version
>>> g++ (MacPorts gcc46 4.6.4_3) 4.6.4
>>>
>>>
>>> Karl
>>>
>>>
>>>
>>> On Nov 27, 2013, at 3:23 AM, Iliev, Hristo <Iliev_at_[hidden]<mailto:Iliev_at_[hidden]><mailto:Iliev_at_[hidden]>> wrote:
>>>
>>> Karl,
>>>
>>> The Xcode command-line tools provide a g++ command that is effectively
>>> clang++. Since mpic++ invokes g++ without the full path to it, it might pick
>>> the wrong g++. Make sure that /opt/local/bin is the first item in your
>>> $PATH.
>>>
>>> Hristo
>>>
>>> --
>>> Hristo Iliev, PhD - High Performance Computing Team / JARA-HPC
>>> RWTH Aachen University, Center for Computing and Communication
>>> Rechen- und Kommunikationszentrum der RWTH Aachen
>>> Seffenter Weg 23, D-52074 Aachen (Germany)
>>>
>>> -----Original Message-----
>>> From: users [mailto:users-bounces_at_[hidden]] On Behalf Of Meredith,
>>> Karl
>>> Sent: Tuesday, November 26, 2013 9:33 PM
>>> To: Open MPI Users
>>> Subject: Re: [OMPI users] open-mpi on Mac OS 10.9 (Mavericks)
>>>
>>> Here are the results of those two commands:
>>>
>>> $ )mpic++ -show
>>> g++ -I/Users/meredithk/tools/openmpi/include -
>>> L/Users/meredithk/tools/openmpi/lib -lmpi_cxx -lmpi -lm
>>>
>>> $ )otool -L /Users/meredithk/tools/openmpi/lib/libmpi_cxx.dylib
>>> /Users/meredithk/tools/openmpi/lib/libmpi_cxx.dylib:
>>> /Users/meredithk/tools/openmpi/lib/libmpi_cxx.1.dylib
>>> (compatibility version 2.0.0, current version 2.2.0)
>>> /Users/meredithk/tools/openmpi/lib/libmpi.1.dylib (compatibility
>>> version 2.0.0, current version 2.8.0)
>>> /opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version
>>> 7.0.0,
>>> current version 7.18.0)
>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
>>> version
>>> 1197.1.1)
>>> /opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0,
>>> current version 1.0.0)
>>>
>>> It looks like libstdc++ is being used and g++ is being used.
>>>
>>> Karl
>>>
>>>
>>> On Nov 25, 2013, at 6:56 PM, Pierre Jolivet <jolivet_at_[hidden]<mailto:jolivet_at_[hidden]><mailto:jolivet_at_[hidden]>>
>>> wrote:
>>>
>>> Karl,
>>> What does "mpic++ -show" returns ? It is possible that you are
>>> compiling/linking with "c++", which will defaults to clang++, while you
>>> compiled OpenMPI with g++.
>>> Since libstdc++ and libc++ have incompatible ABI, that might be why you
>>> are getting a wrong behavior.
>>> Also, it could be worthwhile to have a look at "otool -L
>>> /Users/meredithk/tools/openmpi/lib/libmpi_cxx.dylib"
>>> Pierre
>>>
>>> On Nov 25, 2013, at 7:38 AM, Meredith, Karl
>>> <karl.meredith_at_[hidden]<mailto:karl.meredith_at_[hidden]><mailto:karl.meredith_at_[hidden]>> wrote:
>>>
>>> I do have DYLD_LIBRARY_PATH set as well, and I get the same problem:
>>>
>>> DYLD_LIBRARY_PATH=/Users/meredithk/tools/openmpi/lib
>>>
>>> Here's the directory listing of /Users/meredithk/tools/openmpi/lib
>>>
>>> $ )ls -1
>>> libmca_common_sm.3.dylib*
>>> libmca_common_sm.dylib@
>>> libmca_common_sm.la*
>>> libmpi.1.dylib*
>>> libmpi.dylib@
>>> libmpi.la*
>>> libmpi_cxx.1.dylib*
>>> libmpi_cxx.dylib@
>>> libmpi_cxx.la*
>>> libmpi_f77.1.dylib*
>>> libmpi_f77.dylib@
>>> libmpi_f77.la*
>>> libmpi_f90.a
>>> libmpi_f90.la*
>>> libompitrace.0.dylib*
>>> libompitrace.dylib@
>>> libompitrace.la*
>>> libopen-pal.4.dylib*
>>> libopen-pal.dylib@
>>> libopen-pal.la*
>>> libopen-rte.4.dylib*
>>> libopen-rte.dylib@
>>> libopen-rte.la*
>>> libopen-trace-format.1.dylib*
>>> libopen-trace-format.a
>>> libopen-trace-format.dylib@
>>> libopen-trace-format.la*
>>> libotfaux.0.dylib*
>>> libotfaux.a
>>> libotfaux.dylib@
>>> libotfaux.la*
>>> libvt-hyb.0.dylib*
>>> libvt-hyb.a
>>> libvt-hyb.dylib@
>>> libvt-hyb.la*
>>> libvt-mpi-unify.0.dylib*
>>> libvt-mpi-unify.a
>>> libvt-mpi-unify.dylib@
>>> libvt-mpi-unify.la*
>>> libvt-mpi.0.dylib*
>>> libvt-mpi.a
>>> libvt-mpi.dylib@
>>> libvt-mpi.la*
>>> libvt-mt.0.dylib*
>>> libvt-mt.a
>>> libvt-mt.dylib@
>>> libvt-mt.la*
>>> libvt-pomp.a
>>> libvt-pomp.la*
>>> libvt.0.dylib*
>>> libvt.a
>>> libvt.dylib@
>>> libvt.la*
>>> mpi.mod*
>>> openmpi/
>>> pkgconfig/
>>>
>>>
>>> I don't notice anything out of ordinary.
>>>
>>> Karl
>>>
>>>
>>> On Nov 25, 2013, at 8:31 AM, Reuti <reuti_at_[hidden]<mailto:reuti_at_[hidden]><mailto:reuti_at_[hidden]>> wrote:
>>>
>>> Am 25.11.2013 um 14:25 schrieb Meredith, Karl:
>>>
>>> I do have these two environment variables set:
>>>
>>> LD_LIBRARY_PATH=/Users/meredithk/tools/openmpi/lib
>>>
>>> On a Mac it should DYLD_LIBRARY_PATH - and there are *.dylib files in
>>> your /Users/meredithk/tools/openmpi/lib?
>>>
>>> -- Reuti
>>>
>>>
>>> PATH=/Users/meredithk/tools/openmpi/bin
>>>
>>> Running mpirun seems to work fine with a simple command, like
>>> hostname:
>>>
>>> $ )mpirun -n 2 hostname
>>> meredithk-mac.corp.fmglobal.com<http://meredithk-mac.corp.fmglobal.com/><http://meredithk-mac.corp.fmglobal.com>>
>>> meredithk-mac.corp.fmglobal.com<
http://meredithk-mac.corp.fmglobal.com/>
>>>
>>> I am trying to run the simple hello_cxx example from the openmpi
>>> distribution, compiled as such:
>>> mpic++ -g hello_cxx.cc -o hello_cxx
>>>
>>> It compiles fine, without warning or error. However, when I go to
>>> run
>>> the example, it stalls on the MPI::Init() command:
>>> mpirun -np 1 hello_cxx
>>> It never errors out or crashes. It simply hangs.
>>>
>>> I am using the same mpic++ and mpirun version:
>>> $ )which mpirun
>>> /Users/meredithk/tools/openmpi/bin/mpirun
>>>
>>> $ )which mpic++
>>> /Users/meredithk/tools/openmpi/bin/mpic++
>>>
>>> Not quite sure what else to check.
>>>
>>> Karl
>>>
>>>
>>> On Nov 23, 2013, at 5:29 PM, Ralph Castain <rhc_at_[hidden]<mailto:rhc_at_[hidden]><mailto:rhc_at_[hidden]>>
>>> wrote:
>>>
>>> Strange - I run on Mavericks now without problem. Can you run
>>> "mpirun -n 1 hostname"?
>>>
>>> You also might want to check your PATH and LD_LIBRARY_PATH to
>>> ensure you have the prefix where you installed OMPI 1.6.5 at the front.
>>> Mac
>>> distributes a very old version of OMPI with its software and you don't
>>> want
>>> to pick it up by mistake.
>>>
>>>
>>> On Nov 22, 2013, at 1:45 PM, Meredith, Karl
>>> <karl.meredith_at_[hidden]<mailto:karl.meredith_at_[hidden]><mailto:karl.meredith_at_[hidden]>> wrote:
>>>
>>> I recently upgraded my 2013 Macbook Pro (Retina display) from 10.8
>>> to 10.9. I downloaded and installed openmpi-1.6.5 and compiled it with
>>> gcc
>>> 4.8 (gcc installed from macports).
>>> openmpi compiled and installed without error.
>>>
>>> However, when I try to run any of the example test cases, the code
>>> gets stuck inside the first MPI::Init() call and never returns.
>>>
>>> Any thoughts on what might be going wrong?
>>>
>>> The same install on OS 10.8 works fine and the example test cases
>>> run without error.
>>>
>>> Karl
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> <smime.p7s>_______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]><mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]<mailto:users_at_[hidden]>
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> <ATT00001>_______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users