問題タブ [spmd]
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 並列計算ツールボックス: 同じタスクにより多くのコアを使用する
私は 4 つの物理コアを備えたラップトップと、MatLab 並列計算ツールボックスを持っています。私は2つの独立したタスクを実行する必要があります(非常に高価です。たとえば、密で大規模な行列の最大の固有値を計算するとしましょう)。
したがって、次の方法でタスクをコアに分散したいと考えています。
- 最初のタスクで 2 コア
- 2 番目のタスクで 2 コア
しかし、これをMatLabコードで設定する方法を本当に理解/見つけることができません。
よく検索した結果、 を使用する必要があることがわかりましたが、同じタスクに 2 つのコアspmd
を使用できる適切な例がドキュメントに見つかりません。
MatLab での最小限の作業例は本当にありがたいです!
ダニエルのコメントの後の編集: 4 つのワーカーの並列プールを作成した後、次のことができます。
編集(2)
を設定できるNumThreads=2
ので、各ワーカーは 2 つのタスクを実行します (右?)。問題は、各ワーカーが 2 つのスレッドを実行するように、 4 つのワーカーを持つパープールを作成する必要があるかどうかです。より明示的に:
parpool(4);
%set NumThreads = 2 via Parallel computing toolbox
%define matrix A1, A2 of size 1000x1000
parfor i=1:2
x(i) = max(abs(eigs(A(i))));
end
x(1)
最初の 2 つのコアが で動作し、残りの 2つのコアが で動作するようにしたいと思います。x(2)
最終編集:
コメントに書かれているようにa を使用するparfor
と、次のようになります。
matlab - matlabのspmdを使用して単純な三重積分を計算すると、間違った解決策が得られます.私が間違っていることについて何か考えはありますか?
matlabのspmdを使用して単純な三重積分を計算すると、間違った解決策が得られます.私が間違っていることについて何か考えはありますか?
q が正解です。