User`s guide

8 Program Communicating Jobs
8-2
Program Communicating Jobs
Communicating jobs are those in which the workers can communicate with each other
during the evaluation of their tasks. A communicating job consists of only a single
task that runs simultaneously on several workers, usually with different data. More
specifically, the task is duplicated on each worker, so each worker can perform the task
on a different set of data, or on a particular segment of a large data set. The workers can
communicate with each other as each executes its task. The function that the task runs
can take advantage of a worker’s awareness of how many workers are running the job,
which worker this is among those running the job, and the features that allow workers to
communicate with each other.
In principle, you create and run communicating jobs similarly to the way you “Program
Independent Jobs” on page 7-2:
1
Define and select a cluster profile.
2
Find a cluster.
3
Create a communicating job.
4
Create a task.
5
Submit the job for running. For details about what each worker performs for
evaluating a task, see “Submit a Job to the Job Queue” on page 7-12.
6
Retrieve the results.
The differences between independent jobs and communicating jobs are summarized in
the following table.
Independent Job Communicating Job
MATLAB workers perform the tasks but do
not communicate with each other.
MATLAB workers can communicate with
each other during the running of their
tasks.
You define any number of tasks in a job. You define only one task in a job.
Duplicates of that task run on all workers
running the communicating job.
Tasks need not run simultaneously. Tasks
are distributed to workers as the workers
become available, so a worker can perform
several of the tasks in a job.
Tasks run simultaneously, so you can run
the job only on as many workers as are
available at run time. The start of the
job might be delayed until the required
number of workers is available.