You can use Simulink^{®}
Design Optimization™ software with Parallel
Computing Toolbox™ software
to speed up parameter estimation of Simulink models. Using parallel
computing may reduce the estimation time in the following cases:

The model contains a large number parameters to estimate, and the estimation method is specified as either

`Nonlinear least squares`

or`Gradient descent`

.The

`Pattern search`

method is selected as the estimation method.The model is complex and takes a long time to simulate.

When you use parallel computing, the software distributes independent
simulations to run them in parallel on multiple MATLAB^{®} sessions,
also known as *workers*. The time required to simulate
the model dominates the total estimation time. Therefore, distributing
the simulations significantly reduces the estimation time.

For information on how the software distributes the simulations and the expected speedup, see How Parallel Computing Speeds Up Estimation.

For information on configuring your system and using parallel computing, see Use Parallel Computing for Parameter Estimation.

You can enable parallel computing with the ```
Nonlinear
least squares
```

, `Gradient descent`

and ```
Pattern
search
```

estimation methods. The following sections describes
the potential speedup using parallel computing for estimation:

When you select `Gradient descent`

as the estimation
method, the model is simulated during the following computations:

Objective value computation — One simulation per iteration

Objective gradient computations — Two simulations for every tuned parameter per iteration

Line search computations — Multiple simulations per iteration

The total time, $$Ttotal$$, taken per iteration to perform these simulations is given by the following equation:

$$Ttotal=T+(Np\times 2\times T)+(Nls\times T)=T\times (1+(2\times Np)+Nls)$$

When you use parallel computing, the software distributes the simulations required for objective gradient computations. The simulation time taken per iteration when the gradient computations are performed in parallel, $$TtotalP$$, is approximately given by the following equation:

$$TtotalP=T+(ceil\left(\frac{Np}{Nw}\right)\times 2\times T)+(Nls\times T)=T\times (1+2\times ceil\left(\frac{Np}{Nw}\right)+Nls)$$

The equation does not include the time overheads associated with configuring the system for parallel computing and loading Simulink software on the remote MATLAB workers.

The expected reduction of the total estimation time is given by the following equation:

$$\frac{TtotalP}{Ttotal}=\frac{1+2\times ceil\left(\frac{Np}{Nw}\right)+Nls}{1+(2\times Np)+Nls}$$

For example, for a model with `N`

, _{p}=3`N`

,
and _{w}=4`N`

, the expected
reduction of the total estimation time equals $$\frac{1+2\times ceil\left(\frac{3}{4}\right)+3}{1+(2\times 3)+3}=0.6$$._{ls}=3

The `Pattern search`

method uses search and
poll sets to create and compute a set of candidate solutions at each
estimation iteration.

The total time, $$Ttotal$$, taken per iteration to perform these simulations, is given by the following equation:

$$Ttotal=(T\times Np\times Nss)+(T\times Np\times Nps)=T\times Np\times (Nss+Nps)$$

When you use parallel computing, Simulink
Design Optimization software
distributes the simulations required for the search and poll set computations,
which are evaluated in separate `parfor`

loops.
The simulation time taken per iteration when the search and poll sets
are computed in parallel, $$TtotalP$$,
is given by the following equation:

$$\begin{array}{c}TtotalP=(T\times ceil(Np\times \frac{Nss}{Nw}))+(T\times ceil(Np\times \frac{Nps}{Nw}))\\ =T\times (ceil(Np\times \frac{Nss}{Nw})+ceil(Np\times \frac{Nps}{Nw}))\end{array}$$

The equation does not include the time overheads associated with configuring the system for parallel computing and loading Simulink software on the remote MATLAB workers.

The expected speed up for the total estimation time is given by the following equation:

$$\frac{TtotalP}{Ttotal}=\frac{ceil(Np\times \frac{Nss}{Nw})+ceil(Np\times \frac{Nps}{Nw})}{Np\times (Nss+Nps)}$$

For example, for a model with `N`

, _{p}=3`N`

, _{w}=4`N`

,
and _{ss}=15`N`

, the expected
speedup equals $$\frac{ceil(3\times \frac{15}{4})+ceil(3\times \frac{2}{4})}{3\times (15+2)}=0.27$$._{ps}=2

Using the `Pattern search`

method with parallel
computing may not speed up the estimation time. When you do not use
parallel computing, the method stops searching for a candidate solution
at each iteration as soon as it finds a solution better than the current
solution. When you use parallel computing, the candidate solution
search is more comprehensive. Although the number of iterations may
be larger, the estimation without using parallel computing may be
faster.

Was this topic helpful?