From e46c49c46d99fa7f0fe98a14ab0584facb409770 Mon Sep 17 00:00:00 2001 From: Drew Herren Date: Fri, 21 Nov 2025 16:47:50 -0600 Subject: [PATCH 1/2] Rely on compiler openMP macro for omp availability --- CMakeLists.txt | 1 - configure | 5 ----- configure.ac | 4 ---- configure.win | 2 +- include/stochtree/openmp_utils.h | 3 +-- src/Makevars.in | 1 - 6 files changed, 2 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d1efe55..4782923a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,7 +84,6 @@ endif() # OpenMP if(USE_OPENMP) - add_definitions(-DSTOCHTREE_OPENMP_AVAILABLE) if(APPLE) find_package(OpenMP) if(NOT OpenMP_FOUND) diff --git a/configure b/configure index 2480c9a9..bdffbd87 100755 --- a/configure +++ b/configure @@ -608,7 +608,6 @@ PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS STOCHTREE_CPPFLAGS -OPENMP_AVAILABILITY_FLAGS OPENMP_LIB OPENMP_CXXFLAGS target_alias @@ -1762,14 +1761,12 @@ OPENMP_CXXFLAGS="" if test `uname -s` = "Linux" then OPENMP_CXXFLAGS="\$(SHLIB_OPENMP_CXXFLAGS)" - OPENMP_AVAILABILITY_FLAGS='-DSTOCHTREE_OPENMP_AVAILABLE' fi if test `uname -s` = "Darwin" then OPENMP_CXXFLAGS='-Xclang -fopenmp' OPENMP_LIB='-lomp' - OPENMP_AVAILABILITY_FLAGS='-DSTOCHTREE_OPENMP_AVAILABLE' # libomp 15.0+ from brew is keg-only (i.e. not symlinked into the standard paths search by the linker), # so need to search in other locations. @@ -1830,7 +1827,6 @@ printf "%s\n" "${ac_pkg_openmp}" >&6; } if test "${ac_pkg_openmp}" = no; then OPENMP_CXXFLAGS='' OPENMP_LIB='' - OPENMP_AVAILABILITY_FLAGS='' echo '***********************************************************************************************' echo ' OpenMP is unavailable on this macOS system. stochtree code will run single-threaded as a result.' echo ' To use all CPU cores for training jobs, you should install OpenMP by running' @@ -1844,7 +1840,6 @@ fi - ac_config_files="$ac_config_files src/Makevars" diff --git a/configure.ac b/configure.ac index c329eeb3..ae8a9f7f 100644 --- a/configure.ac +++ b/configure.ac @@ -47,14 +47,12 @@ OPENMP_CXXFLAGS="" if test `uname -s` = "Linux" then OPENMP_CXXFLAGS="\$(SHLIB_OPENMP_CXXFLAGS)" - OPENMP_AVAILABILITY_FLAGS='-DSTOCHTREE_OPENMP_AVAILABLE' fi if test `uname -s` = "Darwin" then OPENMP_CXXFLAGS='-Xclang -fopenmp' OPENMP_LIB='-lomp' - OPENMP_AVAILABILITY_FLAGS='-DSTOCHTREE_OPENMP_AVAILABLE' # libomp 15.0+ from brew is keg-only (i.e. not symlinked into the standard paths search by the linker), # so need to search in other locations. @@ -104,7 +102,6 @@ then if test "${ac_pkg_openmp}" = no; then OPENMP_CXXFLAGS='' OPENMP_LIB='' - OPENMP_AVAILABILITY_FLAGS='' echo '***********************************************************************************************' echo ' OpenMP is unavailable on this macOS system. stochtree code will run single-threaded as a result.' echo ' To use all CPU cores for training jobs, you should install OpenMP by running' @@ -117,7 +114,6 @@ fi # substitute variables from this script into Makevars.in AC_SUBST(OPENMP_CXXFLAGS) AC_SUBST(OPENMP_LIB) -AC_SUBST(OPENMP_AVAILABILITY_FLAGS) AC_SUBST(STOCHTREE_CPPFLAGS) AC_CONFIG_FILES([src/Makevars]) diff --git a/configure.win b/configure.win index 4bc2a539..3067b374 100644 --- a/configure.win +++ b/configure.win @@ -26,7 +26,7 @@ STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS} -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLE # OpenMP # ########## -STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS} -DSTOCHTREE_OPENMP_AVAILABLE" +STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS} ######################### # Generate Makevars.win # diff --git a/include/stochtree/openmp_utils.h b/include/stochtree/openmp_utils.h index 28ed31fb..78c17234 100644 --- a/include/stochtree/openmp_utils.h +++ b/include/stochtree/openmp_utils.h @@ -6,7 +6,7 @@ namespace StochTree { -#ifdef STOCHTREE_OPENMP_AVAILABLE +#ifdef _OPENMP #include #define STOCHTREE_HAS_OPENMP 1 @@ -40,7 +40,6 @@ inline void set_num_threads(int num_threads) { #else #define STOCHTREE_HAS_OPENMP 0 -// Fallback implementations when OpenMP is not available inline int get_max_threads() {return 1;} inline int get_thread_num() {return 0;} diff --git a/src/Makevars.in b/src/Makevars.in index 4eb970cb..1ebed5de 100644 --- a/src/Makevars.in +++ b/src/Makevars.in @@ -4,7 +4,6 @@ PKGROOT=.. STOCHTREE_CPPFLAGS = \ @STOCHTREE_CPPFLAGS@ \ - @OPENMP_AVAILABILITY_FLAGS@ \ -DSTOCHTREE_R_BUILD PKG_CPPFLAGS = \ From fa783ff27d6cdc1d5f22fc0902fe41da6f4695e4 Mon Sep 17 00:00:00 2001 From: Drew Herren Date: Fri, 21 Nov 2025 17:06:30 -0600 Subject: [PATCH 2/2] Fixed typo in windows configure file --- configure.win | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.win b/configure.win index 3067b374..cf9efa4a 100644 --- a/configure.win +++ b/configure.win @@ -26,7 +26,7 @@ STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS} -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLE # OpenMP # ########## -STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS} +STOCHTREE_CPPFLAGS="${STOCHTREE_CPPFLAGS}" ######################### # Generate Makevars.win #