Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

通信ジョブのプログラム

通信ジョブとは、ワーカーがタスクの評価中に他のワーカーと通信できるジョブのことです。通信ジョブは、通常は異なるデータを用いて複数のワーカーで同時に実行される、単一のタスクのみで構成されます。より具体的には、タスクが各ワーカーで複製されるため、各ワーカーはタスクを別々のデータセット、または大規模なデータセットの特定セグメントに対して実行できます。ワーカーはタスクの実行時に互いに通信できます。タスクが実行する関数は、いくつのワーカーがジョブを実行しているか、ジョブを実行しているワーカーのうち自身がどのワーカーであるか、ワーカー相互の通信を可能にする機能など、ワーカーで認識される情報を利用できます。

基本的には、独立ジョブのプログラムと同様の方法で通信ジョブを作成し、実行します。

  1. クラスター プロファイルを定義し、選択します。

  2. クラスターを検索します。

  3. 通信ジョブを作成します。

  4. タスクを作成します。

  5. ジョブを実行するため投入します。タスクを評価するために各ワーカーが何を実行するかについての詳細については、ジョブ キューへのジョブの投入を参照してください。

  6. 結果を取得します。

次の表に、独立ジョブと通信ジョブの相違点をまとめます。

独立ジョブ

通信ジョブ

MATLAB® ワーカーはタスクを実行しますが、ワーカー相互間の通信は行いません。

MATLAB ワーカーはタスクの実行中に相互に通信できます。

ジョブに任意の数のタスクを定義します。

ジョブに 1 つのタスクのみを定義します。このタスクの複製が通信ジョブを実行するすべてのワーカーで実行されます。

タスクを同時に実行する必要はありません。ワーカーが使用可能になるとタスクがワーカーに分散されるため、ワーカーはジョブの複数のタスクを実行できます。

タスクが同時に実行されるため、実行時に使用可能な数のワーカーのみでジョブを実行できます。必要な数のワーカーが使用可能になるまで、ジョブの起動が遅延する場合があります。

通信ジョブとそのタスクの詳細の一部は、使用するスケジューラのタイプに応じて異なる場合があります。以下の節では、さまざまなスケジューラとプログラミング上の考慮事項について説明します。