The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

22.05.2015 20:39  В Clang обеспечена полноценная поддержка OpenMP

Разработчики проекта LLVM объявили о реализации в компиляторе Clang полной поддержки стандарта OpenMP 3.1 (Open Multi-Processing), предоставляющего средства для применения методов параллельного программирования в программах на языках Си и Си++. OpenMP открывает перед пользователями Clang возможность использования всей мощи современных многоядерных процессоров с блоками векторизации.

Доступны как средства обеспечения параллелизма на уровне задач (распараллеливание функций и циклов), так и параллелизма на уровне данных (векторизация, распараллеливание типовых операций над массивами данных). В том числе реализованы комбинированные директивы, такие как "#pragma omp parallel for" и "#pragma omp parallel sections", а также элементы стандарта OpenMP 4.0. Частично реализованы атомарные операции ("#pragma omp atomic") и средства векторизации последовательных и параллелизированных циклов на процессорах с поддержкой инструкций SIMD ("#pragma omp simd").

Реализация OpenMP в Clang базируется на открытой компанией Intel runtime-библиотеке OpenMP, которая связывается с итоговыми OpenMP-приложениями и выполняет диспетчеризацию потоков в процессе выполнения OpenMP-программы. Из особенностей библиотеки отмечается поддержка различных аппаратных архитектур (x86, x86_64, PowerPC, ARM), высокая производительность и совместимость на уровне ABI с GCC и проприетарными OpenMP-компиляторами Intel.

