ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

createTask

ジョブに新しいタスクを作成する

構文

t = createTask(j, F, N, {inputargs})
t = createTask(j, F, N, {C1,...,Cm})
t = createTask(..., 'p1',v1,'p2',v2,...)
t = createTask(...,'Profile', 'ProfileName',...)

引数

t

タスク オブジェクトまたはタスク オブジェクトを成分とするベクトル

j

タスク オブジェクトが作成されるジョブ

F

タスクが評価されるときに呼び出される関数のハンドル、または関数ハンドルからなる配列

N

タスク関数の実行から返される出力引数の数。これは double 値、または double 値からなる配列です。

{inputargs}

関数 F に渡す入力引数を指定する行セル配列。セル配列に含まれる各要素が、個別の入力引数として渡されます。これがセル配列からなるセル配列の場合、タスクは各セル配列ごとに作成されます。

{C1,...,Cm}

m 個の各タスクへの入力引数を定義するセル配列からなるセル配列

p1, p2

オブジェクト作成時に構成されるタスク オブジェクト プロパティ

v1, v2

対応するタスク オブジェクト プロパティの初期値

説明

t = createTask(j, F, N, {inputargs}) はジョブ j に新しいタスク オブジェクトを作成し、追加したタスク オブジェクトへの参照 t を返します。このタスクは関数ハンドルまたは関数名 F で指定される関数を、指定された入力引数 {inputargs} を用いて評価し、N 個の出力引数を返します。

t = createTask(j, F, N, {C1,...,Cm}) は、m 個のセル配列からなるセル配列を使用してジョブ jm 個のタスク オブジェクトを作成し、それら新しいタスク オブジェクトへの参照を成分とするベクトル t を返します。各タスクは、関数ハンドルまたは関数名 F で指定される関数を評価します。セル配列 C1 は最初のタスクに、C2 は 2 番目のタスクにといった形で、セル配列ごとに 1 つのタスクが対応して入力引数が提供されます。各タスクは N 個の出力引数を返します。F がセル配列の場合、F の各要素はベクトル内の各タスクの関数を指定します。これには m 個の要素がなければなりません。N が倍精度型の配列である場合、各要素はベクトル内の各タスクの出力引数の数を指定します。入力 FN および {C1,...,Cm} からなる多次元行列がサポートされます。F にセル配列が使用されるか、N に double の配列が使用される場合、その次元はセル配列からなる入力引数セル配列の次元と一致しなければなりません。出力 t{C1,...,Cm} と同数の成分をもつベクトルとなります。通信ジョブには 1 つのタスクしかないため、ベクトル化されたこのような形式のタスクの作成には適していません。

t = createTask(..., 'p1',v1,'p2',v2,...) は、指定されたプロパティ値をもつタスク オブジェクトを追加します。作成されたオブジェクトの有効なプロパティのリストは、parallel.Task オブジェクトのリファレンス ページを参照してください。プロパティ名は、そのプロパティに適した型の値をもつ文字列の形式でなければなりません。これらのプロパティと値のペアで指定された値によって、プロファイルの値が上書きされます。無効なプロパティ名またはプロパティ値が指定された場合、オブジェクトは作成されません。

t = createTask(...,'Profile', 'ProfileName',...) は、クラスター プロファイル ProfileName で指定されたプロパティ値をもつタスク オブジェクトを作成します。クラスター プロファイルの定義と適用についての詳細は、「クラスターとクラスター プロファイル」を参照してください。

1 つのタスクを含むジョブの作成

ジョブ オブジェクトを作成します。

c = parcluster(); % Use default profile
j = createJob(c);

10 行 10 列の乱数行列を生成するタスク オブジェクトを追加します。

t = createTask(j, @rand, 1, {10,10});

ジョブを実行します。

submit(j);

ジョブの実行完了を待ち、タスク評価の出力を取得します。

wait(j);
taskoutput = fetchOutputs(j);

10 行 10 列の乱数行列を表示します。

disp(taskoutput{1});

3 つのタスクを含むジョブの作成

次の例では、10 行 10 列の乱数行列を生成するタスクを 3 つ含むジョブを作成します。

c = parcluster(); % Use default profile
j = createJob(c);
t = createTask(j, @rand, 1, {{10,10} {10,10} {10,10}});

さまざまなプロパティ値をもつタスクの作成

次の例では、プロファイルの設定に関係なくワーカーのダイアリをキャプチャするタスクを作成します。

c = parcluster(); % Use default profile
j = createJob(c);
t = createTask(j,@rand,1,{10,10},'CaptureDiary',true);
この情報は役に立ちましたか?