Showing results for 
Search instead for 
Do you mean 
Solved! Go to solution

Speedup a run


I am running  a system with a winch, hydromotor, pump, directional valve and control valve.

Directional and control valves are supercomponents.

The system is running well since yesterday but it is very low.

I assume the calculation is running on only one core, and I have seven othe cores which are free.

Is there a way to speedup the calculation?

I saw master/slave topic, but no idea where are those related components (I understand we could divide the system into subdomains, and each subdomain could be treated from a core)

Thank you


Accepted by topic author mAx
‎09-17-2015 08:14 AM

Re: Speedup a run

Hi mAx,


there are several ways to try and speed up a model.


First about the usage of multi-core.


When using the hydraulic library.

  • If you also have access to the discrete partitioning library, you can 'split' your circuit with a master/slave approach. Each slave will then run as one executable. It will be distributed to available cores by the OS. Using this library will warranty that you don't lose any accuracy in the results. You can see each slave as an independant subsystem which will be called whenever necessary.

For any library.

  • You could also 'split' your circuit using 'generic cosimulation' blocks. Here you manually set the frequency at which each subsystem is called. The accuracy will depend on these 'sampling' frequencies.


Some general tips.

  • Use 64 bit compiler from visual express. It tends to speed up runs quite a lot. Intel compiler will also improve the performances but it's not free.
  • Try to run your model with difference solver tolerances keeping an eye on results quality: 1e-4; 1e-5; 1e-6; 1e-7; 1e-8...
  • Using Performance Analyzer to identify the simulation bottlenecks; checing the solver run statistics, number of discontinuities, state contributions, frequencies and associated damping of your model to try identify inadequate parameters of your model


I hope this helps.




Re: Speedup a run

Hello Emmanuel,
Thanks for replying
So in my case I have to try the cosim block.
Thank you

Re: Speedup a run

Hi mAx,


Generic cosimulation technique can be safely used when you can naturally decouple several parts of a system. It means that the 2 subsystems should have a limited (or slow) interaction. Otherwise, in order to correctly capture the interaction between the subsystems, you'll have to use a very small 'sample time' in the cosimulation block parameter list. In that case you may not see a speedup. With pure hydraulic systems it can be challenging to find such a natural split between slow-interacting subsystems!


A demo model ClutchFading illustrates a situation where a split is easily achieved. Thermal effect on one side (slow dynamics) are coupled to mechanical model with higher dynamics, it's ok to create a coupling using cosimulation blocks.


Check the demo, launch simulation from the slave model then from the master.


Re: Speedup a run

Hi mAx,


You may also want to look for additional ways to reduce complexity of your model. For example, if you have multiple small volumes at different places in the hydraulic circuit, we usually recommend creating an equivalent larger volume to reduce the number of state equations that the solver generates when compiling. You can also choose simpler sub-models if the fidelity and accuracy are still acceptable for the quality of the analysis you are looking for. Generally, you want the number of explicit states generated (shown when the compiling window pops up) to be as low as you can get while maintaining accuracy/fidelity. Choosing a faster compiler and splitting the simulation up onto multiple cores for cosimulation are also options, but generally the last option once you have exhausted all other methods for model reduction. I hope this helps as well!


Brian Benoy

Brian Benoy, 1-D Application Engineer, Siemens PLM Software

Production: Amesim 14.1, Autonomie R12

Re: Speedup a run

Thank you for the explanations.

Wanna try it as soon as possible

Thanks again

Re: Speedup a run

Hi mAx,


1st click, I always recommend:

Performance Analyzer


Check the column Controlled. This will automatically highlight you the biggest "consumer" in your system (interactions between submodel and solver).

A double-click on the row will label you the corresponding element on your sketch.


Now, you know where to start first with your simplification / speed up modifications:

Check the complexity (submodel) of this element; parameter setting; initial conditions etc.

Let me/us know your progress.


Happy modeling ; )