Parallel Computing Toolbox 内の MATLAB ワーカーの数を増やして、マシンのすべてのコアを使用するにはどうすればよいですか?
53 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2025 年 2 月 26 日
編集済み: MathWorks Support Team
2025 年 2 月 26 日
私のコンピューターには 32 個の論理コアがありますが、既定では、Parallel Computing Toolbox は、物理コアの数に等しい数のワーカーのみを開始します。Parallel Computing Toolbox ですべての論理コアを使用できるようにするにはどうすればよいですか?また、それは有益な方法ですか?
採用された回答
MathWorks Support Team
2025 年 2 月 26 日
編集済み: MathWorks Support Team
2025 年 2 月 26 日
物理コア:
CPU 内の個々の処理ユニットを指します。最新のCPUでは、物理コアは、計算を実行して命令を実行できる独立した実行ユニットで構成されています。
論理コア:
仮想コアまたはスレッドとも呼ばれ、ハイパースレッディングや同時マルチスレッディング (SMT) などのテクノロジの使用から生じる概念です。これらのテクノロジにより、1 つの物理コアを複数の論理コアであるかのように動作させることができます。物理コア内の一部のリソースは、これを効率化するために複製されます。
一部の CPU では P コアと E コアを含んでいます。これらの詳細については、以下をご参考ください。
一般的な、計算主体の数学演算は、物理コアまたは P コアのみ実行することで、最大のパフォーマンスを得る傾向があります。一方、並列コードが計算制限を受けていない場合 (たとえば、ディスク I/O やメモリを大量に消費する操作を行う場合) は、ワーカーの数を既定値より大きく増やすことでパフォーマンスが向上する可能性があります。
まず、基本的にはデフォルトの、物理コア数と同じ数のワーカー数で起動することがお勧めです(parpool コマンドで起動する合はワーカー数は指定しない)。
上記で起動する、デフォルトのワーカー数を超えたワーカー数を起動する場合、MATLAB ワーカーとコードを実行するのに十分なメモリがあることを常に確認します。また、ワーカー数は徐々に増やし、アプリケーションのパフォーマンス、メモリ使用量、安定性を測定することをお勧めします。これは以下の方法で可能です。
MATLAB GUI による方法:
1) MATLAB の「並列」ボタン以下「クラスターの作成と管理」を選択して「クラスタープロファイルマネージャー」を開きます。
2) 画面右側で「Processes」 または「Local」プロファイルを選択し「ローカルマシンで起動するワーカーの数」(NumWorkers)を編集します。
プログラムによる方法:
c = parcluster('Processes') % or use parcluster('local') pre-R2022b
c.NumWorkers = 10; % choose the new value you want. Using 10 here as an example.
saveProfile(c) % will overwrite the profile with the new NumWorkers value
注意:
NumThreads も変更する場合は、NumWorkers x NumThreads <= システム上の物理コアの数にすることをお勧めします。
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!