Transition to Default Adaptive Stepping
By default we use parallel rendering and scene updates. So if you just setup a SceneManager and Viewer this is the behavior you get. The good majority of newer examples use adaptive and have the extra line: sceneManager->setExecutionType(Module::ExecutionType::ADAPTIVE);
.
Ideally adaptive is default and the user doesn't have to add this extra line (worse they forget). The reason adaptive should be default is that many things "just work" when using the sequential nature of the adaptive mode. Because:
- It's very easy to make mistakes, especially if you didn't know you were running them in parallel and you caused a race condition or something.
- The adaptive mode has more consistency across machines. Generally running on anything faster than what the simulation was tuned for will result in roughly the same simulation. This has been very helpful.
Transitioning every example to parallel is tricky as many physics parameters need reparameterization. What we can do though is make ADAPTIVE default and then go through every example and use sceneManager->setExecutionType(Module::ExecutionType::PARALLEL); And then eventually try to transition the parallel ones to adaptive.
Side Note: I am not prepared to completely removed parallel due to the high performance requirements of some simulators. It really depends on the program. If the scene itself is well parallelized, then running rendering and scene updates in parallel makes little difference. But in a number of programs it can make a decent difference.