並列プールでのコードの実行

並列プールとは

並列プールは、計算クラスターまたはデスクトップ上にある一連の MATLAB® ワーカーです。既定では、parfor などの並列言語機能で必要とされる場合に、並列プールは自動的に起動します。並列設定で、既定のプール サイズとクラスターを指定できます。[並列] メニューの [並列設定] を選択すると、設定パネルにプール サイズとクラスターが表示されます。[並列] メニューでプール サイズとクラスターを変更できます。あるいは、MATLAB コマンド ラインで parclusterparpool をそれぞれ使用して、クラスターとプール サイズを選択できます。詳細については、図を参照してください。

並列プールのワーカーは対話的に使用することが可能で、ジョブの有効期間中に相互に通信を行います。parpool ジョブはジョブ モニターで表示できます。これらのプール ワーカーを対話型で使用するために予約している間は他のユーザーは使用できません。MATLAB クライアント セッションから使用できる並列プールは一度に 1 つのみです。MATLAB では、現在の並列プールは parallel.Pool オブジェクトで表されます。

並列プールの自動起動と自動停止

既定では、特定の並列言語機能が必要な場合、並列プールは自動的に起動します。以下を含む多くの関数が自動的に並列プールを開始できます。

並列設定で、プールが実行されるクラスターやプールでの推奨ワーカー数を指定します。設定にアクセスするには、[ホーム] タブの [環境] セクションで、[並列][並列設定] をクリックします。

プールを起動および停止する代替方法

並列設定で、プールを自動的に開く、あるいは閉じるオプションをオフにすることができます。プールを自動的に開く選択をしていない場合、以下の方法でプールをコントロールできます。

MATLAB デスクトップからの並列プールの制御

MATLAB デスクトップの左下隅にある並列ステータス インジケーターを使用して、並列プールを手動で起動できます。

インジケーター アイコンをクリックし、[並列プールの起動] を選択します。プール サイズとクラスターは、並列設定と既定のクラスターで指定します。既定のクラスターは、[並列][既定のクラスター] メニューにチェック マークで示されます。

プール実行中のメニュー オプションは異なっています。次のことが可能です。

  • ワーカー数とクラスター名を表示する

  • 自動シャットダウンまでの時間を変更する

  • 並列プールをシャットダウンする

プールを停止するには、[並列プールのシャットダウン] を選択することもできます。

プログラミング インターフェイス

並列プールの起動-  既定の設定を使用するか、または代替方法を指定することで、プログラムにより並列プールの起動と停止を実行できます。

設定に応じた並列プールを起動するには、以下を実行します。

parpool

特定のサイズのプールを起動するには、以下を実行します。

parpool(4)

既定以外のクラスターを使用してプールの実行場所を指定するには、以下を実行します。

parpool('MyCluster',4)

並列プールのシャットダウン-  プールをシャットダウンするときに、現在の並列プールを取得してそのオブジェクトを使用するには、以下を実行します。

p = gcp;
delete(p)

並列プールが実行中でないことの確認-  引数を指定せずにコマンド gcp を発行すると、誤ってプールを開くことがあります。この問題を回避するには、以下を実行します。

delete(gcp('nocreate'))

プール サイズとクラスターの選択

プール サイズを指定するには、いくつかの方法があります。複数の要因によって、プール サイズが制限される可能性があります。並列プールの実際のサイズは、以下の組み合わせによって決まります。

  1. ライセンスまたはクラスター サイズ

    プールのワーカー数の上限は、クラスターのワーカー数によって制限されます。この制限は、使用可能な MATLAB Parallel Server™ のライセンス数によって決まることがあります。MATLAB ジョブ スケジューラの場合、この制限はクラスターで実行中のワーカー数によって決まることがあります。クライアント マシン上で実行されるローカル クラスターでは、Parallel Computing Toolbox™ 用のライセンス以外は不要です。ワーカー数の制限は、既知のデスクトップ ハードウェアの範囲でサポートされるよう、十分高い値となっています。

  2. クラスター プロファイル指定のワーカー数 (NumWorkers)

    クラスター オブジェクトでは、ワーカーの数にハード制限を設けることができます。この制限は、クラスター プロファイルで指定します。コマンド ラインまたは設定でワーカーの数を増やすように要求しても、適用されるプロファイルで設定された制限を超えることはできません。制限を超える数を指定しようとするとエラーが発生します。

  3. コマンド ライン引数

    プール サイズをコマンド ラインで指定する場合は、設定がオーバーライドされます。この値は、適用されるクラスター プロファイルの範囲内でなければなりません。

  4. 並列設定

    コマンド ラインでプール サイズを指定しない場合、MATLAB は並列設定により決定されるサイズのプールを起動しようと試みます。この値は "設定" であり、特定のワーカー数についての要件やリクエストではありません。したがって、設定で呼び出される数と同じワーカー数でプールを起動できない場合は、プールがエラーなしで縮小されます。作成されるプールのサイズが制限されないように、[推奨される並列プールでのワーカー数] の値を大きい数に設定できます。正確なワーカー数が必要な場合は、コマンド ラインで指定してください。

プールが実行されるクラスターの選択について、その優先順位は以下によって決まります。

  1. コマンド ラインのクラスター オブジェクト引数は既定のプロファイル設定をオーバーライドし、プロファイル 'MyProfile' によって特定されるクラスターを使用する。

    c = parcluster('MyProfile');
    p = parpool(c);
  2. クラスターは既定のプロファイルで指定される。

    p = parpool;

参考

| | | | | | |

関連する例

詳細