xgboost: OpenMP detection is still broken on MacOS

Despite an earlier PR claiming to fix it: https://github.com/dmlc/xgboost/pull/8684 It is still broken, at least with GCC:

checking whether OpenMP will work in a package... no
*****************************************************************************************
         OpenMP is unavailable on this Mac OSX system. Training speed may be suboptimal.
         To use all CPU cores for training jobs, you should install OpenMP by running\n
             brew install libomp

Moreover, it gives a wrong recommendation (libomp is Clang-specific).

P. S. IMO it is a bad wording to use β€œshouldβ€œ for an optional package manager. One does not need any – libomp, while not needed at all with GCC, can be installed directly. Also, there is Macports which has it, not just Homebrew.

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Comments: 26 (10 by maintainers)

Most upvoted comments

@hcho3 @jameslamb I recently learned that there’s an openmp macro in autotools AC_OPENMP. I have tested it works well on Linux (Ubuntu + gcc-11.4), not sure if it can be useful for simplifying the logic.

Regarding the static assert, we can change size_t to uint64_t. The former is implementation defined while the later is standardized. No worries there, we can fix it.

Ah, thank you for sharing.

Thank you for working on this!

@hcho3 would be great if you can have a look when you are available. πŸ˜‰

I’m not sure if we can fix it though, or if the fix is worth the effort. None of us have access to such device, it’s very likely that the next commit will just break it, especially now that xgboost is using c+Β±17 (CRAN is using c+Β±17 by default as well, AFAIK).

Thank you for looking into this. Out of curiosity, is mac ppc still available?

UPD. Tests mostly pass, there is one failure on ppc32, which is a known problem, though it is not immediately obvious how to fix it in this case (malloc errors usually happen with executables; those are caused by duplicate libstdc++ in older macOS with modern GCC installed):

R version 4.2.2 (2022-10-31) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: powerpc-apple-darwin10.8.0 (32-bit)

> library(testthat)
> library(xgboost)
> 
> test_check("xgboost", reporter = ProgressReporter)
βœ” | F W S  OK | Context

⠏ |         0 | basic                                                           
⠏ |         0 | basic functions                                                 
β ‹ |         1 | basic functions                                                 
β Έ |         4 | basic functions                                                 [15:43:36] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β ‡ |         9 | basic functions                                                 
β Ή |        13 | basic functions                                                 [1]	train-rmse:1.678965 
[2]	train-rmse:1.678965 
[3]	train-rmse:1.524624 
[4]	train-rmse:1.441523 
[5]	train-rmse:1.437758 
[6]	train-rmse:1.377895 
[7]	train-rmse:1.305893 
[8]	train-rmse:1.336120 
[9]	train-rmse:1.316072 
[10]	train-rmse:1.316031 
[11]	train-rmse:1.319404 
[12]	train-rmse:1.235097 
[13]	train-rmse:1.225430 
[14]	train-rmse:1.221079 
[15]	train-rmse:1.235220 
[16]	train-rmse:1.219153 
[17]	train-rmse:1.226439 
[18]	train-rmse:1.235026 
[19]	train-rmse:1.244651 
[20]	train-rmse:1.253197 
[21]	train-rmse:1.262494 
[22]	train-rmse:1.272865 
[23]	train-rmse:1.276073 
[24]	train-rmse:1.277040 
[25]	train-rmse:1.287974 
[26]	train-rmse:1.289816 
[27]	train-rmse:1.292365 
[28]	train-rmse:1.282785 
[29]	train-rmse:1.283805 
[30]	train-rmse:1.290661 
[31]	train-rmse:1.289439 
[32]	train-rmse:1.281995 
[15:43:36] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β Έ |        14 | basic functions                                                 [15:43:36] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β ΄ |        16 | basic functions                                                 
β ‡ |        19 | basic functions                                                 [15:43:37] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β ¦ |        27 | basic functions                                                 
β ‡ |        29 | basic functions                                                 
β Ό |        35 | basic functions                                                 [1]	train-error:0.028405 

