Streamline of Simulation Runtime

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
D T
Posts: 24
Joined: Thu Nov 21, 2019 3:40 pm

Streamline of Simulation Runtime

Post by D T » Mon May 04, 2020 8:49 am

Hi all,

I am running batch simulations on a variety of subject trials, however CMC simulations through the GUI using a python script run very slowly. The trials themselves only last about 2.5 seconds of real time, however the GUI takes nearly 45 minutes for a single CMC simulation using the 2392gaitsimbody model. I've tried reducing the "accuracy" settings (such as a precision of 8, max integrator step size of 2000, and error tolerance of 0.001 compared to the default higher settings) but have had little success with reducing the run time be more than maybe ten minutes. I would prefer using this model, however I understand if I need to run with the more basic less DoF model.

Are there any methods, with either simulation accuracy settings or application computer settings, that would speed up the time for a CMC simulation? I was also wondering if OpenSim supports working with multiple processor cores or if there are recommended power and usage settings for the application.

Thanks for any/all information,
Dylan

Tags:

User avatar
Dimitar Stanev
Posts: 1096
Joined: Fri Jan 31, 2014 5:14 am

Re: Streamline of Simulation Runtime

Post by Dimitar Stanev » Tue May 05, 2020 1:29 am

Hi,

You can change the look ahead time on the first tab. However, this might influence the quality of results. By nature CMC is slow so do not expect a large speedup for free.

User avatar
Carmichael Ong
Posts: 401
Joined: Fri Feb 24, 2012 11:50 am

Re: Streamline of Simulation Runtime

Post by Carmichael Ong » Tue May 05, 2020 4:45 pm

One work around to get OpenSim to use multiple cores/threads is to make multiple calls to cmc.exe using the command line tool. This can help only if you are running multiple CMC tools (not speed up any one CMC solution). You'll see that each CMC call will usually choose different threads.

Depending on what your research question is, if static optimization will be sufficient, you may want to use that instead since it should be much faster.

POST REPLY