how to run several tasks in a job in parallel ?
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dingqiao Zhu
el 6 de Mzo. de 2017
Editada: Dingqiao Zhu
el 14 de Mzo. de 2017
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!
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
Más información sobre Parallel Computing Fundamentals en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!