2017-03-09 212 views
2

我一直在寻找一种在我的Mac上使用mpi的方法,但一切都非常先进。如何在Mac OS X上使用mpi

我已成功安装使用

brew install open-mpi 

我已经准备好编译和运行.c文件打开-MPI。当我键入:其次

mpirun <file> 

mpicc -o <file> <file.c> 

我得到

[XXXXX-的MacBook-Pro.local:13623] [44919,0],0] ORTE_ERROR_LOG:错误 文件中的参数orted/pmix/pmix_server.c在第262行
[xxxxx-MacBook-Pro.local:13623] [[44919,0],0] ORTE_ERROR_LOG:错误 文件ess_hnp_module.c中第666行的参数

看起来orte_init由于某种原因失败;您的并行进程 可能会中止。并行进程 在orte_init期间可能会失败的原因很多。其中一些是由于配置或环境问题造成的。这种失败似乎是内部失败; 这里有一些额外的信息(这可能仅适用于 开放MPI开发商):

PMIX服务器初始化失败
- >返回值错误的参数(-5),而不是ORTE_SUCCESS

我当我输入时也会得到相同的信息:

mpirun -np 2 <file> 

我在做什么错?

+0

你能成功运行呢? 'mpirun -np 2 hostname' – Arash

+0

您可能需要'导出TMPDIR =/tmp'以防止某些路径被截断 –

回答

4

如果我是你,我会做以下操作:

开放MPI的安装非常简单

https://www.open-mpi.org/software/ompi/v2.0/

> tar xf openmpi-2.0.2.tar 
> cd openmpi-2.0.2/ 
> ./configure --prefix=$HOME/opt/usr/local 
> make all 
> make install 
> $HOME/opt/usr/local/bin/mpirun --version 
mpirun (Open MPI) 2.0.2 

Report bugs to http://www.open-mpi.org/community/help/ 

您可以使用超级简单的Hello World用于测试目的

#include <mpi.h> 
#include <stdio.h> 

int main(int argc, char** argv) { 
    MPI_Init(NULL, NULL); 
    int rank; 
    int world; 
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    MPI_Comm_size(MPI_COMM_WORLD, &world); 
    printf("Hello: rank %d, world: %d\n",rank, world); 
    MPI_Finalize(); 
} 

一切就绪后,si mply编译和运行代码

$HOME/opt/usr/local/bin/mpicc -o hello ./hello.c 
$HOME/opt/usr/local/bin/mpirun -np 2 ./hello 
Hello: rank 0, world: 2 
Hello: rank 1, world: 2 

作品在MacOS

完美的罚款
+0

'make install'后应该是'$ HOME/opt/usr/local/bin/mpirun --version'(缺少'/ opt')。 – kostek

+0

.oOo。感谢您的发现。 .oOo。 – mko