ご挨拶。
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」変数を設定するにはどうすればよいですか?
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
定義されていない必要なパラメーターを探します。 Makeconf
でCXX1X
の設定を見つけようとします。 これが、以前の投稿のエラーで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
最も参考になるコメント
私の場合、それを機能させるには、さらに
CXX
を設定する必要があります。