Main Content

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

ローカル クラスターでのジョブのプログラム

状況によっては、タスクが別々の関数を評価したり、固有の構造をもった複数の引数を有するなどの理由で、ジョブの個々のタスクを定義する必要が生ずる場合があります。このようなジョブをプログラムするため、通常の Parallel Computing Toolbox™ クライアント セッションには以下の例に示すような手順が含まれています。

この例では、いくつかの単純なタスクを含むジョブを作成し実行する際の、基本的な手順を説明します。各タスクは、入力配列に対し関数 sum を評価します。

  1. クラスターを特定します。parallel.defaultClusterProfile を使用して Processes クラスターを使用することを指定し、parcluster を使用して、このクラスターを表す c オブジェクトを作成します。(詳細については、クラスター オブジェクトの作成を参照)。

    parallel.defaultClusterProfile('Processes');
    c = parcluster();
  2. ジョブを作成します。クラスターにジョブ j を作成します(詳細については、ジョブの作成を参照)。

    j = createJob(c)
  3. ジョブ j 内に 3 つのタスクを作成します。各タスクでは、入力引数として渡される配列の sum を評価します(詳細については、タスクの作成を参照)。

    createTask(j, @sum, 1, {[1 1]});
    createTask(j, @sum, 1, {[2 2]});
    createTask(j, @sum, 1, {[3 3]});
  4. ジョブを評価するためキューに投入します。これにより、スケジューラは、評価に使用できる MATLAB® ワーカーにジョブのタスクを分散します。ここで、Processes クラスターは MATLAB ワーカー セッションを開始する可能性があります。(詳細については、クラスターへのジョブの投入を参照)。

    submit(j);
  5. ジョブが完了するのを待って、ジョブの全タスクの結果を取得します(詳細については、ジョブの結果の取得を参照)。

    wait(j)
    results = fetchOutputs(j)
    results = 
        [2]
        [4]
        [6]
  6. ジョブを削除します。結果を取得したら、ジョブをスケジューラの保存場所から永久的に削除できます。

    delete(j)