Recursion Limit inside parfor

1 次查看(过去 30 天)
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

采纳的回答

Edric Ellis
Edric Ellis 2014-3-10
I would try calling
spmd
set(0, 'RecursionLimit', N);
end
as this will ensure it executes on all workers.
  2 个评论
Samuel
Samuel 2014-3-10
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 2014-3-11
Unexpected loss of connection can sometimes occur if the worker machines crash.

请先登录,再进行评论。

更多回答(0 个)

类别

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