When I insert breakpoints inside a parfor loop it is never stopped. In this case how can I debug inside a parfor loop?

2 commentaires

KALYAN ACHARJYA
KALYAN ACHARJYA le 26 Oct 2017
Please show your code, have you use break statement within parfor loop with a condition?
Check it out, it may be helpful
https://in.mathworks.com/matlabcentral/answers/4942-break-in-a-parfor-loop-processing-time-example-to-compare-it-with-a-for-loop

Connectez-vous pour commenter.

 Réponse acceptée

Edric Ellis
Edric Ellis le 30 Oct 2017
You can debug code called from the body of a parfor loop if no parallel pool is open, but unfortunately you cannot debug the body of a parfor loop itself. You can force the parfor loop to run in the desktop MATLAB by appending the optional "number of workers" argument, like so:
parfor (idx = 1:10, 0)
out(idx) = myFcn(idx);
end
With that code, you can set breakpoints inside myFcn.

Plus de réponses (2)

NAGAVARSHINI MAYAKKANNAN
NAGAVARSHINI MAYAKKANNAN le 21 Juin 2020

1 vote

Change the parfor to for debug it and then change for to parfor
zhehao.nkd
zhehao.nkd le 5 Août 2022
For those who are seeking for the solution, there is another possible option by using parfor and try-catch:
parfor k = 1: len
try
% your code
catch ME
% record the iteration index,k
end
end
% Then youy know which iteration caused a bug alert

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by