Data.table: [Запрос] Проверка совместимости компилятора с `-fopenmp` перед использованием `SHLIB_OPENMP_CFLAGS`

Созданный на 12 мая 2017  ·  3Комментарии  ·  Источник: Rdatatable/data.table

Это позволит установить data.table в системах/компиляторах, которые не поддерживают openmp, даже если файл Makeconf сайта определяет SHLIB_OPENMP_CFLAGS . Это относится к macOS начиная с R 3.4.0 с компилятором clang по умолчанию.

Что-то вроде следующего должно быть достаточно, обратите внимание, что ifeq является расширением GNU make, поэтому его нужно будет отметить в вашем DESCRIPTION

``` оболочка
CXX11=$(оболочка "${R_HOME}"/bin/R CMD config CXX11)
ifeq ($(shell $(CXX11) -fopenmp -E -xc++ - 2>&1 >/dev/null && echo 'true'), true)
PKG_CFLAGS=$(SHLIB_OPENMP_CFLAGS)
PKG_LIBS=$(SHLIB_OPENMP_CFLAGS)
конец

Самый полезный комментарий

Просто обратите внимание, что это все еще вызывает проблемы (например, это новое в сообществе R), особенно после нового выпуска, когда CRAN еще не создал двоичный файл. Теперь, когда вы используете скрипт configure (https://github.com/Rdatatable/data.table/pull/3951), возможно, стоит добавить этот тест в скрипт configure, чтобы компиляция работала с собственным набором инструментов macOS (хотя и без распараллеливание).

Все 3 Комментарий

Эта проблема в настоящее время блокирует использование data.table на Mac с версией разработки R , которая, в свою очередь, блокирует ряд других пакетов и, в свою очередь, разработку и обновление пакетов:

> sessionInfo()
R Under development (unstable) (2017-05-26 r72742)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.5

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets 
[6] methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.0 tools_3.5.0   

Просто обратите внимание, что это все еще вызывает проблемы (например, это новое в сообществе R), особенно после нового выпуска, когда CRAN еще не создал двоичный файл. Теперь, когда вы используете скрипт configure (https://github.com/Rdatatable/data.table/pull/3951), возможно, стоит добавить этот тест в скрипт configure, чтобы компиляция работала с собственным набором инструментов macOS (хотя и без распараллеливание).

@jimhester Спасибо за заметку. Я думал, что он уже работает с компиляторами без openmp, и это проверено в CRAN_Release.cmd здесь: https://github.com/Rdatatable/data.table/blob/b2d618ce291a50872e10fc1ca7137faa8484005a/.dev/CRAN_Release.cmd#L183. Но очевидно, что я ошибаюсь, и этого недостаточно. Я постараюсь понять, что вы говорите и предлагаете.

Меня немного расстраивают заявления пользователей о том, что data.table что-то блокирует. Проблема именно в MacOS... почему он не включает openmp по умолчанию? Все это работает гладко на Linux и Windows.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги