У меня есть пакет R, который легко ускоряется с помощью OpenMP. Если ваш компилятор поддерживает его, вы получаете выигрыш, а если нет, то прагмы игнорируются, и вы получаете одно ядро.
Моя проблема в том, как заставить систему сборки пакетов использовать правильные параметры компилятора и библиотеки. В настоящее время у меня есть:
PKG_CPPFLAGS=-fopenmp
PKG_LIBS=-fopenmp
жестко запрограммирован в src / Makevars на моей машине, и это создается с поддержкой OpenMP. Но он выдает предупреждение о нестандартных флагах компилятора при проверке и, вероятно, сильно провалится на машине без возможностей openMP.
Решение, похоже, заключается в использовании configure и autoconf. Здесь есть некоторая информация:
http://cran.r -project.org / DOC / Инструкции / R-exts.html # Использование-Makevars
включая сложный пример компиляции в функциональности odbc. Но я не вижу, как начать настраивать это, чтобы проверить openmp и libgomp.
Ни один из пакетов R, о которых я рассказывал в этом разговоре об использовании openMP, похоже, тоже не настроен.
Так есть ли у кого-нибудь пошаговое руководство по настройке пакета R с OpenMP?
[EDIT] * * тысячу двадцать-один
Возможно, я взломал это сейчас. У меня есть скрипт configure.ac и Makevars.in с заменами @ FOO @ для параметров компилятора. Но сейчас я не уверен в рабочем процессе. Это:
- Запустите «autoconf configure.in> configure; chmod 755 configure», если я изменю файл configure.in.
- Сборка пакета.
- При установке пакета система запускается для меня ./configure и создает Makevars из Makevars.in
Но для ясности, "autoconf configure.in> configure" не запускается при установке пакета - это просто процесс разработчика, который создает сценарий конфигурации, который распространяется - amirite?