|On this page…|
Normally, when simulating or analyzing a model in SimBiology®, you express the model in MATLAB® code. You can accelerate the simulation or analysis by converting the model to compiled C code, which executes faster. Because this compilation step has a small time overhead, acceleration is not recommended for individual simulations of small models. However, for large models, or for repeated simulations during analysis, acceleration can provide a significant speed increase that outweighs the small time overhead.
You can accelerate the following:
Note: For parameter estimations (using sbioparamestim) and population fittings (using sbionlinfit, sbionlmefit, or sbionlmefitsa), acceleration is automatically enabled, if the prerequisites for accelerating simulations and analyses are met.
The functionality to accelerate simulations performs optimally under the following conditions:
Running many simulations with different initial conditions
Running very long simulations (for example, simulations that take longer than a minute to run)
To prepare your models for accelerated simulations, install and set up a compiler:
Install a C compiler (if one is not already installed on your system). For a current list of supported compilers, see Supported and Compatible Compilers atwww.mathworks.com.
Ensure that any user-defined functions in your model can be used for code generation from MATLAB, so they can convert to compiled C. For more information, see Code Generation from MATLAB Code.
Tip On 32-bit Windows® platforms, the LCC compiler is automatically installed. However, for better performance of the acceleration functionality, you may want to install a supported compiler other than LCC, and it will be selected automatically.
On 64-bit Windows platforms, if you have not installed another compiler, SimBiology uses the LCC64 compiler for model accelerations. If you have installed another supported compiler, it will be selected automatically.
Accelerating simulations is a two step process:
Use the sbioaccelerate function to prepare your model for accelerated simulations. Use the same input arguments that you plan to use with sbiosimulate. For example:
sbioaccelerate(modelObj, configsetObj, doseObj);
This step prepares your model for acceleration and may take a minute or longer to complete for very large models.
Note: You need to run sbioaccelerate again, before running simulations, if you make any modifications to this model, other than:
Use the sbiosimulate function with the same input arguments that you used with sbioaccelerate. For example:
simdataObj = sbiosimulate(modelObj, configsetObj, doseObj);
If you have user-defined functions, do not use persistent variables in these functions. Persistent variables are not compatible with the functionality used for accelerating simulations.
If you specify user-defined functions in SimBiology expressions, you might see the following warning if your code is not compatible with code generation from MATLAB:
The SimBiology Expression and any user-defined functions could not be accelerated. Please check that these expressions and any user-defined functions are supported for code generation as described in the Code Generation from MATLAB documentation.
where Expression is any of the following:
Reaction rate/rule expression
Repeated assignment rule expression
Event trigger expression
Event function expression
For more information, see Code Generation.