Xgboost: Como instalar a versão OpenMP em R (Mac OS)

Criado em 22 abr. 2016  ·  3Comentários  ·  Fonte: dmlc/xgboost

Saudações.

Preciso de ajuda para entender as instruções de instalação da versão OpenMP em R (Mac OS). A seguinte afirmação é bastante confusa para mim:

Defina o arquivo Makevars na prioridade mais alta para R.

A questão é que existem três Makevars: ~ / .R / Makevars, xgboost / R-package / src / Makevars e /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( o último obtido executando file.path (R.home ("etc"), "Makeconf") em R), e SHLIB_OPENMP_CXXFLAGS não é definido por padrão !! Depois de tentar, parece que o primeiro tem maior pioridade (surpresa!).

O que significa "Definir o arquivo Makevars na prioridade mais alta para R"? Como posso lidar com a prioridade? O que devo fazer para definir a variável "SHLIB_OPENMP_CXXFLAGS"?

Comentários muito úteis

No meu caso, tenho que configurar mais CXX para fazer funcionar:

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

Todos 3 comentários

re: Makevars ... Fiz as alterações em ~ / .R / Makevars. Além dos sinalizadores SHLIB, tive que mudar para compilador para "clang-omp". Para o compilador, usei o brew para instalar a versão do clang compatível com OpenMP.

Finalmente consegui fazer isso funcionar usando o seguinte código modificado da resposta de @ jimthompson5802 . O código é colocado em ~/.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

No meu caso, R procuraria /Library/Frameworks/R.framework/Resources/etc/Makeconf por parâmetros necessários indefinidos em ~/.R/Makevars . Ele tentaria encontrar a configuração de CXX1X em Makeconf . Então é daí que vem o complier clang++ nos erros do meu post anterior .

Recebo vários avisos de [-Wunused-variable] mas acho que não tem problema. Sem aviso OpenMP is not available desta vez.

Além disso, como segui as instruções oficiais de construção para mac os, instalei o gcc e com ele construí com sucesso o xgboost "principal" com OpenMP antes. Portanto, sugiro que qualquer pessoa que tenha seguido as mesmas instruções como eu tenha seus Makevars configurados desta forma.

No meu caso, tenho que configurar mais CXX para fazer funcionar:

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
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

lizsz picture lizsz  ·  3Comentários

wenbo5565 picture wenbo5565  ·  3Comentários

XiaoxiaoWang87 picture XiaoxiaoWang87  ·  3Comentários

trivialfis picture trivialfis  ·  3Comentários

ivannz picture ivannz  ·  3Comentários