์ธ์ฌ๋ง.
R(Mac OS)์ OpenMP ๋ฒ์ ์ ์ค์นํ๊ธฐ ์ํ ์ง์นจ์ ์ดํดํ๋ ๋ฐ ๋์์ด ํ์ํฉ๋๋ค. ๋ค์ ์ง์ ์ ๋์๊ฒ ์กฐ์ฉํ๊ณ ํผ๋์ค๋ฌ์ด ๊ฒ์ ๋๋ค.
Makevars ํ์ผ์ R์ ๋ํด ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ก ์ค์ ํฉ๋๋ค.
์์ ์ ~/.R/Makevars, xgboost/R-package/src/Makevars ๋ฐ /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf์ ์ธ ๊ฐ์ง Makevar๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. file.path(R.home("etc"), "Makeconf") in R) ๋ฐ SHLIB_OPENMP_CXXFLAGS๋ฅผ ์คํํ์ฌ ์ป์ ๋ง์ง๋ง ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋์ด ์์ง ์์ต๋๋ค!! ์๋ํ ํ ์ฒซ ๋ฒ์งธ ๊ฒ์ด ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค(๋๋์ต๋๋ค!).
"R์ ๋ํด Makevars ํ์ผ์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ก ์ค์ "์ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ์ฐ์ ์์๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๊น? "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
ํฉ๋๋ค. CXX1X
์์ 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
๋ฅผ ๋ ์ค์ ํด์ผ ํฉ๋๋ค.