It seems that resetting recursion limit is ignored inside parfor. I have a recursive program that will exceed the default 500 limit. I can run it without problem using usual for loop. However, if I change it to parfor, I got the error
Caused by:
Maximum recursion limit of 500 reached. Use
set(0,'RecursionLimit',N) to change the limit. Be aware
that exceeding your available stack space can crash MATLAB
and/or your computer.
And no matter where I put the reset limit command set(0,'RecursionLimit',2000) (inside or outside parfor). I still got the same error message

 Réponse acceptée

Edric Ellis
Edric Ellis le 10 Mar 2014

0 votes

I would try calling
spmd
set(0, 'RecursionLimit', N);
end
as this will ensure it executes on all workers.

2 commentaires

Samuel
Samuel le 10 Mar 2014
Thanks. It works!
I came across another problem though. I keep getting random errors like "The client lost connection to Lab..." I am running matlab through an NX server. I wonder if that can be an issue.
Edric Ellis
Edric Ellis le 11 Mar 2014
Unexpected loss of connection can sometimes occur if the worker machines crash.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by