[MultiThreading] Introduce ParallelTetrahedronFEMForceField #3552
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Based on #3548
Similar to ParallelHexahedronFEMForceField.
addDForce
andaddKToMatrix
are the parallelized functions.addForce
is not parallelized. It would require to duplicate code from the base class. Hence a refactoring is needed for a proper implementation (in another PR). Note thataddForce
is usually not the bottleneck.Quick benchmarks show performances improvement on the provided example.
I think there is still room for improvement in
addDForce
. But it would require a few changes in the base class. Instead of having a force vector for each task, I suggest to store only the force on the DoFs that have been visited during the task. I am not sure if it will bring more perfs improvements.In this PR,
addKToMatrix
is parallelized. It is not inParallelHexahedronFEMForceField
, but the same principle can be applied (in another PR).By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).
Reviewers will merge this pull-request only if