Xgboost: Cara menginstal versi OpenMP di R (Mac OS)

Dibuat pada 22 Apr 2016  ·  3Komentar  ·  Sumber: dmlc/xgboost

Salam pembuka.

Saya butuh bantuan dalam memahami instruksi untuk menginstal versi OpenMP di R (Mac OS). Pernyataan berikut ini cukup membingungkan bagi saya:

Atur file Makevars dalam prioritas tertinggi untuk R.

Intinya ada tiga Makevars : ~/.R/Makevars, xgboost/R-package/src/Makevars, dan /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( yang terakhir diperoleh dengan menjalankan file.path(R.home("etc"), "Makeconf") di R), dan SHLIB_OPENMP_CXXFLAGS tidak disetel secara default!! Setelah mencoba, tampaknya yang pertama memiliki prioritas tertinggi (kejutan!).

Apa yang dimaksud dengan "Setel file Makevars dalam prioritas tertinggi untuk R"? Bagaimana saya bisa menangani prioritas? Apa yang harus saya lakukan untuk mengatur variabel "SHLIB_OPENMP_CXXFLAGS"?

Komentar yang paling membantu

Dalam kasus saya, saya harus menyiapkan lebih banyak CXX untuk membuatnya berfungsi:

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

Semua 3 komentar

re: Makevars...Saya membuat perubahan di ~/.R/Makevars. Selain flag SHLIB, saya harus mengubah compiler menjadi "clang-omp". Untuk kompiler saya menggunakan brew untuk menginstal versi dentang yang mendukung OpenMP.

Saya akhirnya mendapatkan ini untuk bekerja dengan menggunakan kode berikut dimodifikasi dari @ jimthompson5802 's jawaban . Kode dimasukkan ke dalam ~/.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

Dalam kasus saya R akan mencari /Library/Frameworks/R.framework/Resources/etc/Makeconf untuk parameter yang diperlukan tidak terdefinisi dalam ~/.R/Makevars . Itu akan mencoba menemukan pengaturan untuk CXX1X di Makeconf . Jadi dari situlah kompiler clang++ berasal dari kesalahan di posting saya

Saya mendapatkan banyak peringatan [-Wunused-variable] tapi saya rasa itu baik-baik saja. Tidak ada peringatan OpenMP is not available kali ini.

Juga karena saya telah mengikuti instruksi pembuatan resmi untuk mac os, saya telah menginstal gcc dan dengan itu saya berhasil membangun xgboost "utama" dengan OpenMP sebelumnya. Jadi saya menyarankan untuk siapa saja yang telah mengikuti instruksi yang sama seperti saya untuk mengatur Makevars mereka seperti ini.

Dalam kasus saya, saya harus menyiapkan lebih banyak CXX untuk membuatnya berfungsi:

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
Apakah halaman ini membantu?
0 / 5 - 0 peringkat