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>
私は何を間違えていますか?
もし私があなただったら、私は次のことをします:
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で完全に正常に動作します
@ Oo.oOによって提供される答えに基づいて。OpenMPI
をインストールします。brew
を使用してインストールできます。
brew install openmpi
Mac OS X/MacOS Sierraの一部のバージョンでは、デフォルトの一時ディレクトリの場所が十分に長いため、アプリケーションが、許可されている最大ファイル名長を超える一時ファイルのファイル名を簡単に作成できるため、このエラーが発生する可能性があります。したがって、export TMPDIR=/tmp
を使用して一時ディレクトリを設定する必要があります
Anacondaがインストールされている場合、これは私にとって最速のオプションでした:conda install -c mpi4py openmpi