問題タブ [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.
python - NumPyを使用したMPI4Pyでの構造化配列データの送受信
NumPyの構造化配列を使用して、MPI4Pyでデータを送受信しようとしています。以下は私の配列構造です:
そして私は次のようにデータを交換するためにSendrecvメソッドを使用しています:
しかし、通信メソッドが呼び出されると例外が発生します。
これは、1つのデータ型(たとえば、すべてのバイト)のみの配列を使用する場合に機能します。MPI4Pyはこれらの構造化配列を送信できませんか、それとも何か間違ったことをしていますか?
python - Python: mpi4py で不連続なデータを送信する
次元 (N,M) の C 順序行列があります。
そのうち、永続的な MPI リクエストを介して別のノードに列を送信したいと考えています。ただし、 を使用するmpi4py
と、
スライスが連続していないために失敗します。誰かがこれについての方法を提案できますか? 私は、型を作成するときにMPI_Type_vector
a を指定できるC を信じています。stride
どうすればこれを達成できmpi4py
ますか?
python - openmpi プロセスのメモリ制限を削除するにはどうすればよいですか?
mpirun と 2 つのコアでプロセスを実行していますが、2 つのプロセス間で値を混合している時点で強制終了されます。どちらのプロセスもマシンのメモリの約 15% を使用し、ミキシング時にメモリが増加しても、まだ十分なメモリが残っているはずです。したがって、プロセス間でメッセージを渡すために使用されるメモリの量には制限があると想定しています。この制限を確認するにはどうすればよいですか? また、それを削除するにはどうすればよいですか?
mpirun が終了したときに表示されるエラー メッセージは次のとおりです。
そして、これはエラーにつながるコードのビットです:
コードは通常は機能しますが、大量のデータでのみ問題が発生するため、プロセス間で交換するマトリックスのサイズが大きくなります
python - Cluster:II で Hello_World が mpi4py で再生されない
再度、ローカル クラスタで mpi4py を学習しようとしています。したがって、hello_world プログラムを作成しましたが、実行されません! .py コードとエラーを添付しました。誰かが私が間違っていることを指摘できますか? 前もって感謝します。
こんにちは世界:
エラーメッセージ:
python - mpi4py を使用して x 個のタスクを n 個の proc (x>>n) に分割します
mpi4py を使用して、多数の個々のタスクをいくつかのプロセッサに分割したいと考えています。次の例は、私の意図を示している可能性があります。
len(v)==number of procs で実行する限り、すべて問題ありません。しかし、たとえば v=random.random((100,3)) の場合、明らかに機能していません。これは通常どのように達成されますか?
前もって感謝します。
send - 大きなデータを送信しようとすると mpi4py がハングする
最近、mpi4py-library の「send」コマンドを使用して、複数のプロセッサ間で大きなデータを共有しようとすると問題が発生しました。1000x3 numpy float 配列でさえ大きすぎて送信できません。この問題を克服する方法はありますか?
事前にthx。
pickle - クラスを送信しようとしたときの mpi4py Pickling エラー
mpi4py を使用して、一部の計算を複数の proc に分割しています。基本的には、tvtk と mayavi を使用して作成した凸包のボリュームを計算するだけです。
最初の proc のみがこれらのライブラリをインポートします:
次に、すべてのプロシージャ間でオブジェクト mlab と tvtk を共有しようとします。
次の手順は次のようになります...
ただし、次のエラーが常に発生するため、明らかにインスタンス/クラス (または mlab と tvtk が何であれ) を送信することはできません。
すべてのプロシージャ間でインスタンス mlab と tvtk を「共有」する方法はありますか?
編集:短い例; これを機能させることができますか?
serialization - mpi4py: 組み込みのシリアル化を置き換えます
MPI4PY の組み込みのシリアル化を dill に置き換えたいと思いPickle
ます。ドキュメントによると、クラス _p_Pickle には と という 2 つの属性が必要dumps
ですloads
。ただし、Pythonは、次のことを試すと、そのような属性はないと言います
-> AttributeError: タイプ オブジェクト 'mpi4py.MPI._p_Pickle' には属性 'dumps' がありません
どこdumps
にloads
行きましたか?
python - mpi4py Bcast を使用して大規模な行列を送信すると、Asserfailed エラーが発生する
mpi4py で python を使用して、コンピューティング クラスターで並列コードを実行しています。次のエラーが表示されます。
どこで発生しているかを確認するために print ステートメントを挿入しました。これは、合計 32 のプロセスのうちの 1 つのプロセスから別のプロセスに大きなマトリックス (14x14x217) をブロードキャストしようとすると発生します。テストを実行すると、コードはうまく機能し、14x14x61 の小さいマトリックスが得られます。コードの関連部分は次のとおりです (実行中にエラーが発生しますcomm.Bcast
)。
次のことがわかりました: http://listarc.com/showthread.php?4387119-Assertion+failureとmpi4py は大きなデータを送信しようとするとハングします。これは、プロセス間で送信できるデータにサイズ制限があることを示唆しています。データ転送のサイズが限界に達したためにエラーが発生したと考えてよろしいですか? もしそうなら、関連するマトリックスがほぼ同じサイズであるため、なぜBcast
他のSend
/通信中にのみ発生し、他の / 通信中に発生しないのですか?Recv