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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeParallel for-Loops (parfor) についてさらに検索

質問済み:

2014 年 3 月 10 日

コメント済み:

2014 年 3 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by