LINUX.ORG.RU

В Clang появилась поддержка спецификации OpenMP

 , , ,


0

7

Инженеры корпорации Intel сообщили о завершении работы по полной реализации поддержки OpenMP 3.1 в компиляторе С-подобных языков Clang. На текущий момент реализация успешно проходит все тесты совместимости, исходники лежат на github отдельной веткой, и уже начат процесс объединения изменений с основной веткой Clang.

OpenMP является открытым стандартом по распараллеливанию программ на C-подобных языках и языке программирования Fortran. Наличие поддержки OpenMP в компиляторе позволяет с помощью pragma-директив распараллеливать выполнение ресурсоемких вычислений в таких программах как ImageMagic, GraphicsMagic и многих других. Следует также отметить, что в июле 2013 года вышла новая версия спецификации OpenMP 4.0.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: shahid (всего исправлений: 2)

Ответ на: комментарий от Deleted

Почему сишный компилятор должен уметь компилировать фортран, а?

Зачем тогда сравнивать Clang с gcc, который (сурприз! сурприз!) есть Gnu Compiler Collection?

unanimous ★★★★★
()
Ответ на: комментарий от Quasar

Их сравнивают в рамках одной задачи. Если функционал софта различается хотя бы на одну фичу, сравнивать нельзя ни в коем случае?

anonymous
()
Ответ на: комментарий от AlexVR

НЕТ, код скорее получится более медленным при оптимизации под конкретную целевую платформу.

Два эпикфейла в одном предложении :)

itdyatel
()
Ответ на: комментарий от xaizek

May GCC only be used for GPL projects?

Да, причем только GPLv3 projects (NB!), если я буду делать с ним тоже, что с clang/llvm: обрабатывать своими алгоритмами промежуточное представление, встраивать части компилятора в качестве движка статического анализа кода и так далее.

baka-kun ★★★★★
()
Ответ на: комментарий от xaizek

Дилетанство. С тех пор, как libc, и, в частности, stl теперь под gplv3, их невозможно использовать в несвободных проектах. Фича с lgpl не прокатит, потому что динамическая линковка с шаблонами принципиально невозможна, они хидер-онли. Мои доказательства в шапке стл-я. Фря и эпл не просто так отказались от gcc, их вынудило опрометчивое решение столмана

anonymous
()
Ответ на: комментарий от baka-kun

если я буду делать с ним тоже, что с clang/llvm: обрабатывать своими алгоритмами промежуточное представление, встраивать части компилятора в качестве движка статического анализа кода и так далее.

Это понятно, GPL всё таки. Но подобные вещи делает далеко не каждый проект, а значит для абсолютного их большинства нету разницы с точки зрения лицензии, то ли это будет gcc, то ли clang.

xaizek ★★★★★
()
Ответ на: комментарий от anonymous

Я всё ещё не понимаю о чём идёт речь. В той же шапке одного из заголовочных файлов стандартной библиотеки C++:

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

Разве это хвалёное исключение из правил не распространяется и на шаблоны тоже?

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

подобные вещи делает далеко не каждый проект

Я думаю, никто бы не отказался от статического анализа кода в IDE по правилам компилятора. Но с gcc не прокатит, в отличие от clang.

Ну и смотри выше: принципиально невозможно избавиться от статуса «производная работа от GPLv3 кода». Весь мир лицензирует статически линкуемые библиотеки общего пользования под пермиссивными лицензиями, и только некоторые под GPLv3.

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

Да я это понимаю, и не спорю с тем, что лицензия препятствует ряду полезных приминений gcc. Я просто не согласен, что это является такой большой проблемой, какой её пытаются выставить. ИМХО, это больше относиться к области издержек и побочных эффектов от принятых решений.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

лицензия препятствует ряду полезных приминений

Это только одна из неприятностей.

не согласен, что это является такой большой проблемой

Тем же Apple и BSD больше не понравилось, что несмотря ни на что, их код становится производной работой от GPLv3. До этого они охотно слали патчи под GPLv2, передавали права FSF и так далее. Но тут им заявили: «ребята, нам этого уже недостаточно, теперь, компилируя свой код, вы создаете производную работу, поэтому компилировать можете только так, как мы вам укажем».

Естественно, зарвавшихся борцунов за свободу ПО от автора послали.

baka-kun ★★★★★
()
Ответ на: комментарий от anonymous

При этом у него нормальная лицензия, позволяющая его использовать для компиляции ПО под лицензиями, отличными от ДжиПиЭль.

ты где-то ошибся, gcc вполне легально можно использовать для компиляции софта под любыми лицензиями.

G
()
Ответ на: комментарий от Reset

Судя по новости он уже его перегнал.

он его перегонит когда доделает нормально c++11 threading под линукс. Там libc++ совсем недописанная, такое ощущение что его пилят только под огрызок, у них столько амбиций на предмет архитектура лучше, скорость компиляции выше, оптимизация ещё выше. A на практике, когда я это проверял 2 месяца назад получилось что толком никто это не тестирует под линукс, на libc++ висит куча TODO, даже нормального howto на офф. сайте нету для компиляции депсов под линукс.

И ещё непонятен зоопарк вариантов libcxx или libsupc++ или libc++abi. Заработала только одна из них, забыл какая, но коректного c++11 нету и в помине.

G
()
Ответ на: комментарий от user_id_68054

или же только иногда (по случайности) выходит более быстрый код?

