Как лучше всего использовать OpenMP в Mac OS X 10.5 и Ubuntu 10.4? - PullRequest
7 голосов
/ 04 сентября 2010

Я смотрю на библиотеку с открытым исходным кодом ( DDS , решатель двухстороннего моста), которая в своем последнем выпуске (2.1.1) добавляет некоторые очень полезные функции многозадачности, требующие либоСистема Windows или OpenMP (действительно, эта последняя версия даже не будет компилироваться в системе, отличной от Windows, без полной поддержки OpenMP! -).В Ubuntu 10.4 есть пакет, доступный для более старой версии (1.1.9), который включает в себя интерфейс Python для библиотеки (pydds).Я давно участвовал в апстриме, но я действительно хотел бы использовать (и добавить интерфейс Python для ;-) новой функциональности ... но для этого мне нужен компилятор C и поддерживающие библиотеки, которые дадут мне функциональность OpenMP...!

Кроме того, они нужны мне как на Ubuntu 10.4 , так и на моих старых добрых компьютерах Intel Mac с Mac OS X 10.5 (чтобы не потерять совместимость с моей старой доброй PowerPC Mac - но у меня нет возможности получить поддержку OpenMP на этих компьютерах PowerPC Mac, хотя, конечно, я бы просто хотел ... на базе Intel было бы достаточно! -).

Я полностью планирую взломать столько, сколько необходимо (и, конечно, выложу патчи для апстрима, как только они будут работать, как я уже давно сделал для всего открытого исходного кода, на который я взломал, включая сам DDS вв прошлом ;-) о самой DDS, pydds и любых вспомогательных функциях для них, , но ... именно из-за этого, я просто хотел бы избежать более "предварительного" взломаполучить поддержку OpenMP (для C) в первую очередь на платформах, где он мне нужен! -).

Итак, есть (в идеале! -) все, что я мог бы просто apt-get install для Ubuntu 10.4, и образ диска или Darwinportили что-нибудь для Mac OS X 10.5 по крайней мере на процессорах Intel, которое я мог бы использовать, чтобы начать ...?Я, конечно, готов к сборке из источников, патч-источникам и т. Д. По мере необходимости, но я бы предпочел, чтобы у не было , если я могу избежать этого ... ;-).

Ответы [ 2 ]

5 голосов
/ 22 октября 2010

В Mac OSX 10.5 похоже, что -fopenmp не является допустимым параметром (gcc версия 4.0.1).

$ gcc -fopenmp foo.c 
cc1plus: error: unrecognized command line option "-fopenmp"

Однако я смог скомпилировать и запуститьна 10.6 (gcc версия 4.2.1).Таким образом, похоже, ваши единственные варианты: 1) обновление до 10.6 или 2) пользовательская компиляция версии gcc.

(примечание стороны: на странице руководства для gcc 10.5 не упоминается -fopenmp, где 10,6.)

3 голосов
/ 22 октября 2010

Как предполагает Гарретт Хайд, версия gcc, которая поставляется с Mac OS 10.5, слишком старая, чтобы иметь поддержку OpenMP. Но нет проблем.

Установите MacPorts (http://trac.macports.org/wiki/InstallingMacPorts) - вам нужно будет установить Xcode, а затем X11, оба из которых вы все равно сможете получить с сайта Apple, если у вас еще нет установочного носителя. Затем один раз macports - это установка, "sudo port install gcc45" (или, по крайней мере, 44) и подождите некоторое время, пока он соберет gcc и все его зависимости. Все, что у gcc 4.4.x или более поздней версии, будет иметь довольно солидную поддержку OpenMP 3.0. должно быть хорошо идти.

Как отмечалось в комментариях, стандартный gcc, который поставляется с Ubuntu 10.4, также будет работать "из коробки".

...