Parallel computing on a cluster
古いコメントを表示
I have a script test.m that includes parfor-loops.
In MATLAB 2014a on my personal computer it runs the parallel job perfectly.
On a huge Linux computer cluster it runs test.m perfectly if I have started MATLAB 2014a graphically through X on the frontend.
However, when submitting test.m to the queue it discards the parallelness and runs everything as in for-loops -- on a single core on the given node.
What I write:
>> submat -q q12 test.m
q12 is the queue name.
Anyone with a clue??
2 件のコメント
Kevin Claytor
2014 年 7 月 7 日
This would probably be a question more suited for your cluster sysadmin. My guess is there's probably something in your queue submission file that is missing. Your cluster probably has a help page / wiki (for example, Duke's is: https://wiki.duke.edu/display/SCSC/DSCR ), I'd start there.
If you still can't find anything, we'll need some more details, for instance, what scheduler are you using? Is 'submat' a script or a command? If it's a script, can you post it?
Mads
2014 年 7 月 8 日
採用された回答
その他の回答 (2 件)
Thomas Ibbotson
2014 年 7 月 8 日
We would need to see the code for 'submat', but my guess is that an independent job is being created rather than a communicating job. If you want to run a script with parfor loops on a cluster you need a communicating 'pool' job. For example you can submit one with 'batch' like this:
myCluster = parcluster('myClusterProfile');
job = batch(myCluster, 'test', 'Pool', myCluster.NumWorkers - 1);
wait(job);
fetchOutputs(job);
The 'Pool' argument instructs batch to create a communicating 'pool' job using the given number of workers to create the pool. You need to have at least 1 spare worker to act as the 'client', which is why I subtracted 1 from the total number of workers that the cluster has.
カテゴリ
ヘルプ センター および File Exchange で Job and Task Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!