У меня есть проприетарная библиотека (> 150 000 строк) кода C ++ квантовой механики, которая использует OpenMP для параллелизации. Этот код использовался для хорошей компиляции с Xcode 4.6 и его «настоящим компилятором GCC, но компилятор LLVM, поставляемый с Xcode 5, похоже, не поддерживает OpenMP. Мой код разработан на Mac, но его необходимо переносить на оборудование сторонних производителей, например, на суперкомпьютеры с массовым параллелизмом, поэтому переписывание кода не вариант. Кто-нибудь знает подходящий компилятор, который можно использовать? Большое спасибо за любую помощь.
Поддержка OpenMP в Xcode 5 и новее
Ответы (3)
Я вернулся к своему комментарию, поскольку я тестировал hpc.sourceforge.net, и он работает как шарм для меня.
Просто распакуйте архив, как описано:
sudo tar -xvf gcc-4.8-bin.tar -C /
Обновите свой .profile, чтобы по умолчанию использовать скомпилированную версию gcc для hpc, если хотите.
Скомпилируйте вашу программу с опцией -fopenmp, затем свяжите ее с опцией -lgomp.
«Кто-нибудь знает подходящий компилятор, который можно использовать?»
Компиляторы Intel для MacOS поддерживают OpenMP, как и на других платформах. http://software.intel.com/en-us/intel-software-development-products-for-mac-os-x
Конечно, они стоят денег, но они могут того стоить.
(Полное раскрытие: я работаю в Intel над средой выполнения OpenMP, используемой компилятором)
См. Настройка Clang + OpenMP в Xcode. В основном это следующие шаги:
- Установите Homebrew.
- Установите llvm с
brew install llvm
. - «Настройки сборки», а затем «Редактор» »« Добавить настройку сборки »» «Добавить пользовательскую настройку» с ключом
CC
и значением/usr/local/opt/llvm/bin/clang
. - Найдите «Включить модули» и выключите это.
- Добавьте
/usr/local/opt/llvm/lib
в «Пути поиска в библиотеке». - Добавьте
/usr/local/opt/llvm/lib/clang/7.0.1/include
в «Пути поиска заголовков». (Номер версии может отличаться в зависимости от вашей установки.) - Добавьте
-fopenmp
флаг компиляции в «Другие флаги C». - Отключите параметр «Включить функцию индексации при построении».
- Добавьте
/usr/local/opt/llvm/lib/libiomp5.dylib
в «Фазы сборки» »« Свяжите двоичный файл с библиотеками ».