Why does "parsim" or "batchsim" with a postSimFcn that accepts a SimulationInput cause an "out of memory error during serialization" error?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 5 de Oct. de 2022
Respondida: MathWorks Support Team
el 5 de Oct. de 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"
Respuesta aceptada
MathWorks Support Team
el 5 de Oct. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Run Multiple Simulations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!