問題タブ [parfor]
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.
matlab - matlab2013aでmatlabpoolを使用するには?
parfor
Matlab 2013a でループを使用しようとしています。ただし、開こうとすると、以下のエラーが表示されますmatlabpool
。
または私が使用するとき:
それは私0
に答えを与えます。
この問題を解決するにはどうすればよいですか? 私のシステムには、2.66 GHz 6core Intel Xeon プロセッサが 2 つ搭載されています。
matlab - parfor でエラーが発生するが、matlab の for ループではエラーが発生しない
私はmatlabの並列処理を試みていますが、この間にこのことを自分のコードに適用しようとしました。以下はコードです。
私が得ているエラーは次のとおりです
parfor を for に置き換えても、エラーは発生しません。何が間違っている可能性があるかを提案してください....
excel - 並列処理用に MATLAB で parfor コマンドを使用して EXCEL ファイルを作成する
parfor ループの外側 (コードの先頭) で Excel ファイルを作成し、各ループで Excel ファイルを更新し、ループが完了した後に特定の場所に Excel ファイルを保存したいと考えています。しかし、いくつかのエラーが発生しています。次のコマンドで:
上記のコードは、次のエラーを示しています: 1. parfor 内の変数 Excel を分類できません。変数 'Excel' の使用方法、4. 'Excel' の有効なインデックスは PARFOR ループで制限されています。, 5. 10 行目の callee.Error によって呼び出しが拒否されました (wb.Sheets.Item(1).Activate(); )。
matlab - 並列計算で rng('shuffle') 関数を使用する
にparfor
並列計算用のループがありますMatlab
。parfor
8 つのワーカーでこれらのループを呼び出すたびに、異なる乱数を使用したいと考えています。rng('shuffle')
関数を使用しない場合、 に対して同じ乱数がありrandperm(10)
ます。この場合、私のコードはすべてのワーカーで同時にrng('shuffle')
関数を実行します。randperm
この状態で異なる乱数がありますか? parfor ループで出力を見るrandperm
と、これらの出力の一部は同じです!
rng
前に保存して、並列ループを終了した後にrng('shuffle')
何かを使用する必要がありますか?rng(saved_rng)
これがMatlab
役に立ちます:
rng('shuffle') は現在の時刻に基づいて乱数ジェネレーターをシードするため、独立したストリームを確保したい場合は、このコマンドを使用して異なるワーカーに乱数ストリームを設定しないでください。これは、コマンドが parfor、spmd、または通信ジョブ内など、複数のワーカーに同時に送信される場合に特に当てはまります。ワーカーの独立したストリームには、デフォルトの動作を使用します。または、それがニーズに十分でない場合は、各ワーカーで一意のサブストリームを使用することを検討してください。
それで、私は何をすべきですか?を削除すると乱数が異なりrng
ますか? これらのコードには 2 つのバージョンがあります。それらの1つはループを使用した計算でparfor
あり、ループを使用したfor
ループは削除できますか? この状態で異なる乱数がありますか?shuffle
for
ありがとう。
Ps。
私はこれらの構造を持つことができます:
関数とは異なる乱数が必要ですrandperm
。どうやってやるの?for
構造には関数が必要ですshuffle
(それがなければ乱数は同じです)が、それをparfor
いくつかのランダム出力に追加するrandperm
と同じです!
matlab - parfor (並列計算ツールボックス) と + を含むカスタム パッケージを使用する MATLAB
私は、他の多くのカスタムメイドのパッケージを使用する MATLAB プログラムに取り組んでおり、多くの場合、同様の名前のファイルが含まれています。そこで、カスタム パッケージ アプローチ ( http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html ) を使用して、さまざまな関数内の特定の関数を参照するときに効果的にドット表記を取得することにしました。私が使用しているパッケージ。たとえば、次のpose
ファイル構造を持つパッケージがあります。
私のmain.m
ファイルには、並列化された for ループがあります。
しかし、私はエラーが発生し続けます
MATLAB は、「ポーズ」が関数または変数のどちらを参照しているかを判断できません。Parallel for Loops in MATLAB、「明確な変数名」を参照してください。
MATLAB 並列プログラミング ドキュメント ( http://www.mathworks.com/help/distcomp/programming-considerations.html ) を見ると、並列 for ループ内で使用するすべての関数は for ループ内で透過的でなければならないようです。しかし、これは、「parfor ループを実行するすべてのワーカーは、クライアントと同じ MATLAB 検索パスを持つ必要がある」という MATLAB の他の並列プログラミングの原則に直接違反しているようです。
誰もこれを調整する方法を知っていますか?
matlab - parfor の変数 `X` は MATLAB で分類できません
私はparfor loop
このようなものを持っています:
このコードを実行すると、次のエラーが発生します。
AUC値を保存して、後で使用したいparfor loop
。何が問題で、どうすれば解決できますか?
ありがとう
linux - 並列 matlab 実行のタイムアウトと強制終了
Linux で実行されている長い処理パイプラインの途中に、matlab 処理スクリプトがあります。
matlab スクリプトは、(8 コア) で並列に多数N
のデータセットに同じ操作を適用します。通常、データセット全体の処理には約 2 時間かかります (8 コアの場合)。D_i (i=1,2,...,N)
parfor
残念ながら、時々、matlab サブプロセスの 1 つがランダムにクラッシュするようです。これにより、ジョブを完了できなくなります (そして、パイプラインを完了できません)。
D_i
プロセスがクラッシュした場所を具体的に再処理した場合、問題なく実行されるため、これはデータに依存しないと確信しています。さらに、これまでに数千の前述のデータセットを処理しました。
今問題に対処する方法(...手動で...):
matlab ジョブを開始した後、マシンのプロセス リストを定期的にチェックします (単純な を使用top
)。2 時間の作業の後、1 つの matlab プロセスが生きている場合はいつでも、それがクラッシュしたことを確認できます。次に、単純にそれを強制終了し、分析されていないデータセットの部分を処理します。
質問:
実行中のすべての matlab プロセスをタイムアウトし、たとえば 2 時間以上 CPU が稼働している場合はいつでもそれらを強制終了する方法についての提案を探しています。
matlab - matlab での Floyd-Warshall アルゴリズムの並列化
この質問は以前に何度か回答されていることは知っていますが、状況を改善するために以前の回答をすべて確認しましたが、役に立ちませんでした。
私がする必要があるのは、ループを並列化して、各都市 (または内側のループ) が並列に処理されるようにすることです。しかし、parfor を使用しているときに、「parfor の変数 A を分類できません」というエラーが表示されます。2d 行列のサイズは n X n に固定されています。問題がわかりません。親切に私を助けてください...
私が提供した c 実装は mpi.h を使用して行われました。mpicc を使用します。私が達成する必要があるのは、n個のプロセスが必要であり、それぞれがその地方都市から他のすべての都市への最短経路を見つける責任があるということです。
異なる場合はその都度。私の場合:
最短パスを計算する関数は次のとおりです。