OpenMP, R и MacOS

поэтому я пытаюсь запустить пакет под названием BTYDplus когда я загружаю его, я получил это предупреждение

This data.table install has not detected OpenMP support. It will work but slower in single threaded mode.

Я могу запустить его без OpenMP, но он очень медленный, поэтому я попытался установить openMP, следуя этому руководству http://thecoatlessprofessor.com/programming/openmp-in-r-on-os-x/ но я приклеился к части Enabling R to Compile Code with OpenMP on OS X, особенно когда я пытаюсь запустить vim ~/.R/Makevars/. Это привело к "~/.R/Makevars/" Illegal file name.

любое предложение о том, как указать R использовать GCC?

Ответ 1

Если вы используете clang для компиляции кода OpenMP, вам понадобится libomp. Я нашел самый простой способ получить это через доморощенный с помощью brew install libomp.

Ответ 2

Хотя можно получить компиляцию openmp, работающую на Mac Sierra, путем обновления clang (не уверен, что новые версии MacOS исправили это, обновив clang), как в разделе "Включить поддержку OpenMP" в Mac OS X (sierra), также возможно заставить Apple clang работать. Просто добавьте следующее в ~/.R/Makevars

SHLIB_OPENMP_CFLAGS=-Xpreprocessor -fopenmp
SHLIB_OPENMP_CXXFLAGS=-Xpreprocessor -fopenmp

Это позволяет использовать специальные пакеты CXX/CFLAGS R, которые следует использовать при компиляции пакетов OpenMP, и что

Apple Clang позволяет обрабатывать прагмы OpenMP с помощью -Xpreprocessor -fopenmp, а затем вы можете вручную ссылаться на библиотеку OpenMP.

Подробнее здесь.