running distributed jobs
4 次查看(过去 30 天)
显示 更早的评论
I'm trying to prepare and run a distributed job (not parallel). Using
%sched = findResource('scheduler','type','jobmanager')
%job1 = createJob(sched)
At the last step when I try to create task, using my scripts:
%createTask(job1, scriptFileName);
I get this error:
Attempt to execute SCRIPT high_dimensional_warping_job_1st as a function
I was wondering how I could submit my scripts as distributed jobs in MATLAB's parallel computing toolbox. It seems that running my scripts as batch jobs does not run as distributed job, but parallel job. I tried to run my script as a batchscript in matlabpool but it even took longer than running the script on a single machine (when comparing it to cluster of machines), that's why I have tried to construct different tasks in a job using my script files and then submit the job in a distributed way.
Any input on this is greatly appreciated.
0 个评论
采纳的回答
Edric Ellis
2012-3-27
You need to give the name of the script to the createTask function, like so:
sched = findResource(...);
job = createJob(sched);
task = createTask(job, 'scriptFileName');
submit(job);
This is basically equivalent to running
job = batch('scriptFileName', sched);
A single isolated task might run more slowly on a cluster because MATLAB workers run in "single computational thread" mode. You might be better trying to run lots of scripts simultaneously.
2 个评论
Edric Ellis
2012-3-28
Your second and subsequent scripts should be able to start executing straight away if you have sufficient workers available. You should only execute "wait(job)" once you've submitted everything.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!