Не по случайности, а в зависимости от теста. Только clang не за скорость полученного кода ценится.

quiet_readonly ★★★★
()
Ответ на: комментарий от anonymous

[лихорадочный бред]. Никогда ваш шланг не приблизитcя к GCC по генерации кода.
А, точно, [лихорадочный бред] к OS X по удобству.

Тебе никогда не протроллить ЛОР. Хотя, лет через 5, когда школу закончишь...

quiet_readonly ★★★★
()
Ответ на: комментарий от kamre

У компилятора есть фронтенд и бекенд. Бекенд — это LLVM, фронтент для C/C++/ObjC — это clang. Фронтенды для Fortran и C++ не объединяются в принципе, можно только расшарить какие-то утилитные классы, не более. В данный момент clang не шарит утилитные классы, но на сайте ясно написано, что если кому-то нужно будет — сделают отдельную библиотеку с этими классами.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Только clang не за скорость полученного кода ценится.

«Дима из 10Б вдруг стал самым популярным парнем среди одноклассниц! девушки сами не понимали почему вдруг Дима стал им симпатичен.. но секрет оказалался просто ошеломляюще невероятным! оказалось — Дима просто перешёл с GCC на Clang!»...

«недавно учёными на дне океана были обнаружены ещё новые пирамиды, похожие на пирамиды Хиопса, оставленные на Земле очевидно более развитой цивилизацией. учёные проникли внутрь и были шокированны увиденным! оказалось внутри пирамид хранилась техонология, опережающая современную замную на тысячи лет вперёд — это исходный код от Clang!!»...

«шок расследование: монахи одного из ответвлений староверцев закрылись в монастыре в ожидании конца света. как выяснил наш человек — оказалось что дата конца света была получена внутри сообщения об ошибке, полученной во время того когда монахи компилировали сложный шаблонный C++код компилятором Clang!»...

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 3)
Ответ на: комментарий от unfo

OpenMP 4.0 поддерживает GPU. А OpenACC вроде поддерживает только платный компилятор.

anonymous
()
Ответ на: комментарий от anonymous

фашистскую версию своей лицензии
Мир ещё не готов к свободе

Странная какая-то у вас свобода, как орбит со вкусом баланды.

Deleted
()
Ответ на: комментарий от Quasar

Только вот GCC он никогда не догонит.

Ты, свинья, не в курсе? GCC он давно уже обогнал. Сразу. По более адекватной архитектуре, по модульности, по встраиваемости, по количеству возможных разнообразных применений промежуточного кода (того, который в gcc годится только для кодогенерации под целевую платформу, и ничего кроме).

Если же ты про качество полученного машинного кода, то кроме малолетней школоты этот параметр никого вообще не интересует. Никто не мешает использовать для release сборки под каждую конкретную платформу наиболее эффективный компилятор (и, скорее всего, под большинство платформ это будет не gcc, а что-то коммерческое).

Важнее всего, какие возможности компилятор предоставляет для разработки.

anonymous
()

Clang - дерьмо. И в нашем полностью свободном смартфончеге на NetBSD (с облачной синхронизацией и распознаванием рукописных/звуковых сообщений) его не будет, ответственно заявляю как руководитель проекта.

anonymous
()
Ответ на: комментарий от anonymous

Если же ты про качество полученного машинного кода, то кроме малолетней школоты этот параметр никого вообще не интересует

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

Важнее всего, какие возможности компилятор предоставляет для разработки

ойти-негры будут использовать то, что им скажут руководители

а руководители выбирают то, что генерирует более качественный и быстрый бинарь

а мнение ойти-негров вообще никого не интересует, им вот и остаётся только злобно кукарекать на форумах

anonymous
()
Ответ на: комментарий от buddhist

clang (сокращение от C language)

Кто тебе такую глупость сказал?

Ну ты-то знаешь правду? Что значит «Clang» и кто _тебе_ это сказал?

tailgunner ★★★★★
()
Ответ на: комментарий от buddhist

я не знаю правды

Но тем не менее берешься называть самую распространенную версию «глупостью».

Алсо, чтобы ты тут не просто так флудил

Флудишь просто так здесь ты.

http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html

Я вообще не говорил о том, как надо произносить «Clang».

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

самую распространенную

Среди людей, которые настолько любят шланг, что даже ни разу не интересовались его названием.

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

Кто тебе такую глупость сказал?

Простая логика:

clang: a C language family frontend for LLVM

Название clang является как именем собственным, имеющим значение «громкий металлический звук», так и удачным сокращением от «C LANGuage», указывающим на семейство языков (как бы дико это не звучало), которые реализует этот фронтенд. Конечно если у тебя есть более точные сведения, я готов пересмотреть свои домыслы.

m0rph ★★★★★
()
Ответ на: комментарий от buddhist

gcc нужен как минимум для фортрана и ады.

И для компиляции Apache OpenOffice 4.x из ветки разработки.

iZEN ★★★★★
()

когда эти клоуны реализуют исключения в Windows. а то их поделие и дальше никому не будет нужно.

anonymous
()
Ответ на: комментарий от aist1

С удовольствием бы, но как бы вот еще GDB с clang -g -O0 подружить?

Прекрасно работает

annulen ★★★★★
()
Ответ на: комментарий от Quasar

Только вот GCC он никогда не догонит.

Качество оптимизации практически одинаковое, на некоторых тестах gcc сливает. Когда в clang допилят slp-vectorizer, будет сливать еще больше.

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.