Choosing a Simulation Mode
Simulation Mode Tradeoffs
In general, you must trade off simulation speed against flexibility when choosing either accelerator mode or rapid accelerator mode instead of normal mode.
Normal mode offers the greatest flexibility for making model adjustments and displaying results, but it runs the slowest.
Accelerator mode lies between normal and rapid accelerator modes in performance and in interaction with your model. Accelerator mode does not support most runtime diagnostics.
Rapid accelerator mode runs the fastest, but this mode does not support the debugging utilities or the Simulink® Profiler, and works only with those models for which C code or MEX file is available for all of the blocks in the model.
Note
An exception to this rule occurs when you run multiple simulations, each of which executes in less than one second in normal mode. For example:
for i=1:100 sim(model); % executes in less than one second in Normal mode end
Tip
To gain additional flexibility, consider using model referencing to componentize your model. If the top model uses normal mode, then you can simulate a referenced model in a different simulation mode than you use for other portions of a model. During the model development process, you can choose different simulation modes for different portions of a model. For details, see Choose Simulation Modes for Model Hierarchies.
Comparing Modes
The following table compares the characteristics of normal mode, accelerator mode, and rapid accelerator mode.
If you want to... | Then use this mode... | ||
---|---|---|---|
Normal | Accelerator | Rapid Accelerator | |
Performance | |||
Run your model in a separate address space | |||
Efficiently run batch and Monte Carlo simulations | |||
Model Adjustment | |||
Change model parameters such as solver, stop time without rebuilding | |||
Change block tunable parameters such as gain | |||
For more information on configuration set parameters which can be modified without requiring rebuild, see Code Regeneration in Accelerated Models | |||
Model Requirement | |||
Accelerate your model even if C code or MEX file are not used for all blocks | |||
Support Interpreted MATLAB Function blocks | |||
Support Non-Inlined MATLAB® language or Fortran S-Functions | |||
Permit algebraic loops in your models | |||
Use debugging options or the Simulink Profiler | |||
Have your model include C++ code | |||
Data Display | |||
Use scopes and signal viewers | See Behavior of Scopes and Viewers with Rapid Accelerator Mode | ||
Use scopes and signal viewers when simulating your model programmatically |
Note
Scopes and viewers do not update if you run your model programmatically in rapid accelerator mode.
Decision Tree
Use this decision tree to select between accelerator mode and rapid accelerator mode.
See Comparing Performance to understand how effective acceleration will be in improving the performance of your model.