問題タブ [mpi4py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
160 参照

python - しばらく生成した後の mpi4py のエラー、デバッグ方法

これはインターネット上のいくつかの質問に似ていますが、このコードはすぐにエラーを返すのではなく、しばらくの間機能しているようです。

複数の MPI プロセスを生成するコードを実行しています。各プロセスはループを作成し、その中で bcast と scatter を使用してデータを送信し、それらのプロセスからデータを収集します。これにより、アルゴリズムが実行され、データが保存されます。次に、スポーンされた通信から切断し、次のループで別のスポーン セットを作成します。これは数分間機能し、約 300 個のファイルの後、これを吐き出します。

これをローカル マシン (単一ノード) でテストしているため、最終展開には複数のノードがあり、それぞれがそのノード内で独自の mpi プロセスを生成します。これがローカル マシンで複数のノードをテストする際の問題であり、HPC で正常に動作するのか、それともより深刻なエラーなのかを把握しようとしています。

どうすればこれをデバッグできますか? 詳細モードなど、MPI が何をしようとしているのかを出力したり、MPI を監視したりする方法はありますか?

0 投票する
0 に答える
182 参照

python - PyPy を使用して mpi4py の `setup.py build` を実行できません

OpenMPI で mpi4py ライブラリを使用して、分散メモリ プログラムを開発しています。これまでのところ、バニラの Python 2.7 (CPython) を使用しています。

mpi4py プロジェクト ページによると、mpi4py は「PyPy 2.0 以降」に対応しています。

Fedora 22 のインストールで、PyPy 2.4.0 を次のようにインストールしました。

sudo dnf install pypy pypy-devel

次に、virtualenv を作成し、次のようにアクティブ化しました。

virtualenv env -p $(which pypy) && . env/bin/activate

次に、pipでmpi4pyをインストールしようとしました:

pip install mpi4py

しかし、次のエラーが表示されます。

ただし、通常の CPython を使用する場合は、この同じ一連の手順が問題なく機能します。私は PyPy のニュアンスにあまり詳しくありません。ここで明らかな何かが欠けていますか?

(注: OpenMPI はsudo dnf -y install openmpi openmpi-develF22 にインストール済みです)

0 投票する
1 に答える
257 参照

python - mpi4py - 通信ブロックを回避する方法

私は MPI コードを使用したことがあり、概念の基本的な考え方はいくつかありますが、自分で MPI 開発を行ったことはありません。Pythonコードのいくつかを並列化することから始めています。ここに私がやろうとしていることのスニペットがあります:

私はコードを実行します

問題は、ループ分解によってプロシージャーのループのサイズが等しくならない場合があることです。たとえば、nt=21 で 2 つの proc を使用すると、proc 0 がループします。

そしてproc 1ループオーバー:

したがって、it=20 の場合、proc 0 は、何もしていない proc 1 からの通知を待機し続けます。明らかに、nt%np=0 を持たない nt と np の組み合わせでは、この問題が発生します。

このような場合、どのように通信を設定するのが良いでしょうか?

ありがとう!

0 投票する
2 に答える
1920 参照

python - mpi4py を使用して並列化された Python スクリプトをプロファイリングする

main_parallel.pyというpythonスクリプトを使用しています。フォームmpi4pyを使用して時間を測定できますが、cProfile に似たプロファイルを作成するにはどうすればよいですか? コードの各部分の呼び出し回数を見るのが好きです。cProfile はシリアル コード専用なので使用できません。timecli

ありがとう!

0 投票する
1 に答える
662 参照

python - MPICH2 と mpi4y の違い

mpich2 と mpi4py の違いは何ですか? Raspbian クラスターに MPICH2 をインストールしました。mpi4py も必要ですか?

0 投票する
1 に答える
1462 参照

python - mpi4py を使用したセグメンテーション違反

mpi4py を使用して、処理タスクをコアのクラスターに分散しています。私のコードは次のようになります。

これにより、次のエラーが返されます。

このエラーは、格納されているデータall_data1の配列が Python の配列の最大サイズを超えていることを意味していると思います。

私は次のように、より小さな部分でそれをやってみました:

しかし、これは次のエラーを返しています。

続いて、理解不能なパスのような情報と最終メッセージが大量に続きます。

これは、使用しているプロセッサの数に関係なく発生するようです。

recvC での同様の質問の場合、解決策は、呼び出しの引数が解析される方法を微妙に変更しているようです。Python では構文が異なるため、このエラーが表示される理由と修正方法を明確にしていただけると幸いです。