このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ローカル クラスターでのジョブのプログラム
状況によっては、タスクが別々の関数を評価したり、固有の構造をもった複数の引数を有するなどの理由で、ジョブの個々のタスクを定義する必要が生ずる場合があります。このようなジョブをプログラムするため、通常の Parallel Computing Toolbox™ クライアント セッションには以下の例に示すような手順が含まれています。
この例では、いくつかの単純なタスクを含むジョブを作成し実行する際の、基本的な手順を説明します。各タスクは、入力配列に対し関数 sum
を評価します。
クラスターを特定します。
parallel.defaultClusterProfile
を使用してProcesses
クラスターを使用することを指定し、parcluster
を使用して、このクラスターを表すc
オブジェクトを作成します。(詳細については、クラスター オブジェクトの作成を参照)。parallel.defaultClusterProfile('Processes'); c = parcluster();
ジョブを作成します。クラスターにジョブ
j
を作成します(詳細については、ジョブの作成を参照)。j = createJob(c)
ジョブ
j
内に 3 つのタスクを作成します。各タスクでは、入力引数として渡される配列のsum
を評価します(詳細については、タスクの作成を参照)。createTask(j, @sum, 1, {[1 1]}); createTask(j, @sum, 1, {[2 2]}); createTask(j, @sum, 1, {[3 3]});
ジョブを評価するためキューに投入します。これにより、スケジューラは、評価に使用できる MATLAB® ワーカーにジョブのタスクを分散します。ここで、Processes クラスターは MATLAB ワーカー セッションを開始する可能性があります。(詳細については、クラスターへのジョブの投入を参照)。
submit(j);
ジョブが完了するのを待って、ジョブの全タスクの結果を取得します(詳細については、ジョブの結果の取得を参照)。
wait(j) results = fetchOutputs(j) results = [2] [4] [6]
ジョブを削除します。結果を取得したら、ジョブをスケジューラの保存場所から永久的に削除できます。
delete(j)