web-dev-qa-db-ja.com

Mac OS Xでmpiを使用する方法

Macでmpiを使用する方法を探していますが、すべてが非常に高度です。

を使用してopen-mpiを正常にインストールしました

brew install open-mpi

コンパイルと実行の準備ができた.cファイルがあります。入力するとき:

mpicc -o <file> <file.c>

に続く

mpirun <file>

私は得る

[xxxxx-MacBook-Pro.local:13623] [[44919,0]、0] ORTE_ERROR_LOG:ファイルted/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中に並列プロセスが失敗する理由は多数あります。その一部は、構成または環境の問題が原因です。この障害は内部障害のようです。ここにいくつかの追加情報があります(これはOpen MPI開発者)にのみ関連する可能性があります):

pmixサーバーの初期化に失敗しました
->戻り値ORTE_SUCCESSの代わりに不正なパラメーター(-5)

次のように入力しても同じメッセージが表示されます。

mpirun -np 2 <file>

私は何を間違えていますか?

13
jjCS

もし私があなただったら、私は次のことをします:

Open 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/

テスト目的で非常にシンプルなハローワールドを使用できます

#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();
}

すべてが整ったら、コードをコンパイルして実行するだけです

$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で完全に正常に動作します

26
Oo.oO

@ Oo.oOによって提供される答えに基づいて。
OpenMPIをインストールします。
brewを使用してインストールできます。

brew install openmpi

7
letsBeePolite

Mac OS X/MacOS Sierraの一部のバージョンでは、デフォルトの一時ディレクトリの場所が十分に長いため、アプリケーションが、許可されている最大ファイル名長を超える一時ファイルのファイル名を簡単に作成できるため、このエラーが発生する可能性があります。したがって、export TMPDIR=/tmpを使用して一時ディレクトリを設定する必要があります

詳細はこちら https://www.open-mpi.org/faq/?category=osx

4
shinxg

Anacondaがインストールされている場合、これは私にとって最速のオプションでした:conda install -c mpi4py openmpi

1
sachinruk