問題タブ [matlabpool]
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 - エラーのためにMatlabの並列プールがシャットダウンしましたか?
Matlab-r2014b の parfor で 12 個の並列ワーカーを使用してコードを実行しようとしています。私が使用しているマシンには12コアがあるので、それを行うことができます。
ただし、コードの実行を開始すると、10 ~ 15 分後に、Matlab 画面の左下の ["Busy" という単語の隣にある] 記号 (parfor が適切に機能している場合、通常は青または緑の四角形) が灰色になります。黄色の三角形で。マウスをその上に置くと、「エラーにより並列プールがシャットダウンしました」というメッセージが表示されます。Matlab コマンド ウィンドウはエラーを報告せず、コードは 1 つのワーカーだけを使用して動作し続けます。
メッセージの考えられる原因について何か考えはありますか?
matlab - Matlab Parallel Computing Toolbox は 1 つのコアに 1 つのワーカーのみを割り当てますか?
こんにちは、並列計算を行うために matlab 並列計算ツールボックスを使用しています。私のラップトップは 2 コア 4 スレッドなので、タスクは 4 つのワークに接続できると想定していますか? ただし、コマンド「matlabpool open」を入力すると、2 つのワーカーしか接続されません。接続するワーカーの正確な数を指定して、計算をより効率的にするために、コアの数よりも多くのワーカーの数でタスクを分散できるようにする方法を誰か教えてもらえますか? ありがとうございました!
matlab - matlabpool を開始できない
MATLAB を約 1 年半前から実行しています。そして、ほぼ 3 か月に 1 回、matlabpool の準備を整えようとしてきました。完全にあきらめる前に、助けを求めることにしました。:)
私の問題はmatlabpoolコマンドから始まります。matlabpoolコマンドを入力すると、次のようになります。
いくつかの調査と眠れぬ夜の後、 「Cluster Profile Manager」で問題を解決する必要があることがわかりました。しかし、それが機能しているのを見る機会もありませんでした。ParallelパネルからCluster Profile Managerをクリックすると、次のようになります。
このメッセージを受け取った後、Cluster Profile Managerがポップアップしますが、実際には「待機」サイン以外には何も表示されません。分散コンピューティング ライセンスを確認しましたが、問題ないようです。
コマンドは 1 を返します。
ところで、何らかの問題に関連していると思われる別のエラー メッセージがあります。MATLAB を開始するたびにこれを取得します。
それらすべてに加えて; [環境] タブから [並列設定] を開こうとすると、次のメッセージが表示されます。
関数system_dependent.mを見つけようとしましたが、存在しないようです。私が得るエラーの他の一般的なスポット、関数"feature.m"、オプション"isdmlworker"は、私が情報を見つけることができなかった他の謎です。
MATLAB の分散コンピューティング システムを起動する際に遭遇した問題について、誰か助けていただければ幸いです。
編集: Ubuntu 14.04 で作業しており、MATLAB のバージョンは R2014a です。
multithreading - すべての MATLAB プール ワーカーを使用しない
CPU 構成に従って、ローカルの Matlab (R2015b) ワーカー プールをセットアップしました (クアッドコア、マルチスレッド => 合計 8 ワーカー)。
24 時間続くシミュレーションがありますが、同時にコンピューターを使用できるようにしたいと考えています。したがって、同時に作業を続けることができるように、1 日に 4 つのシミュレーション (バッチ経由で送信) に制限しています。
私の質問は次のとおりです。8 つのワーカーを使い果たすことなく、複数のジョブをキューに入れるにはどうすればよいですか? 関連するもう 1 つの質問は、プールのサイズを 4 ワーカーに減らしても、Matlab をスムーズに実行できるでしょうか?
ご回答どうもありがとうございました。
matlab - Matlab のパープールの追加のワーカーがアイドル状態になるのはなぜですか?
Matlab でパープールを使用しようとしています。
次のコードを使用してプールを開始し、選択したスクリプトを実行していますが、しばらくすると、プールが終了するという通知が表示されます。
以下は基本的に、コードが実行されているコンピューターを確認し、ワーカーの数を適切に割り当てます。
並列プールのシャットダウン通知のスクリーン ショット:-
複数のコンピューターとその複数のコアで一連のシミュレーションを実行しようとしています。シミュレーションは行ごとに行われるため、前の行に依存する必要はありません。シミュレーション スクリプト自体を投稿することもできますが、それは 300 行の長さであり、その一部を独自のスクリプトに分割しました。これは、より多くのコード行を意味します。
私が使用しているシミュレーション パッケージ (FieldII) は、シミュレーションが parfor で行われると気に入りません。したがって、pctRunOnAll コマンドを使用している理由です。私は、おそらくそれを機能させた他の人によって機能するはずだと信じるようになりました。
追加の労働者が働くことを決定せず、何もせずに座っている理由はありますか? プロセスでは、作業中のワーカーが 1 つしかないことがわかりますが、16 人のワーカーすべてが初期化されていることがわかります。
sim_img と sim_imm144 はまったく同じ厳密です。Matlabには最新バージョンを自動保存および自動ロードする機能があるため、sim_imgをコピーして名前を変更しました。したがって、一方のコンピューターでスクリプトに実験的な違いを加えると、それは自動的に保存され、もう一方のコンピューターに読み込まれます。そのため、仕事を失わないようにするための保険として、各コンピューターで 2 つの同一のスクリプトを実行しています。
sim_img(144) スクリプトは FieldII をロードします。次に、残りのコードをカプセル化する巨大な for ループがあります。for ループは、実行するシミュレーションと結果を保存するディレクトリを選択します。求める内容に応じて、シミュレータに初期化データを適用する if ステートメントと for ステートメントがいくつかあります。すべての設定が完了したので、結果ファイルがその行に対して書き込まれたかどうかを確認することで、データ行が処理されているかどうかを確認します。そうでない場合は、ファイルを作成してその行にファイルを事前に割り当てます。次に、現在の行に関連する初期化の最後のビットを実行し、その行のシミュレーションを開始します。ラインのシミュレーション後、事前に割り当てられたファイルにデータを書き込み、戻って別のラインをシミュレートする必要があるかどうかを確認します。
私の知る限り、スクリプト全体のコピーを各ワーカーにロードしていて、各ワーカーがスクリプト全体を実行していると思うので、コードの構造は問題ではありません。並列化できるのは、現在の行の結果ファイルが存在するかどうかを確認し、存在しない場合は事前に割り当てられているという事実です。私は現在、現在のシミュレーションで並行して動作している2台のコンピューターを持っています.parpoolにやらせようとしているのと本質的に同じです。
だから私が尋ねる質問は、追加の労働者がアイドル状態になる理由はありますか?
できるだけ多くの関連情報を追加しようとしました。
matlab - codistributed/subsasgn を使用したエラー (131 行目) 割り当てには、非シングルトンの添字よりも多くの非シングルトンの rhs 次元があります
コードを並行して実行しています。ローカル プロファイルには 2 つのコアがあります。このコードは、隠れマルコフ モデルのフォワード アルゴリズムです。私のコードはここにあります:
elnsum
andelnproduct
との結果は、タイプeln
内の 1 つの値にすぎませんdouble
。
そして、私はこのエラーが発生します:
forward_algo>(spmd) の使用時のエラー (45 行目)
ワーカー 1 でエラーが検出されました 2.
forward_algo のエラー (45 行目) spmd
表示されているように、複数の値を単一の左側の場所に割り当ててAssignment has more non-singleton rhs dimensions than non-singleton subscripts
エラーを発生させようとしているわけではありません。誰でも助けることができますか?
ありがとうございました
matlab - Matlab での大きな行列を使用した並列計算
大きな行列 M (18000 x 18000 のようなサイズ) とサイズの配列 k があります
小さな行列 C (18000 x 100 など)
とイテレータ
私はこのようないくつかの計算を行います
M が大きい場合、各ローカル ワーカーにコピーされるため、メモリの問題が発生します。ただし、M は変更されません。
質問 :
1) M のローカル コピーを回避するにはどうすればよいですか?
2) そのようなアルゴリズムに最適な並列構造はどれですか?
3) memmapfile について読みました。その目的で使用することは可能ですか?たとえば、M をファイルに保存するとします。
次に、各ワーカーにオブジェクトを渡すことができます
しかし、一度アクセスすると
それは、各ワーカーにメモリ内のコピーを与えることと同じではありませんか? では、ワーカーはマトリックスのローカル コピーを作成しますか?