Xgboost: Как установить версию OpenMP в R (Mac OS)

Созданный на 22 апр. 2016  ·  3Комментарии  ·  Источник: dmlc/xgboost

Привет.

Мне нужна помощь в понимании инструкций по установке версии OpenMP в R (Mac OS). Следующее утверждение меня немного сбивает с толку:

Установите файл Makevars на высшую ступень приоритетности для R.

Дело в том, что есть три Makevars: ~ / .R / Makevars, xgboost / R-package / src / Makevars и /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( последний, полученный при запуске file.path (R.home ("etc"), "Makeconf") в R), и SHLIB_OPENMP_CXXFLAGS не установлен по умолчанию !! Попробовав, кажется, что у первого самый высокий приоритет (сюрприз!).

Что означает "Установить файл Makevars наивысшим приоритетом для R"? Как я могу справиться с приоритетом? Что мне делать, чтобы установить переменную «SHLIB_OPENMP_CXXFLAGS»?

Самый полезный комментарий

В моем случае мне нужно настроить больше CXX чтобы он работал:

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

Все 3 Комментарий

re: Makevars ... Я внес изменения в ~ / .R / Makevars. В дополнение к флагам SHLIB мне пришлось изменить компилятор на "clang-omp". Для компилятора я использовал brew, чтобы установить версию clang, поддерживающую OpenMP.

Я , наконец , получить эту работу, используя следующий код модифицированного от @ jimthompson5802 «s ответа . Код помещается в ~/.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

В моем случае R будет искать в /Library/Frameworks/R.framework/Resources/etc/Makeconf необходимые параметры, не определенные в ~/.R/Makevars . Он попытается найти настройку для CXX1X в Makeconf . Вот откуда компилятор clang++ обнаружил ошибки в моем предыдущем посте .

Я получаю кучу предупреждений [-Wunused-variable] но думаю, все в порядке. На этот раз предупреждения о OpenMP is not available .

Кроме того, поскольку я следовал официальным инструкциям по сборке для mac os, у меня установлен gcc, и с его помощью я ранее успешно построил «основной» xgboost с OpenMP. Таким образом, я предлагаю всем, кто следовал тем же инструкциям, как я, настроить свои Makevars следующим образом.

В моем случае мне нужно настроить больше CXX чтобы он работал:

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
Была ли эта страница полезной?
0 / 5 - 0 рейтинги