This TaskScheduling plugin has been developed to parallelize computationally intensive tasks without modifiyng the architecture of SOFA. To exploit the CPU parallelism it uses the task and scheduler design. That is an efficient way to scale the computation to all the CPU cores available on a machine without directly manipulating threads.
More details included in the plugin documentation.
Relying on a task scheduler implementation, this plugin provides few SOFA components designed to create tasks that can be executed concurrently. The parallelization is performed at component level when two or more independent components can be executed in parallel or in functions to parallelize a computationally expensive for loop. This plugin can be activated in SOFA using the CMake variable PLUGIN_MULTITHREADING
List of components:
- AnimationLoopParallelScheduler
- DataExchange
- BeamLinearMapping_mt
- MeanComputation
Additional informations
- License: Open-source
- Purpose: Optimization / Numerical methods
- Status: Ongoing
- Progress: 80%
- TRL: 5