Xgboost: OpenMPバージョンをR(Mac OS)にインストールする方法

作成日 2016年04月22日  ·  3コメント  ·  ソース: dmlc/xgboost

ご挨拶。

R(Mac OS)にOpenMPバージョンをインストールする手順を理解するのに助けが必要です。 次のステートメントは、私を混乱させる静かなものです。

MakevarsファイルをRの最高優先度に設定します。

重要なのは、3つのMakevarがあります:〜/ .R / Makevars、xgboost / R-package / src / Makevars、および/usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf( R)でfile.path(R.home( "etc")、 "Makeconf")を実行して取得した最後のもので、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を使用してOpenMPをサポートするバージョンのclangをインストールしました。

@ jimthompson5802回答から変更された次のコードを使用して、最終的にこれを機能させることができ~/.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定義されていない必要なパラメーターを探します。 MakeconfCXX1Xの設定を見つけようとします。 これが、以前の投稿のエラーでclang++コンパイラが発生した場所です。

たくさんの[-Wunused-variable]警告が表示されますが、問題ないと思います。 今回はOpenMP is not available警告はありません。

また、mac osの公式のビルド手順に従っているので、gccをインストールし、それを使用して、以前にOpenMPで「メイン」xgboostを正常にビルドしました。 したがって、私のように同じ指示に従った人には、 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 評価