Am I inside a parfor?

조회 수: 3 (최근 30일)
Joan Puig
Joan Puig 2011년 2월 24일
Hi,
There are certain functions I don't want to execute in parallel, and I would like to throw an error if they are. Is there anyway to know if I am inside a parfor?
Thanks Joan

채택된 답변

Sarah Wait Zaranek
Sarah Wait Zaranek 2011년 2월 25일
You can check to see if you are currently running on a worker (aka running in parallel) by using the following commands.
parfor ii = 1:2
job = getCurrentJob;
if isempty(job)
display('not running in parallel')
else
display('running in parallel')
end
end
If you are not running in parallel, the function should return an empty. If you are running in parallel, it will return a job object corresponding to the job you are inside.

추가 답변 (1개)

Joan Puig
Joan Puig 2011년 2월 25일
With your code I was able to write this function which works great:
function ip = inParallel()
job = getCurrentJob();
ip = ~isempty(job);
end
Thanks!

카테고리

Help CenterFile Exchange에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by