Xgboost: Comment installer la version OpenMP dans R (Mac OS)

Créé le 22 avr. 2016  ·  3Commentaires  ·  Source: dmlc/xgboost

Les salutations.

J'ai besoin d'aide pour comprendre les instructions d'installation de la version OpenMP sous R (Mac OS). La déclaration suivante est assez confuse pour moi :

Définissez le fichier Makevars dans la priorité la plus élevée pour R.

Le fait est qu'il existe trois Makevars : ~/.R/Makevars, xgboost/R-package/src/Makevars et /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( le dernier obtenu en exécutant file.path(R.home("etc"), "Makeconf") dans R), et SHLIB_OPENMP_CXXFLAGS n'est pas défini par défaut !! Après avoir essayé, il semble que le premier ait la priorité la plus élevée (surprise !).

Qu'est-ce que cela signifie par "Définir le fichier Makevars dans la priorité la plus élevée pour R" ? Comment gérer la priorité ? Que dois-je faire pour définir la variable "SHLIB_OPENMP_CXXFLAGS" ?

Commentaire le plus utile

Dans mon cas, je dois configurer plus de CXX pour que cela fonctionne :

CC=gcc-7
CXX=g++-7
CXX1X=g++-7
CXX11=g++-7
CXX14=g++-7
CXX17=g++-7

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp

Tous les 3 commentaires

re: Makevars... J'ai fait les changements dans ~/.R/Makevars. En plus des drapeaux SHLIB, j'ai dû changer de compilateur en "clang-omp". Pour le compilateur, j'ai utilisé brew pour installer la version de clang prenant en charge OpenMP.

Je fais enfin fonctionner cela en utilisant le code suivant modifié à partir de la réponse de @jimthompson5802 . Le code est mis dans ~/.R/Makevars :

CC=gcc-5
CXX=g++-5
CXX1X = g++-5

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp

Dans mon cas, R rechercherait /Library/Frameworks/R.framework/Resources/etc/Makeconf les paramètres nécessaires non définis dans ~/.R/Makevars . Il essaierait de trouver le paramètre pour CXX1X dans Makeconf . C'est donc de là que vient le clang++ dans les erreurs de mon message précédent .

Je reçois un tas d'avertissements [-Wunused-variable] mais je suppose que ça va. Pas d'avertissement OpenMP is not available cette fois.

De plus, depuis que j'ai suivi les instructions de construction officielles pour mac os, j'ai installé gcc et avec lui j'ai réussi à construire le xgboost "principal" avec OpenMP auparavant. Ainsi, je suggère à tous ceux qui ont suivi les mêmes instructions que moi Makevars configurer leur

Dans mon cas, je dois configurer plus de CXX pour que cela fonctionne :

CC=gcc-7
CXX=g++-7
CXX1X=g++-7
CXX11=g++-7
CXX14=g++-7
CXX17=g++-7

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp
Cette page vous a été utile?
0 / 5 - 0 notes