The OpenNET Project / Index page

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

Опубликован стандарт параллельного программирования OpenMP 5.0

09.11.2018 10:49

После трёх лет разработки опубликован набор спецификаций OpenMP 5.0 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Начальная реализация OpenMP 5.0 уже включена в кодовую базу GCC, на основе которой развивается ветка GCC 9. Отдельные элементы OpenMP 5.0 также будут включены в следующий выпуск LLVM/Clang 8.0.

Основные новшества OpenMP 5.0:

  • Полная поддержка специализированных аппаратных ускорителей. В том числе реализованы:
    • Механизмы, использующие унифицированную разделяемую память между хост-системой и устройствами сопроцессора;
    • Возможность использования специфичных для определённых устройств реализаций функций;
    • Улучшенное управление неявным отображением данных (data mapping);
    • Возможность смены устройств-ускорителей не прерывая работу;
    • Поддержка обратного выделения вычислительных ресурсов ускорителям (reverse offload);
    • Поддержка неявной генерации функций;
    • Возможность упрощённого копирования объектно-ориентированных структур данных.
  • Два новых программных интерфейса для разработки внешних инструментов отладки и анализа производительности;
  • Поддержка последних версий стандартов языков C, C++ и Fortran: C11, C++17 и Fortran 2008;
  • Поддержка описательных конструкций циклов (descriptive loop) , позволяющих компилятору оптимизировать операции в цикле, не привязываясь к определённой реализации. Новые конструкции циклов предоставляют компилятору больше свободы в выборе оптимальной реализации для специфичной целевой системы;
  • Многоуровневые системы памяти. Предоставлены механизмы распределения памяти, позволяющие размещать данные в различных типах памяти, например, отличающихся пропускной способностью. Новые возможности управления памятью также упрощают работу с современными высокопроизводительными NUMA-системами;
  • Улучшена переносимость. Директива "declare variant" и метадирективы (блок "metadirective", дающий возможность определить несколько вариантов директив, выбираемых в зависимости от контекста) позволяют разработчикам повысить эффективность портирования, адаптируя прагмы OpenMP и пользовательский код на стадии компиляции.


  1. Главная ссылка к новости (https://www.openmp.org/press-r...)
  2. OpenNews: Опубликован стандарт параллельного программирования OpenMP 4.5
  3. OpenNews: В Clang обеспечена полноценная поддержка OpenMP
  4. OpenNews: В проект LLVM вошла разработанная в Intel runtime-библиотека OpenMP. Red Hat представил OpenMP 4.0 для GCC
  5. OpenNews: Выпущены спецификации OpenMP 4.0
  6. OpenNews: Релиз набора компиляторов LLVM 7.0
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: openmp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (21) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:03, 09/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это бы всё, да в стандарт С++, а не ввиде нашлёпки...
     
     
  • 2.2, nobody (??), 11:06, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ждите executor'ы. Где-нибудь в С++26...
     
     
  • 3.8, Аноним (8), 18:01, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.cplusplus.com/reference/future/async/

    Это что ли?

     
     
  • 4.9, Аноним (9), 19:59, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В С++11 добавили многопоточность, но очень скудно, и без поддержки гетерогенной памяти и гетерогенных вычислений.
     
     
  • 5.19, pavlinux (ok), 13:50, 13/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А SMP-балансировщик и менеджер задач те в кумпилятор не добавить?
     
  • 4.17, nobody (??), 10:50, 12/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. Вот это http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0443r9.html
     
  • 2.16, Аноним (16), 14:16, 11/11/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Набор спецификаций для языка (в том числе) Фортран в стандарт C++?

    Набор спецификаций для програмирования на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD) тоже в стандарт C++?

    Давайте и WinAPI включим в стандарт C++ и POSIX.

    P.S. наивно думать что нашлёпка перестанет быть нашлёпкой если её упомянут в стандарте C++.

     

  • 1.3, corvuscor (ok), 11:27, 09/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками >векторизации (SIMD). Начальная реализация OpenMP 5.0 уже включена в кодовую >базу GCC

    Звучит прям как нескончаемый поток шоколада. Жаль, что реальность наверняка будет прозаичнее, и работать оно будет только поверх проприетарщины от нвидии.

     
     
  • 2.20, Анонимный Алкоголик (??), 14:28, 14/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками >векторизации (SIMD). Начальная реализация OpenMP 5.0 уже включена в кодовую >базу GCC
    > Звучит прям как нескончаемый поток шоколада. Жаль, что реальность наверняка будет прозаичнее,
    > и работать оно будет только поверх проприетарщины от нвидии.

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

     

  • 1.4, Аноним (4), 11:44, 09/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Странный перевод. Параллельное программирование - это когда несколько чуваков параллельно программируют.
     
     
  • 2.5, vanzhiganov (ok), 12:02, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +21 +/
    Не, ну вы чО? Это когда всем разработчикам параллельно на все поставленные задачи =)
     

  • 1.7, freehck (ok), 14:04, 09/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Начальная реализация OpenMP 5.0 уже включена в кодовую базу GCC, на основе которой развивается ветка GCC 9. Отдельные элементы OpenMP 5.0 также будут включены в следующий выпуск LLVM/Clang 8.0.

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

     
     
  • 2.18, Аноним (18), 15:22, 12/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Шлангуют...
     

  • 1.11, Аноним (11), 20:46, 09/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    MinGW-w64 достали. Юзают проклятый сорсфордж, баг репорт не отправить - там рекапча.

    Тот, кто прячется за рекапчей,
    Не хочет ни баг репортов, ни патчей.

     
     
  • 2.12, Аноним (12), 01:54, 10/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > рекапча

    Имхо рекапча на сайте - это повод сразу закрыть страницу, даже не пытаясь как-то реагировать. Рассматривайте это как аналог "504 Nginx Installed".

     
     
  • 3.14, InuYasha (?), 12:39, 11/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот-вот. Я сюда по делу пришёл, а не светофорчики с мотоциклами считать!
     
     
  • 4.23, Попугай Кеша (?), 15:05, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А что плохого в том, если на сайт не пустят людей, кто не может отличить светофор от мотоцикла? )))
     
  • 2.15, Аноним (15), 13:07, 11/11/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Значит твой багрепорт не нужен и не важен, а сам ты - спамер, либо скрипт, либо спамерский скрипт.

    Только спамерам западло пройти капчу.

     
  • 2.21, Аноним (21), 05:30, 16/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Mingw-W64 задолбали, не фиксят баг с fesetenv и округлением. Вот так воспользуешься OpenAl, а у тебя округление в другом режиме начинает работать и ничего не сделаешь, потому что они наложили свой патч чтобы работала какая-то либа, но этот патч делает не рабочим fesetenv. Фиксить они не фиксят, баг висит уже два года. Вертел я такие компиляторы, лучше какой-нибудь другой вариант компилятора gcc под win найти.
     
     
  • 3.22, Аноним (22), 13:12, 19/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >лучше какой-нибудь другой вариант компилятора gcc под win найти

    Озвучьте другие вариаты GCC под Винду, если не трудно.

     

  • 1.24, Аноним (24), 23:12, 04/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Господа специалисты к вам вопрос. Чего сегодня можно использовать для распределенных вычислений. Писать свой велосипед смыла думаю, что нет. А хотелось бы шарить память и шарить задачи и результаты получать. Прям как в Erlang.
     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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