2010-09-04 3 views
7

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

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

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

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

+2

как насчет 'sudo apt-get install gcc libgomp1'? – Anycorn

+0

@aaa, у меня установлен 'gcc' (4.4.3, который поставляется с ubuntu) - будет ли библиотека волшебным образом поддерживать поддержку OMP-специфической '# прагмы, о которой она в настоящее время предупреждает и игнорирует ...? –

+0

да, и используйте 'gcc -fopenmp' – Anycorn

ответ

5

На 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.

(Side Примечание: Мужчина страница НКУ на 10.5 не упоминает -fopenmp, где 10,6 делает.)

+2

OpenMp поддерживается только в gcc 4.2 и выше. – db42

3

Как было предложено Garrett Хайда версии 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, также будет работать из коробки.

 Смежные вопросы

  • Нет связанных вопросов^_^