β ¦ |        37 | basic functions                                                 [15:43:37] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

⠏ |        40 | basic functions                                                 
β ™ |        42 | basic functions                                                 [15:43:37] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β ¦ |        47 | basic functions                                                 
β ‹ |        51 | basic functions                                                 
β ΄ |        56 | basic functions                                                 [1]	train-logloss:0.439409 
[2]	train-logloss:0.299260 
[3]	train-logloss:0.209937 
[4]	train-logloss:0.150151 

β ‡ |        59 | basic functions                                                 
⠏ |        60 | basic functions                                                 
⠏ |        70 | basic functions                                                 [1]	train-logloss:0.233470+0.001565	test-logloss:0.233607+0.004930 
[2]	train-logloss:0.136851+0.001767	test-logloss:0.137010+0.006645 
[1]	train-logloss:0.233482+0.001761	test-logloss:0.233527+0.005591 
[2]	train-logloss:0.136860+0.002158	test-logloss:0.136933+0.007299 

β ‹ |        71 | basic functions                                                 
β ™ |        72 | basic functions                                                 
β Ή |        73 | basic functions                                                 
β Έ |        74 | basic functions                                                 
β ¦ |        77 | basic functions                                                 
β § |        78 | basic functions                                                 
⠏ |        80 | basic functions                                                 [1]	train-logloss:0.380598 
[2]	train-logloss:0.247331 
[3]	train-logloss:0.175047 
[4]	train-logloss:0.122301 
[5]	train-logloss:0.089889 
[1]	train-logloss:0.497338 
[2]	train-logloss:0.357306 
[3]	train-logloss:0.257215 
[4]	train-logloss:0.184518 
[5]	train-logloss:0.132113 

β ™ |        82 | basic functions                                                 
β Έ |        84 | basic functions                                                 [1]	train-error:0.046522	train-auc:0.958228	train-logloss:0.233376 
[2]	train-error:0.022263	train-auc:0.981413	train-logloss:0.136658 

β Ό |        85 | basic functions                                                 [1]	train-merror:0.040000 
[2]	train-merror:0.026667 

β ‡ |        89 | basic functions                                                 [1]	train-error:0.046522	train-auc:0.958228	train-logloss:0.482541 
[2]	train-error:0.046522	train-auc:0.987161	train-logloss:0.359536 
R(48275,0xa0dfb620) malloc: *** mmap(size=840388608) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
R(48275,0xa0dfb620) malloc: *** mmap(size=840388608) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

β Έ | 1      93 | basic functions                                                 
β Ό | 1      94 | basic functions                                                 
βœ– | 1      95 | basic functions [21.9s]
────────────────────────────────────────────────────────────────────────────────
Error ('test_basic.R:461:3'): strict_shape works
Error: cannot allocate vector of size 801.5 Mb
Backtrace:
 1. xgboost (local) test_agaricus()
      at test_basic.R:461:2
 2. xgboost (local) test_strict_shape(bst, X, 1)
      at test_basic.R:457:4
 4. xgboost:::predict.xgb.Booster(...)
 5. base::array(data = ret, dim = rev(shape))
────────────────────────────────────────────────────────────────────────────────

⠏ |         0 | callbacks                                                       
⠏ |         0 | callbacks                                                       
β ‹ |         1 | callbacks                                                       [1]	train-auc:0.900000	test-auc:0.800000 

