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