Out of memory during parfor
80 ビュー (過去 30 日間)
古いコメントを表示
I'm trying to execute code like this
for i = 1:100
parfor 1:10
funResult = function(data);
end
end
but I get some error like
Out of Memory during deserialization
or
Out of Memory during serialization
or some workers aborted during execution. I tried this code with different data (smaller of those that cause this error)
How i can solve this problem? I get the error after 8/10 iteration of first for loop.
8 件のコメント
回答 (1 件)
Walter Roberson
2018 年 7 月 11 日
編集済み: Walter Roberson
2018 年 7 月 11 日
I do not know if it is still the case, but historically there was a limit of 2 gigabytes per array transferred, including on 64 bit versions of MATLAB.
Check your code in case you are using broadcast variables. Sometimes broadcast variables can be rewritten in a way that uses distributed variables instead. For example if two different columns need to be accessed, create two variables, one columns 1:end-1 and the other columns 2:end, and then index each by the parfor index: this will trigger distributed use instead of broadcast use in that situation.
3 件のコメント
Walter Roberson
2020 年 2 月 13 日
Is MyClass a class variable instead of being numeric? If it is, then I wonder if MATLAB is sending the entire class variable to each worker? With classes, it would not necessarily be correct to subsref on the client and send to the worker. repmat() isn't just a "make this many copies" operator, it is also an implicit cat() operator so the result of repmat is not necessarily 10 different objects: it could be one object with internal "size" 10.
I would have to think more about the circumstances under which it is safe to subref on the client and send to the worker; I can definitely think of some cases where that would get you the wrong answer, or at least behavior that isn't all that well defined (e.g., what if the object is keeping usage stats internally?)
参考
カテゴリ
Help Center および File Exchange で Parallel for-Loops (parfor) についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!