mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 16:40:38 +08:00
852473b5f8
Fixes the current implementation where the desired number of threads may not be honored if another tbb::task_scheduler_init is instantiated. We are using tbb::task_arena to solve this which is only available in newer versions of TBB. Also increases the performance by not creating/destroying the TBB setup via tbb::task_scheduler_init on every iteration evaluation. This increases the performance in single threaded mode using TBB by 10x. By not specifically calling tbb::task_scheduler_init, this will either respect any active tbb::task_scheduler_init instantiations or use the default TBB settings which is hardware dependent. Ceres will honor the user's requested number of threads through the task_arenas. Tested via compiling with TBB enabled and ran the unit tests. Change-Id: I5538407563449cdb5a0eaf8b8ccab62263912110