Create new task in job
t = createTask(j, F, N, {inputargs})
t = createTask(j, F, N, {C1,...,Cm})
t = createTask(..., 'p1
',v1,'p2
',v2,...)
t = createTask(...,'Profile',
'ProfileName',...)
| Task object or vector of task objects. |
| The job that the task object is created in. |
| A handle to the function that is called when the task is evaluated, or an array of function handles. |
| The number of output arguments to be returned from execution of the task function. This is a double or array of doubles. |
| A row cell array specifying the input arguments to be
passed to the function |
| Cell array of cell arrays defining input arguments to
each of |
| Task object properties configured at object creation. |
| Initial values for corresponding task object properties. |
t = createTask(j, F, N, {inputargs})
creates
a new task object in job j
, and returns a reference, t
,
to the added task object. This task evaluates the function specified
by a function handle or function name F
, with the
given input arguments {inputargs}
, returning N
output
arguments.
t = createTask(j, F, N, {C1,...,Cm})
uses
a cell array of m
cell arrays to create m
task
objects in job j
, and returns a vector, t
,
of references to the new task objects. Each task evaluates the function
specified by a function handle or function name F
.
The cell array C1
provides the input arguments
to the first task, C2
to the second task, and so
on, so that there is one task per cell array. Each task returns N
output
arguments. If F
is a cell array, each element of F
specifies
a function for each task in the vector; it must have m
elements.
If N
is an array of doubles, each element specifies
the number of output arguments for each task in the vector. Multidimensional
matrices of inputs F
, N
and {C1,...,Cm}
are
supported; if a cell array is used for F
, or a
double array for N
, its dimensions must match those
of the input arguments cell array of cell arrays. The output t
will
be a vector with the same number of elements as {C1,...,Cm}
.
Note that because a communicating job has only one task, this form
of vectorized task creation is not appropriate for such jobs.
t = createTask(..., '
adds
a task object with the specified property values. For a listing of
the valid properties of the created object, see the p1
',v1,'p2
',v2,...)parallel.Task
object reference page.
The property name must be a character vector, with the value being
the appropriate type for that property. The values specified in these
property-value pairs override the values in the profile. If an invalid
property name or property value is specified, the object will not
be created.
t = createTask(...,'Profile',
'ProfileName',...)
creates a task object with the property
values specified in the cluster profile ProfileName
.
For details about defining and applying cluster profiles, see Discover Clusters and Use Cluster Profiles.
Create a job object.
c = parcluster(); % Use default profile
j = createJob(c);
Add a task object which generates a 10-by-10 random matrix.
t = createTask(j, @rand, 1, {10,10});
Run the job.
submit(j);
Wait for the job to finish running, and get the output from the task evaluation.
wait(j); taskoutput = fetchOutputs(j);
Show the 10-by-10 random matrix.
disp(taskoutput{1});
This example creates a job with three tasks, each of which generates a 10-by-10 random matrix.
c = parcluster(); % Use default profile
j = createJob(c);
t = createTask(j, @rand, 1, {{10,10} {10,10} {10,10}});
This example creates a task that captures the worker diary, regardless of the setting in the profile.
c = parcluster(); % Use default profile j = createJob(c); t = createTask(j,@rand,1,{10,10},'CaptureDiary',true);