Xgboost: So installieren Sie die OpenMP-Version in R (Mac OS)

Erstellt am 22. Apr. 2016  ·  3Kommentare  ·  Quelle: dmlc/xgboost

Grüße.

Ich benötige Hilfe beim Verständnis der Anweisungen zur Installation der OpenMP-Version in R (Mac OS). Die folgende Aussage ist für mich ziemlich verwirrend:

Setzen Sie die Makevars-Datei auf die höchste Priorität für R.

Der Punkt ist, dass es drei Makevars gibt: ~/.R/Makevars, xgboost/R-package/src/Makevars und /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( der letzte, der durch Ausführen von file.path(R.home("etc"), "Makeconf") in R) erhalten wurde, und SHLIB_OPENMP_CXXFLAGS ist standardmäßig nicht gesetzt!! Nach dem Versuch scheint der erste die höchste Priorität zu haben (Überraschung!).

Was bedeutet "Setzen Sie die Makevars-Datei in höchster Priorität für R"? Wie kann ich mit der Priorität umgehen? Was muss ich tun, um die Variable "SHLIB_OPENMP_CXXFLAGS" zu setzen?

Hilfreichster Kommentar

In meinem Fall muss ich mehr CXX einrichten, damit es funktioniert:

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

Alle 3 Kommentare

re: Makevars...Ich habe die Änderungen in ~/.R/Makevars vorgenommen. Zusätzlich zu den SHLIB-Flags musste ich den Compiler auf "clang-omp" umstellen. Für den Compiler habe ich brew verwendet, um die Version von clang zu installieren, die OpenMP unterstützt.

Ich bekomme dies endlich zum Laufen , indem ich den folgenden Code verwende, der aus der Antwort von @jimthompson5802 geändert wurde. Der Code wird in ~/.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

In meinem Fall würde R /Library/Frameworks/R.framework/Resources/etc/Makeconf nach notwendigen Parametern durchsuchen, die in ~/.R/Makevars . Es würde versuchen, die Einstellung für CXX1X in Makeconf . Daher kommen die clang++ Compiler in den Fehlern in meinem vorherigen Beitrag .

Ich bekomme eine Menge [-Wunused-variable] Warnungen, aber ich denke, es ist in Ordnung. Diesmal keine OpenMP is not available Warnung.

Da ich auch die offiziellen Bauanleitungen für mac os befolgt habe, habe ich gcc installiert und damit den "main" xgboost mit OpenMP erfolgreich gebaut. Daher empfehle ich jedem, der die gleichen Anweisungen wie ich befolgt hat, seine Makevars einzurichten.

In meinem Fall muss ich mehr CXX einrichten, damit es funktioniert:

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
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen