Multithreading

Project Description

This 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.

This plugin is available in SOFA under the LGPL open-source license and can be activated in the project configuration. To get this plugin working, you need to activate the CMake variable PLUGIN_MULTITHREADING when configuring SOFA. More details included in the plugin documentation.

See the source code

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.

The plugin contains the following components:

  • AnimationLoopParallelScheduler
  • DataExchange
  • BeamLinearMapping_mt
  • MeanComputation

Back to the plugin list

Related Projects

Back to Top