Utilizing all cores with SPMD
古いコメントを表示
I have the following function.
It performs two optimizations in parallel. However, to my understanding each optimization is done on only one WORKER.
I want to know if it is possible to run both optimizations in parallel and that each will utilize more than one worker (hopefully both optimizations will utilize all 32 workers):
function [XX,XXX]=spmd_test
c = parcluster;
c.NumWorkers=32;
poolobj=parpool(c);
D=6;
X0=10;
X1=100;
fh=@(X)myfun(X,D);
spmd
switch labindex
case 1
XX = fminsearch(fh,X0,optimset('UseParallel','always','TolFun',1e-8,'TolX',1e-8,'MaxFunEvals',1000000,'MaxIter',1000000));
case 2
XXX = fminsearch(fh,X1,optimset('UseParallel','always','TolFun',1e-8,'TolX',1e-8,'MaxFunEvals',1000000,'MaxIter',1000000));
end
end
XX=XX{1};
XXX=XXX{2};
end
7 件のコメント
Rony Reuveni
2019 年 6 月 30 日
Walter Roberson
2019 年 7 月 16 日
Sorry, I do not have a dual-CPU machine to experiment with.
Rony Reuveni
2019 年 7 月 17 日
Walter Roberson
2019 年 7 月 17 日
No. The behavior you are observing is not present on my single CPU multiple core machine.
Rony Reuveni
2019 年 7 月 17 日
Walter Roberson
2019 年 7 月 17 日
I just noticed that you are using R2016a. If I recall correctly that parameter was added to the cluster profile in a later release. Which release exactly is not coming to mind at the moment.
If I recall correctly you might be able to make the call to change the maximum threads in each worker, perhaps with parfevalOnAll. You would need to take some care not to ask for too many workers.
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および 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!