how to run several tasks in a job in parallel ?
13 views (last 30 days)
Show older comments
I have a problem about functions createJob and createTask. The problem is, I created 3 tasks in a job, I expected that they can be run in parallel. But actually they can't.
I have a function jobTest2.m, which returns labindex of worker.
code of jobTest2.m:
function [a] = jobTest2
% fprintf('labindex: %d\n',labindex);
a = labindex;
pause(20);
end
code run in matlab command window:
parallel.defaultClusterProfile('local');
c = parcluster();
j = createJob(c)
createTask(j, @jobTest2, 1, {});
createTask(j, @jobTest2, 1, {});
createTask(j, @jobTest2, 1, {});
submit(j);
wait(j);
results = fetchOutputs(j)
output:
results =
[1]
[1]
[1]
It takes 3 times longer than just running a task. And the labindex shows that it runs in serial. I've read a matlab answers Parallel programming with createJob and followed its proposal. But the problem is still not solved.
Before I run these code, I've delete all jobs on the cluster.
>> delete(c.Jobs)
>> c
c =
Local Cluster
Properties:
Profile: local
Modified: false
Host: localhost
NumWorkers: 4
JobStorageLocation: /home/drinkcor/.matlab/local_cluster_jobs/R2015b
RequiresMathWorksHostedLicensing: false
Associated Jobs:
Number Pending: 0
Number Queued: 0
Number Running: 0
Number Finished: 0
Can anyone help me? Thanks in advance!
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Parallel Computing Fundamentals in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!