updater scikit objective nthread library learn example python macos gcc xgboost

objective - xgboost python scikit learn



clang: error:: errorunsupported opciĆ³n ''-fopenmp'' en Mac OSX El Capitan building XGBoost (3)

Estoy intentando XGBoost paquete XGBoost para Python siguiendo estas instrucciones :

Aquí está la solución completa para usar compiladores habilitados para OpenMP para instalar XGBoost. Obtenga gcc-5.xx con soporte para openmp preparando brew install gcc --without-multilib . (brew es el estándar de facto de apt-get en OS X. Por lo tanto, no se recomienda instalar HPC por separado, pero debería funcionar.):

git clone --recursive https://github.com/dmlc/xgboost cd xgboost; cp make/config.mk ./config.mk; make -j4

Este error ocurre precisamente en el comando make -j4 .

Buscando antes, he intentado estas dos soluciones ( 1 y 2 ), sin éxito, a excepción de la parte para instalar otro gcc por temor a estropearlo todo.

A continuación se muestra el archivo de configuración de make . No tiene nada sospechoso.

#----------------------------------------------------- # xgboost: the configuration compile script # # If you want to change the configuration, please use the following # steps. Assume you are on the root directory of xgboost. # First copy the this file so that any local changes will be ignored by git # # $ cp make/config.mk . # # Next modify the according entries, and then compile by # # $ make # # or build in parallel with 8 threads # # $ make -j8 #---------------------------------------------------- # choice of compiler, by default use system preference. # export CC = gcc # export CXX = g++ # export MPICXX = mpicxx # the additional link flags you want to add ADD_LDFLAGS = # the additional compile flags you want to add ADD_CFLAGS = # Whether enable openmp support, needed for multi-threading. USE_OPENMP = 1 # whether use HDFS support during compile USE_HDFS = 0 # whether use AWS S3 support during compile USE_S3 = 0 # whether use Azure blob support during compile USE_AZURE = 0 # Rabit library version, # - librabit.a Normal distributed version. # - librabit_empty.a Non distributed mock version, LIB_RABIT = librabit.a # path to libjvm.so LIBJVM=$(JAVA_HOME)/jre/lib/amd64/server # List of additional plugins, checkout plugin folder. # uncomment the following lines to include these plugins # you can also add your own plugin like this # # XGB_PLUGINS += plugin/example/plugin.mk


Instaló gcc con Homebrew, pero el error es de clang . Eso debería significar simplemente que su compilador predeterminado todavía apunta a clang lugar del gcc recién instalado. Si lees los comentarios en el Makefile, verás las siguientes líneas:

# choice of compiler, by default use system preference. # export CC = gcc # export CXX = g++ # export MPICXX = mpicxx

y en tu caso, no quieres el sistema uno.
Nota: gcc para el sistema apunta a clang :

$ which gcc /usr/bin/gcc $ gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 7.3.0 (clang-703.0.29) Target: x86_64-apple-darwin15.4.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

En su lugar, apunte esas variables a algo en /usr/local/bin , por ejemplo:

$ export CC=/usr/local/bin/gcc

y similar para las otras dos variables, CXX y MPICXX , por ejemplo:

$ export CC=/usr/local/bin/gcc;CXX=/usr/local/bin/g++;MPICXX=/usr/local/bin/mpicxx


Para resolver este problema, hice lo siguiente: Me di cuenta de que tenía instalado gcc 6, así que corrí:

export CC=gcc-6

Pero no funcionó solo, así que también tuve que:

export CXX=g++-6

Esto lo resolvió para mí. Estoy en un Macbook Pro ejecutando macOS Sierra. También puede hacer esos cambios directamente en Makefile de XGBoost si lo desea. Para obtener más información sobre esto: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_on_Mac_OSX?lang=en


Señor, tal vez debería usar

cd xgboost; cp make / minimum.mk ./config.mk; hacer -j4

en lugar de

cd xgboost; cp make / config.mk ./config.mk; hacer -j4

según la sección "Construir en OSX" del documento de compilación