Для сборки программы с задействованием OpenMP достаточно указать при компиляции опцию "-fopenmp", а также пути к заголовочному файлу ("-I путь к omp.h") и библиотеке ("-L путь к библиотеке openmp").

  1. Главная ссылка к новости (http://blog.llvm.org/2015/05/o...)
  2. OpenNews: В проект LLVM вошла разработанная в Intel runtime-библиотека OpenMP. Red Hat представил OpenMP 4.0 для GCC
  3. OpenNews: Выпущены спецификации OpenMP 4.0
  4. OpenNews: Проект по добавлению поддержки OpenMP в LLVM
  5. OpenNews: Опубликован стандарт OpenMP 3.1, определяющий API для параллельного программирования
  6. OpenNews: Для компилятора Clang реализована поддержка OpenMP
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: openmp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, 3draven (ok), 21:30, 22/05/2015 [ответить] [показать ветку] [···]    [к модератору]
  • +3 +/
    Это получается теперь софт станет еще немного дальше от 386 компов и наконец то заметит, что на дворе 2015 год?
     
     
  • 2.3, ананим.orig (?), 21:48, 22/05/2015 [^] [ответить]    [к модератору]
  • +12 +/
    Это означает, что всякий крап (аля флэш) будет сжирать на 8-ядернике не 1х100%, а 8х100%.
     
     
  • 3.8, irinat (ok), 22:17, 22/05/2015 [^] [ответить]    [к модератору]
  • +6 +/
    > флэш

    Flash давно умеет рисовать в несколько потоков. Поэтому там где Chrome + JS + HTML5 canvas выдаёт 20 fps, упираясь в одно ядро, Flash вытягивает 60. Лимит у него в 60 fps. Конечно, выедает при этом 300%, от этого никуда денешься.

    http://www.craftymind.com/factory/guimark2/FlashChartingTest.html

    http://www.craftymind.com/factory/guimark2/HTML5ChartingTest.html

     
     
  • 4.16, ананим.orig (?), 00:38, 23/05/2015 [^] [ответить]     [к модератору]
  • +/
    Сферичское ядро то В сферическом же вакууме Предупреждать надо А то на своём ... весь текст скрыт [показать]
     
     
  • 5.17, irinat (ok), 01:11, 23/05/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    А в чём смысл указывать конкретную модель Свести всё к сравнению у кого проц кр... весь текст скрыт [показать]
     
     
  • 6.21, ананим.orig (?), 03:12, 23/05/2015 [^] [ответить]     [к модератору]  
  • –3 +/
    А в чём смысл выковыряных из носа 20фпс У меня в 1 поток было всё зашибись, теп... весь текст скрыт [показать]
     
     
  • 7.31, irinat (ok), 13:37, 23/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Вот и я про то же Само по себе число 20 ничего не значит без указания условий п... весь текст скрыт [показать]
     
  • 7.49, Michael Shigorin (ok), 23:18, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > Видимо ты а) плохо воспитан(Ы), б) влез в обсуждение только для того, чтобы влесть

    Очевидно, нет.

     
     
  • 8.51, ананим.orig (?), 04:55, 24/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Да? И какова же была цель? Хотя бы одну, для примера.
    (Про пункт а) замну пока. Не интересно)
     
     
  • 9.52, Michael Shigorin (ok), 11:39, 24/05/2015 [^] [ответить]     [к модератору]  
  • +/
    За человека и его цель говорить не стану, но 8 как минимум для меня оказалось д... весь текст скрыт [показать]
     
  • 7.57, Vkni (ok), 02:09, 25/05/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Это вопросы к планировщику ЦП Хотя, конечно, если он фиговат, как в Уиндоуз, то... весь текст скрыт [показать]
     
  • 5.59, Аноним (-), 11:45, 25/05/2015 [^] [ответить]    [к модератору]  
  • +/
    20 фпс и там и там на моем ноуте)
     
  • 4.20, RNZ (ok), 02:25, 23/05/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Chromium 41 0 2272 76 Developer Build Ubuntu 15 04 Revision ff3293b421463d09... весь текст скрыт [показать]
     
     
  • 5.22, Аноним (-), 03:42, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Флеш захлебнулся, гона-потоков (Race condition).
     
  • 5.39, irinat (ok), 18:03, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > Что я делаю не так?

    Всё делаешь так. К сожалению, на моём железе Flash всё ещё выдаёт более плавную анимацию.

     
  • 5.56, Аноним (-), 16:34, 24/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Ubuntu 14.04, Firefox 38, Flash 11.2

    Flash
    Test Average: 59.82 fps

    HTML5
    Test Average: 13.78 fps

     
  • 4.60, systemd (?), 13:49, 25/05/2015 [^] [ответить]    [к модератору]  
  • +/
    40 - html5

    50 -flash

     
  • 4.63, Анононим (?), 17:02, 27/05/2015 [^] [ответить]    [к модератору]  
  • +/
    html5 56-58 fps
     
  • 2.5, Куяврег (?), 21:56, 22/05/2015 [^] [ответить]    [к модератору]  
  • +/
    openmp это далеко не единственный способ заметить, что на дворе 2015
     
     
  • 3.6, 3draven (ok), 22:00, 22/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Да все равно какой способ У меня восьмипотоковый гипертрейдинг и 4 ядра и7 про... весь текст скрыт [показать]
     
  • 3.10, Аноним (-), 22:28, 22/05/2015 [^] [ответить]    [к модератору]  
  • –4 +/
    > openmp это далеко не единственный способ заметить, что на дворе 2015

    технически - один из лучших.
    для тех, кто никак с С и С++ не слезет в программировании.


     
  • 3.11, ы (?), 22:35, 22/05/2015 [^] [ответить]    [к модератору]  
  • +/
    >openmp это далеко не единственный способ заметить, что на дворе 2015
     
  • 2.26, Аноним (-), 12:30, 23/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Для пользователей mandala, собирающих всё clang - возможно. В нормальных дистрибутивах gcc это делает уже несколько лет.
     
  • 2.48, Grammar Narziss (?), 22:32, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    "наконец-то"
     
  • 1.4, Аноним (-), 21:51, 22/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • –4 +/
    Почему отдельной библиотекой Почему всё на директивах Почему нельзя было, напр... весь текст скрыт [показать]
     
     
  • 2.7, Аноним (-), 22:13, 22/05/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    потому что стандарт
     
     
  • 3.29, Аноним (-), 13:06, 23/05/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    Только вот библиотека не оптимизирует это всё так, как мог бы компилятор -> явно упущенный потенциал. В расте распараллеливание реализовано найтивно. По этому пункту он скоро обойдет c++.
     
  • 2.13, Аноним (-), 23:45, 22/05/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Потому что добавить нужную функциональность прагмами проще, чем переделывать ядр... весь текст скрыт [показать]
     
     
  • 3.28, Аноним (-), 13:03, 23/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    В том то и дело что он не немощный, и можно было бы переписать ядро. Прагмы сильно усложняют код, делают его не читаемым и легко допустить ошибки в логике.
     
     
  • 4.33, Crazy Alex (ok), 14:03, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Я сильно сомневаюсь, что сишники с восторгом восприняли бы идею такого усложнения синтаксиса. Вот в плюсах - да, самое место было бы. Но там, вроде, только футуры.
     
     
  • 5.43, Аноним (-), 18:31, 23/05/2015 [^] [ответить]     [к модератору]  
  • –2 +/
    Си уже давно прекратил развитие, для этого есть с Но от тоже, по всей видимос... весь текст скрыт [показать]
     
  • 2.54, 0xd34df00d (??), 15:18, 24/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    В пропозалах на C++17, ЕМНИП, есть поддержка векторных переменных и операций с ними, причём достаточно умная, чтобы быть портируемой на разную ширину регистров SIMD.

    Ну и есть Boost.SIMD.

     
  • 1.9, Аноним (-), 22:23, 22/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    А что, в Clang до сих пор не было поддержки OpenMP? Я знал, что он отстаёт от GCC, но чтобы настолько...
     
     
  • 2.12, Developer1 (?), 22:51, 22/05/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Кроме OpenMP в мире больше ничего не существует?
     
     
  • 3.15, Dark Amateur (?), 00:34, 23/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Ну, есть ещё Cilk, только вот GCC его тоже умеет.
     
     
  • 4.18, Developer1 (?), 01:15, 23/05/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    GCC умеет Grand Central Dispatch?
     
     
  • 5.19, Аноним (-), 01:47, 23/05/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Эппловский форк GCC умеет. А в линуксе этой хрени нет в принципе, ни в GCC, ни в Clang.
     
     
  • 6.23, Аноним (-), 03:43, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > Эппловский форк GCC умеет. А в линуксе этой хрени нет в принципе,
    > ни в GCC, ни в Clang.

    Не нужно, есть на OpenBSD

     
  • 6.27, Developer1 (?), 12:47, 23/05/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    Эта хрень в плане производительности и удобства разработки рвет по всем фронтам вышеупомянутый сабж.
     
     
  • 7.35, Куяврег (?), 16:27, 23/05/2015 [^] [ответить]     [к модератору]  
  • –1 +/
    справедливости ради рвать она может и рвёт, но давай посмотрим, у скольки проек... весь текст скрыт [показать]
     
     
  • 8.47, Developer1 (?), 19:24, 23/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Справедливости ради и сравнение что из них хуже или лучше достаточно бесполезно,... весь текст скрыт [показать]
     
     
  • 9.50, Michael Shigorin (ok), 23:23, 23/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Технически говоря, 9 на которое отвечали в 12 таковым не было ... весь текст скрыт [показать]
     
     
  • 10.55, Developer1 (?), 16:04, 24/05/2015 [^] [ответить]    [к модератору]  
  • +/
    А что не так в #12 ?
    Вполне нейтрально и хренью ничего не называю, так что технически говоря там все нормально.
    Я может чего-то не понимаю?
     
  • 4.45, Аноним (-), 19:07, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Только в отдельной ветви, причем, отстающей. Пока поддержка силка не будет обеспечена стабильно, толку от нее нет.
     
  • 1.14, Аноним (-), 00:10, 23/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    С нетерпением жду бенчев на Фурониксе 1 Скорость копирования файлов утилитами,... весь текст скрыт [показать]
     
  • 1.25, Аноним (25), 10:33, 23/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    если головой или ручками нормально программу ненапишешь, никакие быблобиблиотеки... весь текст скрыт [показать]
     
  • 1.30, Аноним (-), 13:12, 23/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • –2 +/
    OpenMP - костыль для тех, кто сам не может написать нормальный параллельный код,... весь текст скрыт [показать]
     
     
  • 2.32, Crazy Alex (ok), 13:51, 23/05/2015 [^] [ответить]    [к модератору]  
  • +3 +/
    А компьютер вообще сделан для тех, кто не может посчитать на бумажке. Но вам же неважно, что на бумажке долго и большой шанс ошибиться - главное, что не тунеядцы.

    А так - оно в GCC сто лет как есть, в проприетарных компиляторах - тоже. Все, кому нужно - давно пользуются.

     
  • 2.34, Аноним (-), 15:44, 23/05/2015 [^] [ответить]     [к модератору]  
  • +/
    то есть для 98 разработчиков паралельный код в рамках С С писать трудно В ... весь текст скрыт [показать]
     
     
  • 3.42, Аноним (-), 18:25, 23/05/2015 [^] [ответить]     [к модератору]  
  • +/
    Это единственное средство быстро и просто распараллелить циклы Только вот реали... весь текст скрыт [показать]
     
  • 2.36, Куяврег (?), 16:29, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > OpenMP - костыль для тех, кто сам не может

    всегда считал возможность использовать сторонние открытые библиотеки сильной стороной опенсорса. а оно вна как - каждый должен написать софт, начиная с загрузчика и заканчивая собственно прикладухой. вот это поворот (с)

     
     
  • 3.41, Аноним (-), 18:19, 23/05/2015 [^] [ответить]    [к модератору]  
  • +/
    Это так, только не в таких фундаментальных вещах как многопоточность и гетерогенные вычисления. Всё это должно быть в ядре любого современного языка системного уровня.
     
     
  • 4.62, Куяврег (?), 23:41, 25/05/2015 [^] [ответить]    [к модератору]  
  • +/
    > Это так, только не в таких фундаментальных вещах как многопоточность и гетерогенные
    > вычисления. Всё это должно быть в ядре любого современного языка системного
    > уровня.

    вопрос в удобстве, простоте и прочих весьма субьективных вещах. ну не запретишь ты писать 10 библиотек jpeg, png и прочих, вплоть до самых низкоуровневых.


     
  • 1.40, Аноним (-), 18:17, 23/05/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • –1 +/
    В язык ничего добавлять больше не хотят Теперь всё дополнительное будет на кост... весь текст скрыт [показать]
     
     
  • 2.46, Аноним (-), 19:11, 23/05/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Скоро все на прагмах писать будут.
     
  • 1.44, Аноним (-), 19:04, 23/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    OpenMP-ветвь Clang'а существует уже давно, в чем новость? Неужели его добавили в основную ветку? В какой версии он будет доступен?
     
  • 1.53, Аноним (-), 14:41, 24/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Надеюсь в следующем стандарте это всё реализуют непосредственно в языке
     
  • 1.58, Аноним (-), 05:11, 25/05/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    5 лет ждали, ну наконец-то.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor