speeding up simulation - matlab · learn more about additional speedup tips use of simulink...
TRANSCRIPT
![Page 1: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/1.jpg)
1© 2015 The MathWorks, Inc.
Speeding Up Simulation
Sonia Bridge
![Page 2: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/2.jpg)
2
Why Speed up Simulation?
– “I have a big model and need to run long simulations as quickly as
possible”
– “I need to perform design optimization as quickly as possible, which
requires running many simulations as my design parameters change”
– “I need to perform thousands of Monte Carlo simulations as quickly
as possible”
– “My model takes forever to update”
![Page 3: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/3.jpg)
3
Agenda
▪ Acceleration mode
▪ Performance Advisor
▪ Fast Restart, parsim and batchsim
▪ Incremental workflows with Model Referencing
![Page 4: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/4.jpg)
4
Let’s look at an example model to see how Acceleration can
speed up simulations
![Page 5: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/5.jpg)
5
Normal Mode
![Page 6: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/6.jpg)
6
Agenda
▪ Acceleration mode
▪ Performance Advisor
▪ Fast Restart, parsim and batchsim
▪ Incremental workflows using Model Referencing
![Page 7: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/7.jpg)
7
Accelerator Mode
![Page 8: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/8.jpg)
8
Accelerator Mode
Why would Simulink speed up?
▪ JIT compiles (or generates C-code for) portions of the model
▪ Running compiled code has less overhead
What’s the tradeoff?
▪ There is an overhead for generating the acceleration target
▪ Some runtime diagnostics are disabled, e.g., inf/nan checking
▪ May not speed up all models
R2006aIntroduced before
![Page 9: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/9.jpg)
9
Rapid Accelerator Mode
![Page 10: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/10.jpg)
10
Use Rapid Accelerator Mode
Why would Simulink speed up?
▪ The Rapid Accelerator mode creates and runs a
standalone executable from the model, which has little
overhead.
▪ If possible, this executable runs on a separate core than the MATLAB session
What’s the tradeoff?
▪ It takes time to build the Rapid Acceleration target
▪ Debugging capabilities are disabled, except for scopes and viewers
▪ Entire model needs to support code generation
![Page 11: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/11.jpg)
11
Agenda
▪ Acceleration mode
▪ Performance Advisor
▪ Fast Restart, parsim and batchsim
▪ Incremental workflows using Model Referencing
![Page 12: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/12.jpg)
12
Performance Advisor Example
![Page 13: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/13.jpg)
13
Let’s run the Performance Advisor on the model
![Page 14: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/14.jpg)
14
Performance Advisor – Results
![Page 15: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/15.jpg)
15
Performance Advisor
Why would Simulink speed up?
▪ Checks your model for speedup options
▪ Validates its own advice, only applies changes that:
▪ Give the same answer
▪ Improve speed
What’s the tradeoff?
▪ Takes time to run the analysis
▪ Not comprehensive
▪ Trading off fidelity for speed is not part of performance advisor
![Page 16: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/16.jpg)
16
Agenda
▪ Acceleration mode
▪ Performance Advisor
▪ Fast Restart, parsim and batchsim
▪ Incremental workflows using Model Referencing
![Page 17: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/17.jpg)
17
Fast Restart Example
![Page 18: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/18.jpg)
18
Fast Restart
Why would Simulink speed up?
▪ Avoids recompilation between simulation runs
▪ Works with Accelerator mode
What’s the tradeoff?
▪ Cannot edit the model when in fast restart mode
![Page 19: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/19.jpg)
19
Running Multiple Simulations in Parallel
▪ Use SimulationInput object to
specify changes to a model for
simulations
▪ Use parsim to run parallel
simulations
▪ Use Simulation Manager to
monitor and inspect results from
multiple simulations
![Page 20: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/20.jpg)
20
Benefits of using parsim
out = parsim(in);
▪ parsim “mistake-proofs” your workflow
– Handle model dependencies
– Automatic management of build folders
– Parallel builds of model references
– Transfer base workspace variables to workers
– Error diagnostics
– Progress display
– And more …
That’s it!One command to run them all!
parsim manages
the details of
running parallel
simulations
… so you can focus
on the design tasks!
![Page 21: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/21.jpg)
21
Code example for parameter sweep using parsim
![Page 22: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/22.jpg)
22
Simulation Manager Example
![Page 23: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/23.jpg)
23
parsim
Why would Simulink speed up?
▪ Runs simulations in parallel using MATLAB
Parallel Computing
▪ Parallelization details are automatically handled
What’s the tradeoff?
▪ Overhead of setting up parallel pool
▪ Overhead of starting simulations on the workers
▪ Needs scripting in MATLAB
for i = 10000:-1:1
in(i) = Simulink.SimulationInput('my_model');
in(i) = in(i).setVariable('my_var', i);
end
out = parsim(in);
Desktop Multicore Cluster
![Page 24: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/24.jpg)
24
Batch Workflows
▪ Submit jobs and retrieve results later
Submit job
![Page 25: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/25.jpg)
25
Batch Workflows
▪ Submit jobs and retrieve results later
Retrieve results
![Page 26: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/26.jpg)
26
batchsim
MATLAB®
client
MATLAB®
workers
parsim
batchsim automates batch workflows
▪ Automates set up for running
simulations in the background
▪ Extends parsim functionality to
support batch options
job = batchsim(in);
![Page 27: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/27.jpg)
27
parsim vs. batchsim
parsim batchsim
Blocking Non-blocking
Possible to obtain intermediate results
on-the-fly
Simulations are offloaded; retrieve
complete results later
Interactive Not interactive
![Page 28: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/28.jpg)
28
Simulation code for batchsim
![Page 29: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/29.jpg)
29
Post-processing code for batchsim
![Page 30: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/30.jpg)
30
Agenda
▪ Acceleration mode
▪ Performance Advisor
▪ Fast Restart, parsim and batchsim
▪ Incremental workflows using Model Referencing
![Page 31: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/31.jpg)
31
What is an incremental workflow?
Only perform an action when necessary;
reuse and cache as much as possible
“My model takes forever to update”
![Page 32: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/32.jpg)
32
Model Reference: Performance
0
10
20
30
40
50
60
70
First Simulation Subsequent Simulations
Simulation Times
Subsystems Model Reference
Faster ☺
First time cost
▪ Documentation: Design Partitioning
![Page 33: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/33.jpg)
33
Simulink Cache
▪ Sharing build artifacts avoids
rebuild
.slxc.slxc.slxc.slxc
.slxc
.slxc
.slxc
![Page 34: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/34.jpg)
34
Parallel Builds for Model Reference Hierarchies
▪ Speed up updates for models with large model reference hierarchies:
▪ Enable parallel builds using Configuration Parameters
▪ Performance Advisor checks for parallel build opportunities
▪ Enable the If any changes in known dependencies detected build option
![Page 35: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/35.jpg)
35
Model Reference Parallel Build
User Example
▪ Approximately 400 referenced models
4 cores gives ~2.8 speedup
Does adding more cores yield more speedup?
1212.8
3421.8
![Page 36: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/36.jpg)
36
Performance Advisor: Check model reference parallel build
▪ Performance Advisor estimates the
speedup with more cores
▪ The estimated speed up with 4
cores is ~2.6
– Close to the measured value ~2.8
▪ Given ~120 cores, the estimated
speed up is ~42
=> Build time goes from ~3400s to ~80s
![Page 37: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/37.jpg)
37
Model Reference Parallel Build
Why would Simulink speed up?
▪ Model reference targets are built in parallel
▪ Use Performance Advisor to check if your large
models can benefit from this option
What’s the tradeoff?
▪ Speedup is model dependent
▪ Requires MATLAB Parallel Computing
![Page 38: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/38.jpg)
38
Learn more about additional speedup tips
▪ Use of Simulink Profiler and sldiagnostics to identify bottlenecks
▪ Accelerate the initialization phase
▪ Reduce model interactivity
▪ Reduce model complexity with alternatives such as look-up tables and
linear models
▪ Choose and configure a Solver
▪ Save the Simulation State
▪ Documentation: Modeling Techniques that Improve Performance
![Page 39: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/39.jpg)
39
Key Takeaways
▪ Recommended steps to easily speed up your Simulink models
▪ How parallel computing tools decrease the time to run multiple simulations
![Page 40: Speeding Up Simulation - Matlab · Learn more about additional speedup tips Use of Simulink Profiler and sldiagnosticsto identify bottlenecks Accelerate the initialization phase Reduce](https://reader033.vdocument.in/reader033/viewer/2022052010/601fc220626a885c1317d5e3/html5/thumbnails/40.jpg)
40
Q & A