Why does "parsim" or "batchsim" with a postSimFcn that accepts a SimulationInput cause an "out of memory error during serialization" error?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 5 Okt. 2022
Beantwortet: MathWorks Support Team
am 5 Okt. 2022
I am attempting to run simulations using "parsim" or "batchsim". I notice that the simulations take up an extraordinarily large amount of memory, significantly more than what would be expected from their input and output data. Then I receive the error:
"out of memory during serialization"
Akzeptierte Antwort
MathWorks Support Team
am 5 Okt. 2022
The issue is triggered by passing a SimulationInput object as an argument to a postSimFcn:
>>SimIn(idx) = SimIn(idx).setPostSimFcn(@(x) postsim(x, SimIn(idx)));
Using the SimulationInput object as an input argument of the anonymous function in this callback can cause a circular reference which led to runaway memory usage during the serialization of parsim and batchsim initialization.
A workaround is to use a temporary variable for the SimIn element instead of passing the simulation input object itself.
>>tmpSimIn = SimIn(idx);
>>SimIn(idx) = SimIn(idx).setPostSimFcn(@(x) postsim(x, tmpSimIn));
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Run Multiple Simulations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!