β ™ |        12 | callbacks                                                       
β ΄ |        26 | callbacks                                                       
⠏ |        30 | callbacks                                                       
β ™ |        32 | callbacks                                                       
β Έ |        34 | callbacks                                                       
β ΄ |        36 | callbacks                                                       
β § |        38 | callbacks                                                       
β ‡ |        39 | callbacks                                                       
β ‹ |        41 | callbacks                                                       
β Ή |        43 | callbacks                                                       
β ‡ |   1    48 | callbacks                                                       
β ™ |   1    51 | callbacks                                                       
β § |   1    57 | callbacks                                                       
β Ή |   1    62 | callbacks                                                       [15:44:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[1]	train-auc:0.829749 
Will train until train_auc hasn't improved in 3 rounds.

[2]	train-auc:0.829749 
[3]	train-auc:0.829749 
[4]	train-auc:0.829749 
Stopping. Best iteration:
[1]	train-auc:0.829749


β ‡ |   1    68 | callbacks                                                       
⠏ |   1    69 | callbacks                                                       
β Ό |   1    74 | callbacks                                                       
β ‡ |   1    78 | callbacks                                                       
β ™ |   1    81 | callbacks                                                       
β Ό |   1    84 | callbacks                                                       
β Ή |   1    92 | callbacks                                                       
βœ” |   1    95 | callbacks [7.4s]
────────────────────────────────────────────────────────────────────────────────
Warning ('test_callbacks.R:196:3'): cb.save.model works as expected
one argument not used by format 'xgboost.json'
Backtrace:
 1. xgboost::xgb.train(...)
      at test_callbacks.R:196:2
 2. xgboost (local) f()
 4. base::sprintf(save_name, env$iteration)
────────────────────────────────────────────────────────────────────────────────

⠏ |         0 | config                                                          
⠏ |         0 | Test global configuration                                       
βœ” |         8 | Test global configuration

⠏ |         0 | custom_objective                                                
⠏ |         0 | Test models with custom objective                               [1]	eval-error:0.042831	train-error:0.046522 
[2]	eval-error:0.021726	train-error:0.022263 

β ‹ |         1 | Test models with custom objective                               
β Ό |         5 | Test models with custom objective                               [1]	eval-error:0.042831	train-error:0.046522 
[2]	eval-error:0.021726	train-error:0.022263 
[3]	eval-error:0.018001	train-error:0.015200 
[4]	eval-error:0.018001	train-error:0.015200 
[5]	eval-error:0.006207	train-error:0.007063 
[6]	eval-error:0.000000	train-error:0.001228 
[7]	eval-error:0.000000	train-error:0.001228 
[8]	eval-error:0.000000	train-error:0.001228 
[9]	eval-error:0.000000	train-error:0.001228 
[10]	eval-error:0.000000	train-error:0.000000 

β § |         8 | Test models with custom objective                               [1]	eval-error:0.042831	train-error:0.046522 
[2]	eval-error:0.021726	train-error:0.022263 

β ‹ |        11 | Test models with custom objective                               
βœ” |        12 | Test models with custom objective [1.8s]

⠏ |         0 | dmatrix                                                         
⠏ |         0 | testing xgb.DMatrix functionality                               
β ΄ |         6 | testing xgb.DMatrix functionality                               
⠏ |        10 | testing xgb.DMatrix functionality                               [15:44:07] 6513x126 matrix with 143286 entries loaded from /opt/local/var/macports/build/_opt_PPCRosettaPorts_R_R-xgboost/R-xgboost/work/.tmp/RtmpDTgQsS/xgb.DMatrix_bc934c89f2d4

β ‹ |        11 | testing xgb.DMatrix functionality                               
β ‹ |        21 | testing xgb.DMatrix functionality                               
β ΄ |   1    25 | testing xgb.DMatrix functionality                               
β Ή |   1    32 | testing xgb.DMatrix functionality                               
β Ό |   1    34 | testing xgb.DMatrix functionality                               
βœ” |   1    40 | testing xgb.DMatrix functionality [1.2s]
────────────────────────────────────────────────────────────────────────────────
Warning ('test_dmatrix.R:82:3'): xgb.DMatrix: getinfo & setinfo
NAs introduced by coercion
Backtrace:
 1. testthat::expect_error(setinfo(dtest, "weight", rep("a", nrow(test_data))))
      at test_dmatrix.R:82:2
 7. xgboost:::setinfo.xgb.DMatrix(dtest, "weight", rep("a", nrow(test_data)))
────────────────────────────────────────────────────────────────────────────────

⠏ |         0 | feature_weights                                                 
⠏ |         0 | feature weights                                                 
β ‹ |         1 | feature weights                                                 
β Ή |         3 | feature weights                                                 
β Ό |         5 | feature weights                                                 
βœ” |         6 | feature weights [1.0s]

⠏ |         0 | gc_safety                                                       
⠏ |         0 | Garbage Collection Safety Check                                 [1]	train-logloss:0.233376 
[2]	train-logloss:0.136658 

β ‹ |         1 | Garbage Collection Safety Check                                 
βœ” |         1 | Garbage Collection Safety Check [80.4s]

⠏ |         0 | glm                                                             
⠏ |         0 | Test generalized linear models                                  
β ‹ |         1 | Test generalized linear models                                  
β ΄ |         6 | Test generalized linear models                                  
β § |         8 | Test generalized linear models                                  
β ‹ |        11 | Test generalized linear models                                  [1]	eval-error:0.002483	train-error:0.004760 
Multiple eval metrics are present. Will use train_error for early stopping.
Will train until train_error hasn't improved in 1 rounds.

[2]	eval-error:0.000621	train-error:0.002610 
[3]	eval-error:0.000000	train-error:0.001842 
[4]	eval-error:0.000000	train-error:0.001228 
[5]	eval-error:0.000000	train-error:0.000614 
[6]	eval-error:0.000000	train-error:0.000614 
Stopping. Best iteration:
[5]	eval-error:0.000000	train-error:0.000614


β ™ |        12 | Test generalized linear models                                  [1]	eval-error:0.002483	train-error:0.004760 
Multiple eval metrics are present. Will use train_error for early stopping.
Will train until train_error hasn't improved in 1 rounds.

[2]	eval-error:0.000621	train-error:0.002610 
[3]	eval-error:0.000000	train-error:0.001842 
[4]	eval-error:0.000000	train-error:0.001228 
[5]	eval-error:0.000000	train-error:0.000614 
[6]	eval-error:0.000000	train-error:0.000614 
Stopping. Best iteration:
[5]	eval-error:0.000000	train-error:0.000614


βœ” |        13 | Test generalized linear models [1.2s]

⠏ |         0 | helpers                                                         
⠏ |         0 | Test helper functions                                           
β ‹ |         1 | Test helper functions                                           [1]	train-logloss:0.636592 

β ™ |        12 | Test helper functions                                           
β ΄ |        26 | Test helper functions                                           
β ‹ |        31 | Test helper functions                                           [1]	train-rmse:1.940066 
[2]	train-rmse:1.560864 
[3]	train-rmse:1.277414 
[4]	train-rmse:1.068562 
[5]	train-rmse:0.903897 
[6]	train-rmse:0.763228 
[7]	train-rmse:0.664924 
[8]	train-rmse:0.570358 
[9]	train-rmse:0.507416 
[10]	train-rmse:0.458599 
[11]	train-rmse:0.394349 
[12]	train-rmse:0.355794 
[13]	train-rmse:0.305484 
[14]	train-rmse:0.271176 
[15]	train-rmse:0.259943 
[16]	train-rmse:0.238429 
[17]	train-rmse:0.228003 
[18]	train-rmse:0.212117 
[19]	train-rmse:0.187830 
[20]	train-rmse:0.173381 
[21]	train-rmse:0.164001 
[22]	train-rmse:0.156113 
[23]	train-rmse:0.143242 
[24]	train-rmse:0.130215 
[25]	train-rmse:0.120160 
[26]	train-rmse:0.112119 
[27]	train-rmse:0.104753 
[28]	train-rmse:0.096786 
[29]	train-rmse:0.089361 
[30]	train-rmse:0.083706 

β ΄ |        46 | Test helper functions                                           
β ‹ |        71 | Test helper functions                                           
β ‡ |        99 | Test helper functions                                           
β ΄ |       126 | Test helper functions                                           
⠏ |       150 | Test helper functions                                           
β ‡ |       179 | Test helper functions                                           
β Ή |       203 | Test helper functions                                           
β § |       228 | Test helper functions                                           [1]	train-rmse:1.940066 
[2]	train-rmse:1.675038 
[3]	train-rmse:1.462383 
[4]	train-rmse:1.283198 
[5]	train-rmse:1.155542 
[6]	train-rmse:1.049559 
[7]	train-rmse:0.942910 
[8]	train-rmse:0.859371 
[9]	train-rmse:0.774970 
[10]	train-rmse:0.725452 
[11]	train-rmse:0.679127 
[12]	train-rmse:0.628614 
[13]	train-rmse:0.594549 
[14]	train-rmse:0.535545 
[15]	train-rmse:0.485624 
[16]	train-rmse:0.460187 
[17]	train-rmse:0.413632 
[18]	train-rmse:0.403692 
[19]	train-rmse:0.385314 
[20]	train-rmse:0.366653 
[21]	train-rmse:0.354532 
[22]	train-rmse:0.326526 
[23]	train-rmse:0.316875 
[24]	train-rmse:0.301910 
[25]	train-rmse:0.285458 
[26]	train-rmse:0.275437 
[27]	train-rmse:0.267556 
[28]	train-rmse:0.263727 
[29]	train-rmse:0.253460 
[30]	train-rmse:0.235433 

β § |       248 | Test helper functions                                           
β Έ |       274 | Test helper functions                                           
⠏ |       300 | Test helper functions                                           
β Ό |       325 | Test helper functions                                           
β ™ |       352 | Test helper functions                                           
β ‡ |       379 | Test helper functions                                           
β ΄ |       406 | Test helper functions                                           
β Ό |       435 | Test helper functions                                           
β ™ |       452 | Test helper functions                                           
β Έ |       464 | Test helper functions                                           
β ‡ |       479 | Test helper functions                                           
β Ό |       495 | Test helper functions                                           
⠏ |       510 | Test helper functions                                           
β ΄ |       526 | Test helper functions                                           
β ™ |       542 | Test helper functions                                           
β § |       558 | Test helper functions                                           
β Ό |       575 | Test helper functions                                           
β ‹ |       591 | Test helper functions                                           
β ¦ |       607 | Test helper functions                                           
β ™ |       622 | Test helper functions                                           
β ‡ |       639 | Test helper functions                                           
β ΄ |       656 | Test helper functions                                           
β Ό |       665 | Test helper functions                                           
β § |       668 | Test helper functions                                           
⠏ |       670 | Test helper functions                                           
β Ή |       673 | Test helper functions                                           
⠏ |       680 | Test helper functions                                           
β ‹ |       681 | Test helper functions                                           
β ™ |       682 | Test helper functions                                           [1]	train-rmse:0.943398 

β Έ |       684 | Test helper functions                                           
β ‹ |       691 | Test helper functions                                           
β ΄ |       696 | Test helper functions                                           
β ¦ |       697 | Test helper functions                                           
β § |     1 697 | Test helper functions                                           
β ‡ |     1 698 | Test helper functions                                           
⠏ |     1 699 | Test helper functions                                           
β ¦ |     1 706 | Test helper functions                                           
β Ή |     1 712 | Test helper functions                                           
β Έ |     1 713 | Test helper functions                                           
β Ό |     1 714 | Test helper functions                                           
β § |     1 717 | Test helper functions                                           
β ΄ |     1 745 | Test helper functions                                           
βœ” |     1 745 | Test helper functions [16.5s]
────────────────────────────────────────────────────────────────────────────────
Skip ('test_helpers.R:386:1'): xgb.plot.multi.trees works with and without feature names
Reason: empty test
────────────────────────────────────────────────────────────────────────────────

⠏ |         0 | interaction_constraints                                         
⠏ |         0 | interaction constraints                                         
β ‹ |         1 | interaction constraints                                         
β ™ |         2 | interaction constraints                                         
βœ” |         2 | interaction constraints [29.9s]

⠏ |         0 | interactions                                                    
⠏ |         0 | Test prediction of feature interactions                         
β ‹ |         1 | Test prediction of feature interactions                         
β Έ |         4 | Test prediction of feature interactions                         
β Ό |         5 | Test prediction of feature interactions                         
β ‹ |        11 | Test prediction of feature interactions                         
β Ή |        13 | Test prediction of feature interactions                         
β Ό |        15 | Test prediction of feature interactions                         [1]	train-logloss:0.482541 
[2]	train-logloss:0.359536 
[3]	train-logloss:0.279935 
[4]	train-logloss:0.218599 

β § |        18 | Test prediction of feature interactions                         
βœ” |        19 | Test prediction of feature interactions [9.0s]

⠏ |         0 | io                                                              
⠏ |         0 | Test model IO.                                                  [1]	train-logloss:0.439409 
[2]	train-logloss:0.299260 
[3]	train-logloss:0.209937 
[4]	train-logloss:0.150151 
[5]	train-logloss:0.108673 
[6]	train-logloss:0.079348 
[7]	train-logloss:0.058385 
[8]	train-logloss:0.043147 

β ‹ |         1 | Test model IO.                                                  
βœ” |         2 | Test model IO. [0.5s]

⠏ |         0 | model_compatibility                                             
⠏ |         0 | Models from previous versions of XGBoost can be loaded          
β ‹ |         1 | Models from previous versions of XGBoost can be loaded          
β ¦ |         7 | Models from previous versions of XGBoost can be loaded          
β § |         8 | Models from previous versions of XGBoost can be loaded          
β ‹ |        21 | Models from previous versions of XGBoost can be loaded          
β Ό |        35 | Models from previous versions of XGBoost can be loaded          
β § |        48 | Models from previous versions of XGBoost can be loaded          
β ‹ |        61 | Models from previous versions of XGBoost can be loaded          
β Ό |        75 | Models from previous versions of XGBoost can be loaded          
⠏ |        90 | Models from previous versions of XGBoost can be loaded          
β Ή |       103 | Models from previous versions of XGBoost can be loaded          
β ΄ |       116 | Models from previous versions of XGBoost can be loaded          
β ΄ |       126 | Models from previous versions of XGBoost can be loaded          
β Ή |       143 | Models from previous versions of XGBoost can be loaded          
β ΄ |       156 | Models from previous versions of XGBoost can be loaded          
β Ό |       165 | Models from previous versions of XGBoost can be loaded          
β § |       178 | Models from previous versions of XGBoost can be loaded          
⠏ |       190 | Models from previous versions of XGBoost can be loaded          
β ‹ |       201 | Models from previous versions of XGBoost can be loaded          
⠏ |       210 | Models from previous versions of XGBoost can be loaded          
β ‹ |       221 | Models from previous versions of XGBoost can be loaded          
βœ” |       233 | Models from previous versions of XGBoost can be loaded [5.9s]

⠏ |         0 | monotone                                                        
⠏ |         0 | monotone constraints                                            
β ‹ |         1 | monotone constraints                                            
βœ” |         1 | monotone constraints [0.2s]

⠏ |         0 | parameter_exposure                                              
⠏ |         0 | Test model params and call are exposed to R                     
β ‹ |         1 | Test model params and call are exposed to R                     
βœ” |         6 | Test model params and call are exposed to R [0.3s]

⠏ |         0 | poisson_regression                                              
⠏ |         0 | Test Poisson regression model                                   
βœ” |         3 | Test Poisson regression model

⠏ |         0 | ranking                                                         
⠏ |         0 | Learning to rank                                                [1]	train-auc:0.575000	train-aucpr:0.550000 
[2]	train-auc:0.650000	train-aucpr:0.700000 
[3]	train-auc:0.725000	train-aucpr:0.850000 
[4]	train-auc:0.800000	train-aucpr:1.000000 
[5]	train-auc:0.800000	train-aucpr:1.000000 
[6]	train-auc:0.800000	train-aucpr:1.000000 
[7]	train-auc:0.800000	train-aucpr:1.000000 
[8]	train-auc:0.800000	train-aucpr:1.000000 
[9]	train-auc:0.800000	train-aucpr:1.000000 
[10]	train-auc:0.800000	train-aucpr:1.000000 
[1]	train-auc:0.575000	train-aucpr:0.550000 
[2]	train-auc:0.650000	train-aucpr:0.700000 
[3]	train-auc:0.725000	train-aucpr:0.850000 
[4]	train-auc:0.725000	train-aucpr:0.850000 
[5]	train-auc:0.725000	train-aucpr:0.850000 
[6]	train-auc:0.725000	train-aucpr:0.850000 
[7]	train-auc:0.725000	train-aucpr:0.850000 
[8]	train-auc:0.800000	train-aucpr:1.000000 
[9]	train-auc:0.800000	train-aucpr:1.000000 
[10]	train-auc:0.800000	train-aucpr:1.000000 

β Ή |         3 | Learning to rank                                                [15:46:33] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:33] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

