diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 4f9d29bdd..630998f95 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: build: - name: ${{matrix.os}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.threading_model}} + name: ${{matrix.os}}-${{matrix.build_type}}-${{matrix.lib}} runs-on: ubuntu-latest container: ${{matrix.os}} defaults: @@ -25,10 +25,6 @@ jobs: lib: - shared - static - threading_model: - - CXX_THREADS - - NO_THREADS - - OPENMP steps: - uses: actions/checkout@v2 @@ -55,8 +51,8 @@ jobs: uses: actions/cache@v2 with: path: ${{env.CCACHE_DIR}} - key: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.threading_model}}-${{github.run_id}} - restore-keys: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.threading_model}}- + key: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}-${{github.run_id}} + restore-keys: ${{matrix.os}}-ccache-${{matrix.build_type}}-${{matrix.lib}}- - name: Setup Environment if: matrix.build_type == 'Release' @@ -67,7 +63,6 @@ jobs: run: | cmake -S . -B build_${{matrix.build_type}} \ -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \ - -DCERES_THREADING_MODEL=${{matrix.threading_model}} \ -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \ -DCMAKE_C_COMPILER_LAUNCHER=$(which ccache) \ -DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 01f47b815..c30ae9ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,24 +118,9 @@ read_ceres_version_from_source(${Ceres_SOURCE_DIR}) enable_testing() -include(CeresThreadingModels) include(CMakeDependentOption) include(PrettyPrintCMakeList) -find_available_ceres_threading_models(CERES_THREADING_MODELS_AVAILABLE) -pretty_print_cmake_list(PRETTY_CERES_THREADING_MODELS_AVAILABLE - ${CERES_THREADING_MODELS_AVAILABLE}) -message("-- Detected available Ceres threading models: " - "${PRETTY_CERES_THREADING_MODELS_AVAILABLE}") -set(CERES_THREADING_MODEL "${CERES_THREADING_MODEL}" CACHE STRING - "Ceres threading back-end" FORCE) -if (NOT CERES_THREADING_MODEL) - list(GET CERES_THREADING_MODELS_AVAILABLE 0 DEFAULT_THREADING_MODEL) - update_cache_variable(CERES_THREADING_MODEL ${DEFAULT_THREADING_MODEL}) -endif() -set_property(CACHE CERES_THREADING_MODEL PROPERTY STRINGS - ${CERES_THREADING_MODELS_AVAILABLE}) - option(MINIGLOG "Use a stripped down version of glog." OFF) option(GFLAGS "Enable Google Flags." ON) option(SUITESPARSE "Enable SuiteSparse." ON) @@ -197,8 +182,8 @@ if (IOS) # Apple claims that the BLAS call dsyrk_ is a private API, and will not allow # you to submit to the Apple Store if the symbol is present. update_cache_variable(LAPACK OFF) - message(STATUS "Building for iOS: SuiteSparse, LAPACK, gflags, " - "and OpenMP are not available.") + message(STATUS "Building for iOS: SuiteSparse, LAPACK, gflags " + "are not available.") update_cache_variable(BUILD_EXAMPLES OFF) message(STATUS "Building for iOS: Will not build examples.") @@ -489,8 +474,6 @@ if (NOT CUSTOM_BLAS) message("-- Disabling custom blas") endif (NOT CUSTOM_BLAS) -set_ceres_threading_model("${CERES_THREADING_MODEL}") - if (BUILD_BENCHMARKS) # Version 1.3 was first to provide import targets find_package(benchmark 1.3 QUIET) diff --git a/cmake/CeresCompileOptionsToComponents.cmake b/cmake/CeresCompileOptionsToComponents.cmake index 0baf2147b..47b0f2af5 100644 --- a/cmake/CeresCompileOptionsToComponents.cmake +++ b/cmake/CeresCompileOptionsToComponents.cmake @@ -80,10 +80,6 @@ function(ceres_compile_options_to_components CURRENT_CERES_COMPILE_OPTIONS CERES CERES_NO_ACCELERATE_SPARSE "AccelerateSparse;SparseLinearAlgebraLibrary") add_to_output_if_not_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR} CERES_RESTRICT_SCHUR_SPECIALIZATION "SchurSpecializations") - add_to_output_if_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR} - CERES_USE_OPENMP "OpenMP;Multithreading") - add_to_output_if_found(CURRENT_CERES_COMPILE_OPTIONS ${CERES_COMPONENTS_VAR} - CERES_USE_CXX_THREADS "Multithreading") # Remove duplicates of SparseLinearAlgebraLibrary if multiple sparse backends # are present. list(REMOVE_DUPLICATES ${CERES_COMPONENTS_VAR}) diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in index bb6cc43a1..ceb7e269c 100644 --- a/cmake/CeresConfig.cmake.in +++ b/cmake/CeresConfig.cmake.in @@ -178,10 +178,9 @@ set(CERES_VERSION @CERES_VERSION@) include(CMakeFindDependencyMacro) # Optional dependencies @METIS_DEPENDENCY@ -@OpenMP_DEPENDENCY@ @SuiteSparse_DEPENDENCY@ -@Threads_DEPENDENCY@ @CUDAToolkit_DEPENDENCY@ +@Threads_DEPENDENCY@ # As imported CMake targets are not re-exported when a dependent target is # exported, we must invoke find_package(XXX) here to reload the definition diff --git a/cmake/CeresThreadingModels.cmake b/cmake/CeresThreadingModels.cmake deleted file mode 100644 index 571dd7d50..000000000 --- a/cmake/CeresThreadingModels.cmake +++ /dev/null @@ -1,82 +0,0 @@ -# Ceres Solver - A fast non-linear least squares minimizer -# Copyright 2018 Google Inc. All rights reserved. -# http://ceres-solver.org/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# * Neither the name of Google Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# Author: alexs.mac@gmail.com (Alex Stewart) - -# Ordered by expected preference. -set(CERES_THREADING_MODELS "CXX_THREADS;OPENMP;NO_THREADS") - -function(find_available_ceres_threading_models CERES_THREADING_MODELS_AVAILABLE_VAR) - set(CERES_THREADING_MODELS_AVAILABLE ${CERES_THREADING_MODELS}) - # Remove any threading models for which the dependencies are not available. - find_package(OpenMP QUIET) - if (NOT OPENMP_FOUND) - list(REMOVE_ITEM CERES_THREADING_MODELS_AVAILABLE "OPENMP") - endif() - if (NOT CERES_THREADING_MODELS_AVAILABLE) - # At least NO_THREADS should never be removed. This check is purely - # protective against future threading model updates. - message(FATAL_ERROR "Ceres bug: Removed all threading models.") - endif() - set(${CERES_THREADING_MODELS_AVAILABLE_VAR} - ${CERES_THREADING_MODELS_AVAILABLE} PARENT_SCOPE) -endfunction() - -macro(set_ceres_threading_model_to_cxx11_threads) - list(APPEND CERES_COMPILE_OPTIONS CERES_USE_CXX_THREADS) -endmacro() - -macro(set_ceres_threading_model_to_openmp) - find_package(OpenMP REQUIRED) - list(APPEND CERES_COMPILE_OPTIONS CERES_USE_OPENMP) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") -endmacro() - -macro(set_ceres_threading_model_to_no_threads) - list(APPEND CERES_COMPILE_OPTIONS CERES_NO_THREADS) -endmacro() - -macro(set_ceres_threading_model CERES_THREADING_MODEL_TO_SET) - if ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "CXX_THREADS") - set_ceres_threading_model_to_cxx11_threads() - elseif ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "OPENMP") - set_ceres_threading_model_to_openmp() - elseif ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "NO_THREADS") - set_ceres_threading_model_to_no_threads() - else() - include(PrettyPrintCMakeList) - find_available_ceres_threading_models(_AVAILABLE_THREADING_MODELS) - pretty_print_cmake_list( - _AVAILABLE_THREADING_MODELS ${_AVAILABLE_THREADING_MODELS}) - message(FATAL_ERROR "Unknown threading model specified: " - "'${CERES_THREADING_MODEL_TO_SET}'. Available threading models for " - "this platform are: ${_AVAILABLE_THREADING_MODELS}") - endif() - message("-- Using Ceres threading model: ${CERES_THREADING_MODEL_TO_SET}") -endmacro() diff --git a/cmake/config.h.in b/cmake/config.h.in index 40079550f..0e7fd3a9e 100644 --- a/cmake/config.h.in +++ b/cmake/config.h.in @@ -70,12 +70,6 @@ // routines. @CERES_NO_CUSTOM_BLAS@ -// If defined, Ceres was compiled without multithreading support. -@CERES_NO_THREADS@ -// If defined Ceres was compiled with OpenMP multithreading. -@CERES_USE_OPENMP@ -// If defined Ceres was compiled with modern C++ multithreading. -@CERES_USE_CXX_THREADS@ // If defined, Ceres was compiled with a version of SuiteSparse/CHOLMOD without // the Partition module (requires METIS). @CERES_NO_CHOLMOD_PARTITION@ @@ -87,22 +81,6 @@ // with underscore prefixed versions (e.g. j0() -> _j0()). @CERES_MSVC_USE_UNDERSCORE_PREFIXED_BESSEL_FUNCTIONS@ -#if defined(CERES_USE_OPENMP) -#if defined(CERES_USE_CXX_THREADS) || defined(CERES_NO_THREADS) -#error CERES_USE_OPENMP is mutually exclusive to CERES_USE_CXX_THREADS and CERES_NO_THREADS -#endif -#elif defined(CERES_USE_CXX_THREADS) -#if defined(CERES_USE_OPENMP) || defined(CERES_NO_THREADS) -#error CERES_USE_CXX_THREADS is mutually exclusive to CERES_USE_OPENMP, CERES_USE_CXX_THREADS and CERES_NO_THREADS -#endif -#elif defined(CERES_NO_THREADS) -#if defined(CERES_USE_OPENMP) || defined(CERES_USE_CXX_THREADS) -#error CERES_NO_THREADS is mutually exclusive to CERES_USE_OPENMP and CERES_USE_CXX_THREADS -#endif -#else -# error One of CERES_USE_OPENMP, CERES_USE_CXX_THREADS or CERES_NO_THREADS must be defined. -#endif - // CERES_NO_SPARSE should be automatically defined by config.h if Ceres was // compiled without any sparse back-end. Verify that it has not subsequently // been inconsistently redefined. diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index 06c091497..1e6a69951 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt @@ -32,25 +32,10 @@ # Avoid 'xxx.cc has no symbols' warnings from source files which are 'empty' # when their enclosing #ifdefs are disabled. -if (CERES_THREADING_MODEL STREQUAL "CXX_THREADS") - set(CERES_PARALLEL_FOR_SRC parallel_for_cxx.cc thread_pool.cc) - find_package(Threads REQUIRED) - list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES Threads::Threads) - - # Make dependency visible to the parent CMakeLists.txt - set(Threads_DEPENDENCY "find_dependency (Threads)" PARENT_SCOPE) -elseif (CERES_THREADING_MODEL STREQUAL "OPENMP") - # OpenMP requires linking to the corresponding library. - find_package(OpenMP REQUIRED COMPONENTS CXX) - - set(CERES_PARALLEL_FOR_SRC parallel_for_openmp.cc) - list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES OpenMP::OpenMP_CXX) - - # Make dependency visible to the parent CMakeLists.txt - set(OpenMP_DEPENDENCY "find_dependency (OpenMP ${OpenMP_CXX_VERSION} COMPONENTS CXX)" PARENT_SCOPE) -elseif (CERES_THREADING_MODEL STREQUAL "NO_THREADS") - set(CERES_PARALLEL_FOR_SRC parallel_for_nothreads.cc) -endif() +find_package(Threads REQUIRED) +list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES Threads::Threads) +# Make dependency visible to the parent CMakeLists.txt +set(Threads_DEPENDENCY "find_dependency (Threads)" PARENT_SCOPE) # Source files that contain public symbols and live in the ceres namespaces. # Such symbols are expected to be marked with CERES_EXPORT and the files below @@ -171,7 +156,6 @@ endif () # lexicographical order. add_library(ceres_internal OBJECT ${CERES_INTERNAL_SCHUR_FILES} - ${CERES_PARALLEL_FOR_SRC} accelerate_sparse.cc array_utils.cc block_evaluate_preparer.cc @@ -235,6 +219,7 @@ add_library(ceres_internal OBJECT linear_solver.cc low_rank_inverse_hessian.cc minimizer.cc + parallel_for_cxx.cc parallel_utils.cc parameter_block_ordering.cc partitioned_matrix_view.cc @@ -260,6 +245,7 @@ add_library(ceres_internal OBJECT stringprintf.cc subset_preconditioner.cc suitesparse.cc + thread_pool.cc thread_token_provider.cc triplet_sparse_matrix.cc trust_region_minimizer.cc diff --git a/internal/ceres/concurrent_queue_test.cc b/internal/ceres/concurrent_queue_test.cc index b0930fe95..08451bdea 100644 --- a/internal/ceres/concurrent_queue_test.cc +++ b/internal/ceres/concurrent_queue_test.cc @@ -28,15 +28,12 @@ // // Author: vitus@google.com (Michael Vitus) -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_USE_CXX_THREADS +#include "ceres/concurrent_queue.h" #include #include -#include "ceres/concurrent_queue.h" +#include "ceres/internal/config.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -300,5 +297,3 @@ TEST(ConcurrentQueue, StopAndEnableWaiters) { } } // namespace ceres::internal - -#endif // CERES_USE_CXX_THREADS diff --git a/internal/ceres/context_impl.cc b/internal/ceres/context_impl.cc index 56c978557..cc01b5436 100644 --- a/internal/ceres/context_impl.cc +++ b/internal/ceres/context_impl.cc @@ -171,9 +171,9 @@ ContextImpl::~ContextImpl() { TearDown(); #endif // CERES_NO_CUDA } + void ContextImpl::EnsureMinimumThreads(int num_threads) { -#ifdef CERES_USE_CXX_THREADS thread_pool.Resize(num_threads); -#endif // CERES_USE_CXX_THREADS } + } // namespace ceres::internal diff --git a/internal/ceres/context_impl.h b/internal/ceres/context_impl.h index d8f294ace..a18d6388f 100644 --- a/internal/ceres/context_impl.h +++ b/internal/ceres/context_impl.h @@ -49,9 +49,7 @@ #include "cusparse.h" #endif // CERES_NO_CUDA -#ifdef CERES_USE_CXX_THREADS #include "ceres/thread_pool.h" -#endif // CERES_USE_CXX_THREADS namespace ceres::internal { @@ -67,9 +65,7 @@ class CERES_NO_EXPORT ContextImpl final : public Context { // defined by the hardware. Otherwise this call is a no-op. void EnsureMinimumThreads(int num_threads); -#ifdef CERES_USE_CXX_THREADS ThreadPool thread_pool; -#endif // CERES_USE_CXX_THREADS #ifndef CERES_NO_CUDA // Note on Ceres' use of CUDA Devices on multi-GPU systems: diff --git a/internal/ceres/covariance_impl.cc b/internal/ceres/covariance_impl.cc index 9957d1d2d..5d8b87f68 100644 --- a/internal/ceres/covariance_impl.cc +++ b/internal/ceres/covariance_impl.cc @@ -65,15 +65,6 @@ using CovarianceBlocks = std::vector>; CovarianceImpl::CovarianceImpl(const Covariance::Options& options) : options_(options), is_computed_(false), is_valid_(false) { -#ifdef CERES_NO_THREADS - if (options_.num_threads > 1) { - LOG(WARNING) << "No threading support is compiled into this binary; " - << "only options.num_threads = 1 is supported. Switching " - << "to single threaded mode."; - options_.num_threads = 1; - } -#endif - evaluate_options_.num_threads = options_.num_threads; evaluate_options_.apply_loss_function = options_.apply_loss_function; } diff --git a/internal/ceres/covariance_test.cc b/internal/ceres/covariance_test.cc index caea18c7e..76fcb122e 100644 --- a/internal/ceres/covariance_test.cc +++ b/internal/ceres/covariance_test.cc @@ -639,8 +639,6 @@ TEST_F(CovarianceTest, NormalBehavior) { ComputeAndCompareCovarianceBlocks(options, expected_covariance); } -#ifdef CERES_USE_OPENMP - TEST_F(CovarianceTest, ThreadedNormalBehavior) { // J // @@ -691,8 +689,6 @@ TEST_F(CovarianceTest, ThreadedNormalBehavior) { ComputeAndCompareCovarianceBlocks(options, expected_covariance); } -#endif // CERES_USE_OPENMP - TEST_F(CovarianceTest, ConstantParameterBlock) { problem_.SetParameterBlockConstant(parameters_); @@ -1355,13 +1351,13 @@ class LargeScaleCovarianceTest : public ::testing::Test { vector> all_covariance_blocks_; }; -#if !defined(CERES_NO_SUITESPARSE) && defined(CERES_USE_OPENMP) +#if !defined(CERES_NO_SUITESPARSE) TEST_F(LargeScaleCovarianceTest, Parallel) { ComputeAndCompare(SPARSE_QR, SUITE_SPARSE, 4); } -#endif // !defined(CERES_NO_SUITESPARSE) && defined(CERES_USE_OPENMP) +#endif // !defined(CERES_NO_SUITESPARSE) } // namespace internal } // namespace ceres diff --git a/internal/ceres/generate_bundle_adjustment_tests.py b/internal/ceres/generate_bundle_adjustment_tests.py index 6e6027085..35865a61c 100644 --- a/internal/ceres/generate_bundle_adjustment_tests.py +++ b/internal/ceres/generate_bundle_adjustment_tests.py @@ -221,11 +221,6 @@ def generate_bundle_test(linear_solver, preprocessor_conditions_begin.append('#ifndef CERES_NO_CUDA') preprocessor_conditions_end.insert(0, '#endif // CERES_NO_CUDA') - # Accumulate appropriate #ifdef/#ifndefs for threading conditions. - if thread_config == MULTI_THREADED: - preprocessor_conditions_begin.append('#ifndef CERES_NO_THREADS') - preprocessor_conditions_end.insert(0, '#endif // CERES_NO_THREADS') - # If there are #ifdefs, put newlines around them. if preprocessor_conditions_begin: preprocessor_conditions_begin.insert(0, '') diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc index d0181e38b..c0020c25b 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_CUDA -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_CUDA diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc index ecda17c97..042848a21 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_cuda_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_CUDA -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_CUDA diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc index a355e851d..3c32212b6 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_auto_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc index f005c31d4..9335b8215 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_eigen_user_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc index 4e727dbeb..1acda327c 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_LAPACK -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_LAPACK diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc index e19734a34..0d39dcd03 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_denseschur_lapack_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_LAPACK -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_LAPACK diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc index 93b58ebf1..acb5c1602 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc index 053e9b236..42570c42c 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clustjacobi_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc index 723246a1e..f67030a9c 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc index 93f5353c2..a638cfed7 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_acceleratesparse_clusttri_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc index 1e9dbf05b..5adb25a2b 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc index 0daf51925..d531c340d 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clustjacobi_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc index 1ee128652..c82924cc2 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc index 6e08b2279..f7de34f25 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_eigensparse_clusttri_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc index e0aad4485..4666424cd 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_auto_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc index c68f6f052..09d5bd034 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_jacobi_user_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc index 6d97ebab0..beaa92a47 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_auto_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc index 71220f74a..762f8810c 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_schurjacobi_user_threads_test.cc @@ -38,8 +38,6 @@ #include "ceres/internal/config.h" #include "bundle_adjustment_test_util.h" -#ifndef CERES_NO_THREADS - namespace ceres::internal { TEST_F(BundleAdjustmentTest, @@ -59,5 +57,3 @@ TEST_F(BundleAdjustmentTest, } } // namespace ceres::internal - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc index 874168db3..e31446a69 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc index ae07667ae..d26cc333e 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clustjacobi_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc index aee5e5a31..35df772e0 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc index 9bc2d3fb7..e71b4e5c9 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_iterschur_suitesparse_clusttri_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc index 79769b435..38731ecd6 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc index 6131f1dc3..27e32d122 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_acceleratesparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc index 46e5dac97..6b9372782 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc index 68f3be7f5..a92ccfbaa 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_eigensparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc index ef1100577..f8aa16ff9 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc index 862142a25..09ac24e5a 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparsecholesky_suitesparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc index 595fc155e..b6b53ce39 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc index c1302f731..da4c9df49 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_acceleratesparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_ACCELERATE_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_ACCELERATE_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc index 137725bad..7a8bd90c4 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc index 14dcabf31..35c73ca8f 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_eigensparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifdef CERES_USE_EIGEN_SPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_USE_EIGEN_SPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc index cf015b87b..2cdb888f4 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_auto_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc index b13915e70..04f36337b 100644 --- a/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc +++ b/internal/ceres/generated_bundle_adjustment_tests/ba_sparseschur_suitesparse_user_threads_test.cc @@ -39,7 +39,6 @@ #include "bundle_adjustment_test_util.h" #ifndef CERES_NO_SUITESPARSE -#ifndef CERES_NO_THREADS namespace ceres::internal { @@ -61,5 +60,4 @@ TEST_F(BundleAdjustmentTest, } // namespace ceres::internal -#endif // CERES_NO_THREADS #endif // CERES_NO_SUITESPARSE diff --git a/internal/ceres/parallel_for.h b/internal/ceres/parallel_for.h index fe5d242a4..d91a195a6 100644 --- a/internal/ceres/parallel_for.h +++ b/internal/ceres/parallel_for.h @@ -338,21 +338,7 @@ void ParallelFor(ContextImpl* context, } // namespace ceres::internal // Backend-specific implementations of ParallelInvoke -#include "ceres/parallel_for_cxx.h" -#include "ceres/parallel_for_openmp.h" -#ifdef CERES_NO_THREADS -namespace ceres::internal { -template -void ParallelInvoke(ContextImpl* context, - int start, - int end, - int num_threads, - const F& function) { - ParallelFor(context, start, end, 1, function); -} -} // namespace ceres::internal -#endif - #include "ceres/internal/disable_warnings.h" +#include "ceres/parallel_for_cxx.h" #endif // CERES_INTERNAL_PARALLEL_FOR_H_ diff --git a/internal/ceres/parallel_for_cxx.cc b/internal/ceres/parallel_for_cxx.cc index 13cabf90b..cdf9966f5 100644 --- a/internal/ceres/parallel_for_cxx.cc +++ b/internal/ceres/parallel_for_cxx.cc @@ -28,17 +28,13 @@ // // Author: vitus@google.com (Michael Vitus) -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_USE_CXX_THREADS - #include #include #include #include #include +#include "ceres/internal/config.h" #include "ceres/parallel_for.h" #include "glog/logging.h" @@ -79,5 +75,3 @@ ThreadPoolState::ThreadPoolState(int start, int MaxNumThreadsAvailable() { return ThreadPool::MaxNumThreadsAvailable(); } } // namespace ceres::internal - -#endif // CERES_USE_CXX_THREADS diff --git a/internal/ceres/parallel_for_cxx.h b/internal/ceres/parallel_for_cxx.h index b745a6407..073160992 100644 --- a/internal/ceres/parallel_for_cxx.h +++ b/internal/ceres/parallel_for_cxx.h @@ -29,21 +29,16 @@ // Authors: vitus@google.com (Michael Vitus), // dmitriy.korchemkin@gmail.com (Dmitriy Korchemkin) -// This include must come before any #ifndef check on Ceres compile options. #ifndef CERES_INTERNAL_PARALLEL_FOR_CXX_H_ #define CERES_INTERNAL_PARALLEL_FOR_CXX_H_ -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_USE_CXX_THREADS - #include #include #include #include #include +#include "ceres/internal/config.h" #include "glog/logging.h" namespace ceres::internal { @@ -243,6 +238,7 @@ void ParallelInvoke(ContextImpl* context, // Wait until all tasks have finished. shared_state->block_until_finished.Block(); } + } // namespace ceres::internal -#endif -#endif + +#endif // CERES_INTERNAL_PARALLEL_FOR_CXX_H_ diff --git a/internal/ceres/parallel_for_nothreads.cc b/internal/ceres/parallel_for_nothreads.cc deleted file mode 100644 index 8d3611dbc..000000000 --- a/internal/ceres/parallel_for_nothreads.cc +++ /dev/null @@ -1,47 +0,0 @@ -// Ceres Solver - A fast non-linear least squares minimizer -// Copyright 2018 Google Inc. All rights reserved. -// http://ceres-solver.org/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// * Neither the name of Google Inc. nor the names of its contributors may be -// used to endorse or promote products derived from this software without -// specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// Author: alexs.mac@gmail.com (Alex Stewart) - -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_NO_THREADS - -#include "ceres/parallel_for.h" -#include "glog/logging.h" - -namespace ceres { -namespace internal { - -int MaxNumThreadsAvailable() { return 1; } - -} // namespace internal -} // namespace ceres - -#endif // CERES_NO_THREADS diff --git a/internal/ceres/parallel_for_openmp.cc b/internal/ceres/parallel_for_openmp.cc deleted file mode 100644 index 02690f310..000000000 --- a/internal/ceres/parallel_for_openmp.cc +++ /dev/null @@ -1,48 +0,0 @@ -// Ceres Solver - A fast non-linear least squares minimizer -// Copyright 2018 Google Inc. All rights reserved. -// http://ceres-solver.org/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// * Neither the name of Google Inc. nor the names of its contributors may be -// used to endorse or promote products derived from this software without -// specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// Author: vitus@google.com (Michael Vitus) - -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#if defined(CERES_USE_OPENMP) - -#include "ceres/parallel_for.h" -#include "glog/logging.h" -#include "omp.h" - -namespace ceres { -namespace internal { - -int MaxNumThreadsAvailable() { return omp_get_max_threads(); } - -} // namespace internal -} // namespace ceres - -#endif // defined(CERES_USE_OPENMP) diff --git a/internal/ceres/parallel_for_openmp.h b/internal/ceres/parallel_for_openmp.h deleted file mode 100644 index 94254c455..000000000 --- a/internal/ceres/parallel_for_openmp.h +++ /dev/null @@ -1,70 +0,0 @@ -// Ceres Solver - A fast non-linear least squares minimizer -// Copyright 2018 Google Inc. All rights reserved. -// http://ceres-solver.org/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// * Neither the name of Google Inc. nor the names of its contributors may be -// used to endorse or promote products derived from this software without -// specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// Authors: vitus@google.com (Michael Vitus), -// dmitriy.korchemkin@gmail.com (Dmitriy Korchemkin) - -// This include must come before any #ifndef check on Ceres compile options. -#ifndef CERES_INTERNAL_PARALLEL_FOR_OPENMP_H_ -#define CERES_INTERNAL_PARALLEL_FOR_OPENMP_H_ - -#include "ceres/internal/config.h" - -#if defined(CERES_USE_OPENMP) - -#include "ceres/parallel_for.h" -#include "ceres/scoped_thread_token.h" -#include "ceres/thread_token_provider.h" -#include "glog/logging.h" -#include "omp.h" - -namespace ceres::internal { - -template -void ParallelInvoke(ContextImpl* context, - int start, - int end, - int num_threads, - const F& function) { - using namespace parallel_for_details; - ThreadTokenProvider token_provider(num_threads); -#pragma omp parallel num_threads(num_threads) - { - const ScopedThreadToken scoped_thread_token(&token_provider); - const int thread_id = scoped_thread_token.token(); -#pragma omp for schedule(guided) - for (int i = start; i < end; ++i) { - Invoke(thread_id, i, function); - } - } -} - -} // namespace ceres::internal - -#endif -#endif diff --git a/internal/ceres/parallel_for_test.cc b/internal/ceres/parallel_for_test.cc index 54ca63683..6974ab903 100644 --- a/internal/ceres/parallel_for_test.cc +++ b/internal/ceres/parallel_for_test.cc @@ -28,11 +28,6 @@ // // Author: vitus@google.com (Michael Vitus) -// This include must come before any #ifndef check on Ceres compile options. -// clang-format off -#include "ceres/internal/config.h" -// clang-format on - #include "ceres/parallel_for.h" #include @@ -44,6 +39,7 @@ #include #include "ceres/context_impl.h" +#include "ceres/internal/config.h" #include "glog/logging.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -133,8 +129,6 @@ TEST(ParallelForWithThreadId, NestedParallelForDeadlock) { } } -// This test is only valid when multithreading support is enabled. -#ifndef CERES_NO_THREADS TEST(ParallelForWithThreadId, UniqueThreadIds) { // Ensure the hardware supports more than 1 thread to ensure the test will // pass. @@ -166,7 +160,6 @@ TEST(ParallelForWithThreadId, UniqueThreadIds) { EXPECT_THAT(x, UnorderedElementsAreArray({0, 1})); } -#endif // CERES_NO_THREADS // Helper function for partition tests bool BruteForcePartition( diff --git a/internal/ceres/parallel_utils_test.cc b/internal/ceres/parallel_utils_test.cc index fd2d79246..1facb3e25 100644 --- a/internal/ceres/parallel_utils_test.cc +++ b/internal/ceres/parallel_utils_test.cc @@ -28,13 +28,9 @@ // // Author: wjr@google.com (William Rucklidge) -// This include must come before any #ifndef check on Ceres compile options. -// clang-format off -#include "ceres/internal/config.h" -// clang-format on - #include "ceres/parallel_utils.h" +#include "ceres/internal/config.h" #include "glog/logging.h" #include "gtest/gtest.h" diff --git a/internal/ceres/problem_impl.cc b/internal/ceres/problem_impl.cc index 326416649..4440526fb 100644 --- a/internal/ceres/problem_impl.cc +++ b/internal/ceres/problem_impl.cc @@ -672,17 +672,7 @@ bool ProblemImpl::Evaluate(const Problem::EvaluateOptions& evaluate_options, // the Evaluator decides the storage for the Jacobian based on the // type of linear solver being used. evaluator_options.linear_solver_type = SPARSE_NORMAL_CHOLESKY; -#ifdef CERES_NO_THREADS - if (evaluate_options.num_threads > 1) { - LOG(WARNING) - << "No threading support is compiled into this binary; " - << "only evaluate_options.num_threads = 1 is supported. Switching " - << "to single threaded mode."; - } - evaluator_options.num_threads = 1; -#else evaluator_options.num_threads = evaluate_options.num_threads; -#endif // CERES_NO_THREADS // The main thread also does work so we only need to launch num_threads - 1. context_impl_->EnsureMinimumThreads(evaluator_options.num_threads - 1); diff --git a/internal/ceres/program_evaluator.h b/internal/ceres/program_evaluator.h index 1176bb860..251a17704 100644 --- a/internal/ceres/program_evaluator.h +++ b/internal/ceres/program_evaluator.h @@ -119,15 +119,6 @@ class ProgramEvaluator final : public Evaluator { jacobian_writer_(options, program), evaluate_preparers_(std::move( jacobian_writer_.CreateEvaluatePreparers(options.num_threads))) { -#ifdef CERES_NO_THREADS - if (options_.num_threads > 1) { - LOG(WARNING) << "No threading support is compiled into this binary; " - << "only options.num_threads = 1 is supported. Switching " - << "to single threaded mode."; - options_.num_threads = 1; - } -#endif // CERES_NO_THREADS - BuildResidualLayout(*program, &residual_layout_); evaluate_scratch_ = std::move(CreateEvaluatorScratch( *program, static_cast(options.num_threads))); diff --git a/internal/ceres/solver_utils.cc b/internal/ceres/solver_utils.cc index 4c4a354ae..de1c38b47 100644 --- a/internal/ceres/solver_utils.cc +++ b/internal/ceres/solver_utils.cc @@ -78,12 +78,6 @@ constexpr char kVersion[] = "-no_schur_specializations" #endif -#ifdef CERES_USE_OPENMP - "-openmp" -#else - "-no_openmp" -#endif - #ifdef CERES_NO_CUSTOM_BLAS "-no_custom_blas" #endif diff --git a/internal/ceres/thread_pool.cc b/internal/ceres/thread_pool.cc index 1fd1a4caf..16b86e1f8 100644 --- a/internal/ceres/thread_pool.cc +++ b/internal/ceres/thread_pool.cc @@ -28,15 +28,12 @@ // // Author: vitus@google.com (Michael Vitus) -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_USE_CXX_THREADS +#include "ceres/thread_pool.h" #include #include -#include "ceres/thread_pool.h" +#include "ceres/internal/config.h" namespace ceres::internal { namespace { @@ -105,5 +102,3 @@ void ThreadPool::ThreadMainLoop() { void ThreadPool::Stop() { task_queue_.StopWaiters(); } } // namespace ceres::internal - -#endif // CERES_USE_CXX_THREADS diff --git a/internal/ceres/thread_pool_test.cc b/internal/ceres/thread_pool_test.cc index e64011db8..63b05d08b 100644 --- a/internal/ceres/thread_pool_test.cc +++ b/internal/ceres/thread_pool_test.cc @@ -28,17 +28,14 @@ // // Author: vitus@google.com (Michael Vitus) -// This include must come before any #ifndef check on Ceres compile options. -#include "ceres/internal/config.h" - -#ifdef CERES_USE_CXX_THREADS +#include "ceres/thread_pool.h" #include #include #include #include -#include "ceres/thread_pool.h" +#include "ceres/internal/config.h" #include "glog/logging.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -193,5 +190,3 @@ TEST(ThreadPool, Resize) { } } // namespace ceres::internal - -#endif // CERES_USE_CXX_THREADS diff --git a/internal/ceres/thread_token_provider.cc b/internal/ceres/thread_token_provider.cc index e48964c95..c9bb3fc00 100644 --- a/internal/ceres/thread_token_provider.cc +++ b/internal/ceres/thread_token_provider.cc @@ -30,42 +30,20 @@ #include "ceres/thread_token_provider.h" -#ifdef CERES_USE_OPENMP -#include -#endif - namespace ceres::internal { ThreadTokenProvider::ThreadTokenProvider(int num_threads) { - (void)num_threads; -#ifdef CERES_USE_CXX_THREADS for (int i = 0; i < num_threads; i++) { pool_.Push(i); } -#endif } int ThreadTokenProvider::Acquire() { -#ifdef CERES_USE_OPENMP - return omp_get_thread_num(); -#endif - -#ifdef CERES_NO_THREADS - return 0; -#endif - -#ifdef CERES_USE_CXX_THREADS int thread_id; CHECK(pool_.Wait(&thread_id)); return thread_id; -#endif } -void ThreadTokenProvider::Release(int thread_id) { - (void)thread_id; -#ifdef CERES_USE_CXX_THREADS - pool_.Push(thread_id); -#endif -} +void ThreadTokenProvider::Release(int thread_id) { pool_.Push(thread_id); } } // namespace ceres::internal diff --git a/internal/ceres/thread_token_provider.h b/internal/ceres/thread_token_provider.h index d8640df2d..b14df0e92 100644 --- a/internal/ceres/thread_token_provider.h +++ b/internal/ceres/thread_token_provider.h @@ -31,13 +31,10 @@ #ifndef CERES_INTERNAL_THREAD_TOKEN_PROVIDER_H_ #define CERES_INTERNAL_THREAD_TOKEN_PROVIDER_H_ +#include "ceres/concurrent_queue.h" #include "ceres/internal/config.h" #include "ceres/internal/export.h" -#ifdef CERES_USE_CXX_THREADS -#include "ceres/concurrent_queue.h" -#endif - namespace ceres::internal { // Helper for C++ thread number identification that is similar to @@ -47,12 +44,6 @@ namespace ceres::internal { // 0 to num_threads - 1 that can be acquired to identify the thread in a thread // pool. // -// If CERES_NO_THREADS is defined, Acquire() always returns 0 and Release() -// takes no action. -// -// If CERES_USE_OPENMP, omp_get_thread_num() is used to Acquire() with no action -// in Release() -// // // Example usage pseudocode: // @@ -77,15 +68,12 @@ class CERES_NO_EXPORT ThreadTokenProvider { void Release(int thread_id); private: -#ifdef CERES_USE_CXX_THREADS // This queue initially holds a sequence from 0..num_threads-1. Every // Acquire() call the first number is removed from here. When the token is not // needed anymore it shall be given back with corresponding Release() // call. This concurrent queue is more expensive than TBB's version, so you // should not acquire the thread ID on every for loop iteration. ConcurrentQueue pool_; -#endif - ThreadTokenProvider(ThreadTokenProvider&) = delete; ThreadTokenProvider& operator=(ThreadTokenProvider&) = delete; }; diff --git a/internal/ceres/wall_time.cc b/internal/ceres/wall_time.cc index c36092a8e..f57da318c 100644 --- a/internal/ceres/wall_time.cc +++ b/internal/ceres/wall_time.cc @@ -30,13 +30,9 @@ #include "ceres/wall_time.h" -#include "ceres/internal/config.h" - -#ifdef CERES_USE_OPENMP -#include -#else #include -#endif + +#include "ceres/internal/config.h" #ifdef _WIN32 #include @@ -47,9 +43,6 @@ namespace ceres::internal { double WallTimeInSeconds() { -#ifdef CERES_USE_OPENMP - return omp_get_wtime(); -#else #ifdef _WIN32 LARGE_INTEGER count; LARGE_INTEGER frequency; @@ -62,7 +55,6 @@ double WallTimeInSeconds() { gettimeofday(&time_val, nullptr); return (time_val.tv_sec + time_val.tv_usec * 1e-6); #endif -#endif } EventLogger::EventLogger(const std::string& logger_name) {