mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-30 00:50:37 +08:00
5d8b494557
With the addition of C++11 support we can simplify the parallel for code by removing the ifdef branching. Converts coordinate_descent_minimizer.cc to use the thread_id ParallelFor API. Tested by building with OpenMP, C++11 threads, TBB, and no threads. All tests pass. Also compared timing via the bundle adjuster. ./bin/bundle_adjuster --input=../problem-744-543562-pre.txt With OpenMP num_threads=8 Head: Time (in seconds): Residual only evaluation 0.807753 (5) Jacobian & residual evaluation 4.489404 (6) Linear solver 41.826481 (5) Minimizer 50.745857 Total 73.294424 CL: Time (in seconds): Residual only evaluation 0.970483 (5) Jacobian & residual evaluation 4.647438 (6) Linear solver 41.781892 (5) Minimizer 50.848904 Total 73.089983 With OpenMP num_threads=1 HEAD: Time (in seconds): Residual only evaluation 2.990246 (5) Jacobian & residual evaluation 14.132090 (6) Linear solver 79.631951 (5) Minimizer 100.281847 Total 122.946267 CL: Time (in seconds): Residual only evaluation 3.075178 (5) Jacobian & residual evaluation 13.966451 (6) Linear solver 77.005441 (5) Minimizer 97.568712 Total 120.410454 Change-Id: I1857d7943073be7465b6c6476bf46ab11c5475a3