このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
並列プールでのコードの実行
並列プールとは
並列プールは、計算クラスターまたはデスクトップ上にある一連の MATLAB® ワーカーです。既定では、parfor
などの並列言語機能で必要とされる場合に、並列プールは自動的に起動します。並列設定で、既定の並列環境を指定できます。[並列] メニューの [並列設定] を選択すると、設定パネルに既定の並列環境が表示されます。[並列] 、 [並列環境を選択] メニューで既定の並列環境を指定することもできます。あるいは、MATLAB コマンド ラインで parcluster
と parpool
をそれぞれ使用して、並列環境とプール サイズを選択できます。
並列プールのワーカーは対話的に使用することが可能で、ワーカーはジョブの有効期間中に相互に通信できます。parpool
ジョブはジョブ モニターで表示できます。これらのプール ワーカーを対話型で使用するために予約している間は他のユーザーは使用できません。
MATLAB では、並列プールは parallel.Pool
オブジェクトで表されます。並列プールは一度に 1 つの並列環境またはプロファイルから 1 つしか作成できませんが、そのプールを複数のプールに分割することができます。これにより、より柔軟なリソース割り当てが可能になります。詳細については、Partition Parallel Pools to Optimize Resource Useを参照してください。
R2025a より前: MATLAB クライアント セッションから使用できる並列プールは一度に 1 つのみです。
並列プールの自動起動と自動停止
既定では、特定の並列言語機能が必要な場合、並列プールは自動的に起動します。以下を含む多くの関数が自動的に並列プールを起動できます。
並列設定で、プールが実行される並列環境を指定します。設定にアクセスするには、[ホーム] タブの [環境] セクションで、[並列] 、 [並列設定] を選択します。
並列設定で、プールを自動的に開く、あるいは閉じるオプションをオフにすることができます。プールを自動的に開くオプションをオフにして、並列プールが開いていない状態で Parallel Computing Toolbox™ の機能を使用する場合は、コードはクライアントで実行されます。
プールを起動および停止する代替方法
プールを自動的に開く選択をしていない場合、以下の方法でプールをコントロールできます。
MATLAB デスクトップからの並列プールの制御
MATLAB デスクトップの左下隅にある並列ステータス インジケーターを使用して、並列プールを手動で起動できます。
MATLAB Online では、既定で並列ステータス インジケーターが表示されません。まず、parpool
または並列プールを自動起動する関数のいずれかを使用して、並列プールを起動しなければなりません。
インジケーター アイコンをクリックし、[並列プールの起動] を選択します。プールの並列環境は、既定の並列環境で指定します。既定の並列環境は、[並列] 、 [並列環境を選択] メニューにチェック マークで示されます。
プール実行中は並列インジケーターのメニュー オプションが異なります。次のことが可能です。
ワーカー数とプールが実行されている並列環境を表示する
自動シャットダウンまでの時間を変更する
並列プールをシャットダウンする
プールを停止するには、[並列プールのシャットダウン] を選択することもできます。
プログラミング インターフェイス
並列プールの起動. 既定の設定を使用するか、または代替方法を指定することで、プログラムにより並列プールの起動と停止を実行できます。
既定の設定に応じた並列プールを起動するには、以下を実行します。
parpool
特定のサイズのプールを起動するには、以下を実行します。
parpool(4)
既定以外の並列環境を使用してプールの実行場所を指定するには、以下を実行します。
parpool('MyProfile',4)
さまざまな並列環境で並列プールを実行できます。詳細については、スレッドベースの環境またはプロセスベースの環境の選択を参照してください。
並列プールのシャットダウン. プールをシャットダウンするときに、現在の並列プールを取得してそのオブジェクトを使用するには、以下を実行します。
p = gcp; delete(p)
並列プールが実行中でないことの確認. 引数を指定せずにコマンド gcp
を発行すると、誤ってプールを開くことがあります。この問題を回避するには、以下を実行します。
delete(gcp('nocreate'))
メモ
起動中の並列プールを停止するには、Ctrl+C または Ctrl+Break を押します。Apple macOS では、Command. (Command キーとピリオド キー) も使用できます。
プール サイズに影響する要因
Parallel Computing Toolbox は、最大 2000 個のワーカーをもつ並列プールをサポートできます。並列プールを作成するとき、プロファイル プロパティ NumWorkers
および PreferredPoolNumWorkers
の値が、取得する並列プールのサイズに影響します。
NumWorkers
プロパティ
NumWorkers
プロパティは、クラスターまたはローカル マシンで使用できるワーカー数のハード制限です。
MATLAB ジョブ スケジューラ クラスターの場合、
NumWorkers
プロパティの値は、クラスターで実行中のワーカー数から決定されます。サードパーティ製スケジューラ クラスターやローカル マシンの Processes および Threads の場合、
NumWorkers
プロパティの値はプロファイルで指定できます。
NumWorkers
プロパティの値より大きい並列プールは作成できません。
PreferredPoolNumWorkers
プロパティ
PreferredPoolNumWorkers
プロパティは、プロファイルで作成されるプールのサイズの "基本設定" を指定します。これは、特定のワーカー数についての要件やリクエストではありません。PreferredPoolNumWorkers
プロパティの既定値は並列環境によって異なります。この値はプロファイルで変更できます。以下は、並列環境とその PreferredPoolNumWorkers
の既定値のリストです。
MATLAB ジョブ スケジューラ、共有クラウド、サードパーティ製スケジューラのクラスター — 32
個人用クラウド クラスター —
Inf
ローカル マシンの Processes —
Inf
(R2023b 以降)R2023a において: 既定値は
NumWorkers
プロパティの値です。ローカル マシンの Threads —
Inf
(R2025a 以降)
プールの作成手法
NumWorkers
プロパティおよび PreferredPoolNumWorkers
プロパティの値と、プールの作成に使用する手法との組み合わせにより、並列プールの実際のサイズが決まります。
プールの作成手法 | 実際のプール サイズ |
---|---|
| MATLAB では、プロファイルの |
関数 | MATLAB は、要求されたとおりのワーカー数でプールを起動しようとします。
|
関数 | MATLAB は、その範囲内の、
|
並列環境の選択の優先順位
プールが実行される並列環境の選択について、その優先順位は以下によって決まります。
parpool
の resources 引数は既定のプロファイル設定をオーバーライドし、プロファイル"MyProfile"
によって特定される並列環境を使用する。p = parpool("MyProfile");
並列環境は既定のプロファイルで指定される。
p = parpool;
参考
delete
| gcp
| parcluster
| parfor
| spmd
| distributed
| parfeval
| parpool