このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
通信ジョブのプログラム
通信ジョブとは、ワーカーがタスクの評価中に他のワーカーと通信できるジョブのことです。通信ジョブは、通常は異なるデータを用いて複数のワーカーで同時に実行される、単一のタスクのみで構成されます。より具体的には、タスクが各ワーカーで複製されるため、各ワーカーはタスクを別々のデータセット、または大規模なデータセットの特定セグメントに対して実行できます。ワーカーはタスクの実行時に互いに通信できます。タスクが実行する関数は、いくつのワーカーがジョブを実行しているか、ジョブを実行しているワーカーのうち自身がどのワーカーであるか、ワーカー相互の通信を可能にする機能など、ワーカーで認識される情報を利用できます。
基本的には、独立ジョブのプログラムと同様の方法で通信ジョブを作成し、実行します。
クラスター プロファイルを定義し、選択します。
クラスターを検索します。
通信ジョブを作成します。
タスクを作成します。
ジョブを実行するため投入します。タスクを評価するために各ワーカーが何を実行するかについての詳細については、ジョブ キューへのジョブの投入を参照してください。
結果を取得します。
次の表に、独立ジョブと通信ジョブの相違点をまとめます。
独立ジョブ | 通信ジョブ |
---|---|
MATLAB® ワーカーはタスクを実行しますが、ワーカー相互間の通信は行いません。 | MATLAB ワーカーはタスクの実行中に相互に通信できます。 |
ジョブに任意の数のタスクを定義します。 | ジョブに 1 つのタスクのみを定義します。このタスクの複製が通信ジョブを実行するすべてのワーカーで実行されます。 |
タスクを同時に実行する必要はありません。ワーカーが使用可能になるとタスクがワーカーに分散されるため、ワーカーはジョブの複数のタスクを実行できます。 | タスクが同時に実行されるため、実行時に使用可能な数のワーカーのみでジョブを実行できます。必要な数のワーカーが使用可能になるまで、ジョブの起動が遅延する場合があります。 |
通信ジョブとそのタスクの詳細の一部は、使用するスケジューラのタイプに応じて異なる場合があります。以下の節では、さまざまなスケジューラとプログラミング上の考慮事項について説明します。