β ‡ |         9 | Learning to rank                                                [15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
[15:46:34] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.

βœ” |        14 | Learning to rank [0.3s]

⠏ |         0 | update                                                          
⠏ |         0 | update trees in an existing model                               [15:46:34] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β ‹ |         1 | update trees in an existing model                               [15:46:35] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β Ή |         3 | update trees in an existing model                               [15:46:35] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β ¦ |         7 | update trees in an existing model                               [15:46:35] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β ‡ |         9 | update trees in an existing model                               [15:46:35] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β Ό |        15 | update trees in an existing model                               [15:46:35] WARNING: src/gbm/gbtree.cc:84: DANGER AHEAD: You have manually specified `updater` parameter. The `tree_method` parameter will be ignored. Incorrect sequence of updaters will produce undefined behavior. For common uses, we recommend using `tree_method` parameter instead.

β ‡ |        19 | update trees in an existing model                               
βœ” |        22 | update trees in an existing model [1.8s]

══ Results ═════════════════════════════════════════════════════════════════════
Duration: 180.5 s

── Skipped tests  ──────────────────────────────────────────────────────────────
β€’ empty test (1)

[ FAIL 1 | WARN 2 | SKIP 1 | PASS 1317 ]
Error: Test failures
Execution halted

I will look into this a bit more. In most cases these are fixable. (It was quite bad initially due to R itself, but I have fixed it, now they almost never show up with R packages.)

P. S. This is without OpenMP, but it is inconsequential for the issue.

@barracuda156 Thanks for raising the issue. As you noticed, currently XGBoost has only been tested with the Apple Clang + Homebrew combination. It will be great if you can make it work with Macports.

Thank you for raising an issue! As suggested by @jameslamb , would be great if you can submit a fix, your expertise in this area is really appreciated.

Thanks for tagging me and for the additional details. Are you interested inusing your knowledge of this area to improve the prpject by opening a pull request? If not @trivialfis I’d be happy to look into this in a few days.

@jameslamb Thank you for responding! I am interested to have this fixed so that we can have xgboost for R in Macports. Allow me a day, perhaps, I need to make sure build is fixed (which includes 32-bit) and tests pass, and then figure out how to amend OpenMP checks so that they work for a) GCC and Clang and b) Homebrew and Macports cases.

Thanks for tagging me and for the additional details. Are you interested in using your knowledge of this area to improve the project by opening a pull request? If not @trivialfis I’d be happy to look into this in a few days.