Recursion Limit inside parfor

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

 Accepted Answer

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

2 Comments

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.
Unexpected loss of connection can sometimes occur if the worker machines crash.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 10 Mar 2014

Commented:

on 11 Mar 2014

Community Treasure Hunt

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

Start Hunting!