In some situations, you might need to define the individual tasks of a job, perhaps because they might evaluate different functions or have uniquely structured arguments. To program a job like this, the typical Parallel Computing Toolbox™ client session includes the steps shown in the following example.
This example illustrates the basic steps in creating and running
a job that contains a few simple tasks. Each task evaluates the sum
function for an input array.
Identify a cluster. Use parallel.defaultClusterProfile
to indicate
that you are using the local cluster; and use parcluster
to create the object c
to
represent this cluster. (For more information, see Create a Cluster Object.)
parallel.defaultClusterProfile('local'); c = parcluster();
Create a job. Create job j
on
the cluster. (For more information, see Create a Job.)
j = createJob(c)
Create three tasks within the job j
.
Each task evaluates the sum
of the array that is
passed as an input argument. (For more information, see Create Tasks.)
createTask(j, @sum, 1, {[1 1]}); createTask(j, @sum, 1, {[2 2]}); createTask(j, @sum, 1, {[3 3]});
Submit the job to the queue for evaluation. The scheduler then distributes the job’s tasks to MATLAB® workers that are available for evaluating. The local cluster might now start MATLAB worker sessions. (For more information, see Submit a Job to the Cluster.)
submit(j);
Wait for the job to complete, then get the results from all the tasks of the job. (For more information, see Fetch the Job Results.)
wait(j) results = fetchOutputs(j) results = [2] [4] [6]
Delete the job. When you have the results, you can permanently remove the job from the scheduler's storage location.
delete(j)