Execute run phase of Simulink model in parallel
1 view (last 30 days)
Show older comments
I want to get the output using the function model(t,x,u,'outputs'). I have a large set of inputs, which I normally pass to the model in a for loop. I have already compiled the model before the loop using model([],[],[],'compile'). When I replaced the for with a parfor loop, it does not see the model as 'compiled'. I get the error: Error, 'model' must be compiled before it can be accessed programmatically.
I don't want to compile the model inside the loop as it would make it very slow and destroy the whole purpose of using parallelization. How can I solve this?
0 Comments
Answers (1)
Edric Ellis
on 3 Oct 2016
You can use parfevalOnAll to run the 'compile' and 'term' phases, like so:
parfevalOnAll(@vdp, 0, [], [], [], 'compile');
parfor t = 1:10
out{t} = vdp(t, [0; 0], [], 'outputs');
end
parfevalOnAll(@vdp, 0, [], [], [], 'term');
3 Comments
Edric Ellis
on 5 Oct 2016
Strange. Did it fail the second time in a MATLAB session, or when you restarted MATLAB?
See Also
Categories
Find more on Model Compatibility in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!