問題タブ [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 - mpiexec と python mpi4py はランク 0 とサイズ 1 を与えます
仮想マシンで python Hello World mpi4py コードを実行する際に問題があります。
hello.py コードは次のとおりです。
mpiexec と mpirun を使用して実行しようとしましたが、うまく動作しません。出力:
そしてmpiexecから:
彼らは通信のランクとサイズを取得していないようです。何が原因でしょうか? それを解決する方法は?
システムは、仮想マシン上の Ubuntu 14.04 です。
理由はありますか?ありがとう!
python - Starcluster、別のノードで特定のタスクを実行する方法
高度な統計データを処理し、長く複雑な計算を実行する Python アプリケーションで作業しています。
ユーザーが要求すると、非同期スレッドが作成され、計算が開始され、結果がデータベースに等間隔で保存されます。メイン スレッドと同様に、データベース内の変更を探し続け、結果でユーザーを更新します。
現在、AWS と連携する MIT の Starcluster を使用するよう求められています。マスター クラスターとスレーブ クラスターを作成しました。私の質問は、MPI4py を使用してノード (スレーブ) マシンで計算を実行し、マスターで他のすべてのことを実行する方法です。
私はコードを書いていませんが、負荷分散の意味でどのように機能するかを示す例を見つけました。
ノード マシンで特定の API を呼び出してノード マシンでタスクを実行する方法はありますか?
python - mpi4py を使用した部分配列データ型
mpi4pyを使用して8x8マトリックスから4x4マトリックスサブマトリックスを送信しようとしている簡単なプログラムを作成しています。私のアプローチは、部分配列データ型を使用することですが、セグメンテーション違反が発生し続けます。
私のコードは次のとおりです。
4 つのプロセスで実行した場合の結果は次のとおりです。
Create_subarray について間違った考えを持っていますか、それとも他に何が間違っているのでしょうか?
python - マルチプロセスはPythonで1つのファイルを読み取ります
非常に大きな txt.file (約 20G) があります。最初の行から最後まで読み取るのではなく、マルチプロセスを使用してファイル全体を読み取ることはできますか?
たとえば、4 つのプロセスがあり、最初にファイルの行数を数えます (2000 行あるとします)。プロセス1は1行目~500行、プロセス2は501行目~1000行を読み取りますが、可能かどうか知りたいです(あるプロセスが読み取りを行っている場合、別のプロセスが同時に読み取ることはできますか?)。おそらく、この質問はtxtファイルを分割する方法に関するものです。
よかったら。どうやってするの?ファイルの 1 つのプロセスのコードは次のようになります。
alllines を数字に変更する方法がわかりません。何か提案はありますか? 前もって感謝します。
mapreduce - MapReduce コード mpi タイムアウト
MapReduce コードを使用していますが、問題が発生しました。マップ (1 時間かかる) が終了した後、コードが応答しません。コードを掘り下げたところ、この関数が応答しないことがわかりました。
この行は応答しません:
Iprobe()
inmpi4py
のタイムアウトはありますか? また、タイムアウト時間を設定するにはどうすればよいですか? Iprobe()
ここで同じ役割を持つ代替手段はありますか?
.send() 経由でメッセージを送信する前の関数を次に示します。
コード全体は次の場所で確認できます。
https://drive.google.com/file/d/0B36fJi35SPIedWdjbW5NdzlCeTg/view?usp=sharing
python - Python MPI またはマルチプロセッシング プログラムのメモリ占有率を測定するにはどうすればよいですか?
私は計算ノードにログインできず、対話型セッションの可能性がない Cray XE6 マシンでこれを行っています。したがって、どうにかして top コマンドを使用する必要があります。ログファイルに送信します...誰かがこれを行う方法の例を作ることができますか?
ありがとう
mpi - MPI ランダムブロードキャスト
MPI プロセス間のランダム ブロードキャストに取り組んでいます。基本的に、一種のランダム化された分散型通信が必要です。想定される速度の向上のために、送受信スタイルの通信ではなく、ブロードキャストが好きですが、定義によっては、わずかな「バグ」または機能が発生します。
以下を実行すると、
望ましくない出力が得られます。
ランク 3 プロセスが 4 から [7 7 7] を受信したことに注意してください。ランク 4 は [4 4 4] をブロードキャストする必要があるため、これは発生しません。これは他の場所でも見ることができます。
OpenMPI (OpenRTE) 1.6.5 と Mpi4Py 1.3.1 を使用しています。Ubuntu 15.04 で。
それを修正する方法はありますか?理想的には、この例では、ベクトルがプロセスから受信された場合、配列はプロセスのランクで埋められるべきです。
python - mpi4py プログラムからの予期しない出力
Python を使用した MPI は初めてで、ここでいくつかの問題が発生しています。これは私のコードです:
印刷したい:From process PROCESS_NUMBER, sum = 3
プロセス 0 は正しく印刷されますが、プロセス 1 は None を印刷します。
理由がわかりません。誰でも私を助けることができますか?
python - MPI の Allreduce による Python オブジェクトの合計
Python で辞書とカウンターを使用して作成したスパース テンソル配列操作を使用しています。この配列操作を並行して使えるようにしたいです。肝心なのは、MPI.Allreduce (または別の優れたソリューション) を使用して一緒に追加したい各ノードにカウンターを配置することになったことです。たとえば、カウンターを使用すると、これを行うことができます
そのような
これと同じ操作を行いたいのですが、関連するすべてのノードを使用して、
ただし、MPI は辞書/カウンターでこの操作を認識していないようで、エラーがスローされますexpecting a buffer or a list/tuple
。私の最善の選択肢は「ユーザー定義操作」ですか、それとも Allreduce にカウンターを追加させる方法はありますか? ありがとう、
編集 (2015 年 7 月 14 日): 辞書のユーザー操作を作成しようとしましたが、いくつかの矛盾がありました。私は次のように書いた
そして、関数についてMPIに話したとき、私はこれをしました:
そして、コードではそれを次のように使用しました
しかし、それは投げunsupported operand '+' for type dict
ました。だから私は書いた
そして今、それはdict1[key] += dict2[key]
TypeError: 'NoneType' object has no attribute '__getitem__'
どうやらそれらが辞書であることを知りたがっているようです。型辞書があることをどのように伝えますか?