Search code examples
macoscudamakefilempiopenmpi

Having Open MPI related issues while making CUDA 5.0 samples (Mac OS X ML)


When I'm trying to make CUDA 5.0 samples an error appears:

Makefile:79: * MPI not found, not building simpleMPI.. Stop.

I've tried to download and build the latest version of Open MPI reffering to Open MPI "FAQ / Platforms / OS X / 6. How do I not use the OS X-bundled Open MPI?" page and it did not solve the error.

make -j 4 2>&1 | tee make.out
[ lots of output ]
make[2]: *** [mpi/man/man3/MPI_Comm_disconnect.3] Error 127
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

I'm realy confused for now I have no idea what to do.


Solution

  • As mentioned in the comments, the simpleMPI example can be effectively bypassed by using make -k, or else deleting the simpleMPI subdirectory altogether, or renaming the Makefile that is in that directory. However if it is desired to actually install a version of MPI on the mac so as to be able to build the simpleMPI example, these instructions should help:

    The issue here is that you don't have the MPI compiler installed. You will need to install the MPICC compiler for Mac OSX. These instructions will use the MPICH2 version of MPI, which is generally available here

    Direct link to MPICH2 1.4 download

    You can follow these instructions to build and configure MPICH2 for Mac OSX. In the configure step, also add --disable-f77 and --disable-fc:

    ./configure --enable-shared --enable-sharedlibs=osx-gcc --enable-fast=all --prefix=/usr/local/mpich2-optimized --disable-f77 --disable-fc
    

    Then follow the guide instructions to make and then make install

    Now create symbolic links to MPICC so you can build CUDA MPI easily

    sudo ln -s /usr/local/mpich2-optimized/mpicxx /usr/bin/mpicxx 
    sudo ln -s /usr/local/mpich2-optimized/mpic++ /usr/bin/mpic++
    

    Alternatively, another option is to add

    /usr/local/mpich2-optimized/bin 
    

    to your path.

    Now when making simpleMPI, it will properly build.