[mpich-discuss] mpich2 / openmpi conflicts on osx 10.5?

Thomas Blom blomcode at gmail.com
Fri Dec 19 09:29:33 CST 2008


Yes, this sounds like a good option.  Unfortunately using makefiles seems to
preclude using the gui debugger facilities of xcode, or at least I have not
discovered the right combination of debug flags for g++ that cause Xcode to
debug correctly.  Has here anyone successfully done this?  e.g., one can
create an "external build system" and successfully compile via the makefile,
but breakpoints that are then set in xcode are not repsected by the
debugger.

Of course, it takes some trickery also to even get xcode to give your mpicxx
as an option when building a native project; I've seen references to this
for earlier versions of xcode, but haven't tried this with the new 3.1

-thomas

On Fri, Dec 19, 2008 at 9:21 AM, Jeff Squyres <jsquyres at cisco.com> wrote:

> I haven't used Xcode, but Eric is right: if you set your PATH and simply
> use the wrapper compiler for the MPI that you choose (e.g., mpicc), the
> wrapper compiler should pass the relevant -I and -L flags to find the
> "right" headers and libraries.
>
> I do this quite frequently on my OS X Leopard laptop; all I do is set the
> PATH (to ensure that I'm using the right MPI executables), and everything
> else works out.
>
>
>
> On Dec 18, 2008, at 6:21 PM, Eric A. Borisch wrote:
>
>  Thomas,
>>
>> You're probably better off using a makefile (which you can have XCode run
>> for you for...) so you can just use the mpicc and mpicxx wrapper scripts to
>> build. (Note that you'll need to set the path environment variable for the
>> make command step within XCode to pick up your preferred mpicc.)
>>
>>  Eric
>>
>> On Thu, Dec 18, 2008 at 11:39 AM, Thomas Blom <blomcode at gmail.com> wrote:
>> True for execution paths, but I wanted to ensure I wasn't picking up the
>> wrong header or libs along the way somehow during builds of stuff.  This is
>> easy enough in simple makefiles, but in xcode using a native project (which
>> I'm new to) I'm never sure where it is looking first etc and so resort to
>> tricks like hiding files.  Apple's version of gcc and ld also behave
>> differently than 'standard' versions of these tools, so hiding or removing
>> all headers/libs/binaries for an sdk seems the safest way to me to ensure
>> they are not getting involved behind the scenes somehow.  Again, I'm
>> somewhat new to development on osx.
>>
>> -thomas
>>
>>
>> On Thu, Dec 18, 2008 at 7:42 AM, Jeff Squyres <jsquyres at cisco.com> wrote:
>> FWIW, you shouldn't even need to "hide" the default MPI that ships with
>> Leopard by putting it in another directory.  If you just set your PATH to
>> point to /usr/local/bin before it points to /usr/bin, you should be fine (I
>> do this all the time on my MacBook Pro laptop).
>>
>>
>>
>>
>> On Dec 17, 2008, at 9:22 PM, Thomas Blom wrote:
>>
>> Thanks.  Perhaps that would have worked.  What I ended up doing was
>> "hiding" the headers, libs, and exes for the openmpi that came installed on
>> the mac.  Then I did the configure, make, and make install again, and it
>> worked.
>>
>> -thomas
>>
>> On Wed, Dec 17, 2008 at 11:12 PM, Rajeev Thakur <thakur at mcs.anl.gov>
>> wrote:
>> Just try logging out and log back in again.
>>
>> Rajeev
>>
>> From: mpich-discuss-bounces at mcs.anl.gov [mailto:
>> mpich-discuss-bounces at mcs.anl.gov] On Behalf Of Thomas Blom
>> Sent: Wednesday, December 17, 2008 10:06 PM
>> To: mpich-discuss at mcs.anl.gov
>> Subject: [mpich-discuss] mpich2 / openmpi conflicts on osx 10.5?
>>
>> Hello,
>>
>> I've successfully used mpich2 on windows and on a couple of other osx
>> machines, but having just built mpich2 from source on a new mac pro I
>> encounter difficulty when trying to run some mpi programs.
>>
>> OSX 10.5 ships with OpenMPI apparently, such that there are mpi* programs
>> in /usr/bin
>>
>> I accepted the default when configuring/building/installing mpich2, such
>> that it gets installed to /usr/local/bin
>>
>> Once I realized that the wrong mpiexec was getting called, I chose to
>> "hide" the /usr/bin versions (not knowing otherwise how to disable or
>> uninstall the openmpi) by just creating a folder _mpi_hidden in /usr/bin and
>> placing all those mpi* programs in there.
>>
>> Now when I type "which mpiexec" it correctly states /usr/local/bin/mpiexec
>> (the mpich2 installed version)
>>
>> But when I try the example "mpiexec -n 3 hostname" I get the error message
>>
>> -bash: /usr/bin/mpiexec: No such file or directory
>>
>> I'm not clear about what's going on here.  Is the python mpiexec in
>> /usr/local/bin trying to call the preexisting mpiexec in /usr/bin?
>>
>> The original mpiexec in /usr/bin reports this when run without argument
>>
>> mpiexec (OpenRTE) 1.2.3
>> <usage/flags snipped>
>>
>> Thanks for any help untangling this problem.  I'm not sure why I didn't
>> run into this problem on a new imac that was setup similarly a couple months
>> ago...Perhaps OS preinstalled on that system was an earlier   rev of 10.5.
>>  For whatever reason it does not have any mpi programs in /usr/bin.
>>
>> -thomas blom
>> ices/ut austin
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Jeff Squyres
>> Cisco Systems
>>
>>
>>
>>
>>
>> --
>> Eric A. Borisch
>> eborisch at ieee.org
>>
>> Howard Roark laughed.
>>
>
>
> --
> Jeff Squyres
> Cisco Systems
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20081219/94a67c6a/attachment.htm>


More information about the mpich-discuss mailing list