在Mac OS X中修复内置的Open MPI软件包

时间:2012-11-03 11:05:49

标签: cuda mpi osx-mountain-lion openmpi repair

几天前,我尝试编译并制作CUDA Toolkit 5.0示例以验证安装。 但是,在制作过程中,制作simpleMPI样本时出错。 没有详细说明我假设我需要将Open MPI安装到我的主机上。 我已经下载了最新版本,例如的openmpi-1.6.2。 然后根据Open MPI FAQ page我已经运行

    ./configure --prefix=/usr/local
    make all install

但遗憾的是,make命令出错了。我决定深入研究,Mac OS X有一个内置的Open MPI捆绑包。我又发现了一个FAQ page for Mac OS X users,并尝试以这种方式在/ opt / openmpi文件夹中安装Open MPI

    ./configure --prefix=/opt/openmpi 2>&1 | tee config.out
    shell$ make -j 4 2>&1 | tee make.out`

再没有运气了。失败了。那一刻我明白我可以跳过simpleMPI样本而且我这样做了!

再一次,没有详细说明,我决定从不必要的文件清理我的系统,做了愚蠢的事make unistall而不是make clean

现在, nvcc 编译器似乎已损坏,我需要重新安装或修复内置的Open MPI捆绑包。

问题是如何实现这一目标? Alsough我有TimeMachine备份。

P.S。 simpleMPI CUDA示例的问题是here。如何制作simpleMPI样本构建已经有了明确的答案。

更新[2012年11月3日22:09]

成功安装MPICH2后没有运气。适当的值添加到PATH:

    vim ~/.bash_profile
    export MPI_DIR=/usr/local/Cellar/mpich2/1.5/
    export PATH=$MPI_DIR/bin:/usr/local/cuda/bin:/Developer/NVIDIA/CUDA-5.0/bin:$PATH
    export LD_LIBRARY_PATH=$MPI_DIR/lib:$LD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
    export EDITOR=vim

通过终端呼叫nsight运行NSight。这很重要,因为我试图将NSight锁定到码头。但是当从Dock运行时,NSight找不到GPU设备。所以每次我使用终端。

我尝试创建新的CUDA Runtime C / C ++项目并运行它。但是NSight每次都以同样的方式失败。这是:

    nvcc -G -g -O0   "src/Simple CUDA RT Proj.o" "../src/Simple CUDA RT Proj.cu"
    i686-apple-darwin11-llvm-g++-4.2: src/Simple CUDA RT Proj.o: No such file or directory
    make: *** [src/Simple CUDA RT Proj.o] Error 1

每个项目都有相同的问题,主要.o文件丢失。

更新[2012年11月4日10:36 UTC]

我已经通过 brew 安装了Fortran编译器。并尝试使用前缀urs / local构建OMPI(根据OSX FAQ实体)。 一两个小时后失败并出现错误:

    sh: usr/local/cuda/bin/echo: No such file or directory
    make[2]: *** [util/hostfile/orte_hosts.7] Error 127
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [all-recursive] Error 1
    make: *** [all-recursive] Error 1

更新[2012年11月5日13:40]

尝试使用以下参数构建open-mpi-v1.9:

   ./configure --enable-shared --enable-sharedlibs=osx-gcc --enable-fast=all --prefix=/usr/local --with-cuda=/usr/local/cuda --with-cudalib=/usr/local/cuda/lib

现在因类似错误而失败:

   sh: usr/local/cuda/bin/mv: No such file or directory

看起来make-script尝试访问cuda / bin目录中的顶级二进制文件并使失败。似乎make-script错误地将相对快速的系统范围调用(如mvecho)转换为使用cuda bin目录的绝对路径。这是不正确的配置选项还是Open MPI错误?

或者,Open MPI可能不是主要问题?也许我应该寻找别的东西? 我的主要煤炭正在运行CUDA代码!

1 个答案:

答案 0 :(得分:0)

原来问题是由文件路径中的空格引起的,类似于this question中的情况。

相关问题