how to run several tasks in a job in parallel ?
조회 수: 14 (최근 30일)
이전 댓글 표시
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!
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Parallel Computing Fundamentals에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!