The OpenNET Project / Index page

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

10.08.2013 14:47  Выпущены спецификации OpenMP 4.0

Увидел свет набор спецификаций OpenMP 4.0 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран. Ключевыми нововведениями OpenMP 4.0 стали поддержка ускорения за счет привлечения мощностей GPU, значительные улучшения в модели выполнения задач, добавление механизмов обработки ошибок и поддержка определенных пользователем редукций.

Новые возможности в API версии 4.0 включают в себя:

  • Поддержка ускорения вычислений за счёт задействования дополнительных аппаратных вычислительных устройств, таких как GPU. С рядом производителей была проделана значительная работа для обеспечения поддержки разнообразных вычислительных устройств. Теперь API OpenMP предоставляет механизмы, позволяющие указать, что некая область кода и/или данных должны быть обработаны с использованием другого вычислительного устройства. Уже реализовано несколько прототипов поддержки различных акселераторов.
  • Для векторизации последовательных и параллелизированных циклов задействованы инструкции SIMD. Поскольку в подавляющем большинстве современных процессоров есть SIMD блоки, существует необходимость в кроссплатформенном доступе к подобным возможностям CPU. API OpenMP 4.0 предоставляет механизмы для указания того, как распараллелить циклы с использованием инструкций SIMD и как определить версии функций, которые можно вызывать в блоках, использующих SIMD.
  • Обработка ошибок. API OpenMP 4.0 теперь предоставляет средства для обработки ошибок, что должно повысить надежность и стабильность приложений OpenMP при наличии системных ошибок, ошибок времени выполнения ("runtime-level errors") и ошибочных ситуаций, определенных пользователем. Определена возможность прекращения параллельного выполнения, основанная на условной отмене и определяемых пользователем точках отмены выполнения.
  • Привязка потоков (Thread affinity). API OpenMP 4.0 предоставляет механизмы для указания где именно выполнять потоки OpenMP. При этом обеспечивается разделение специфики платформ от алгоритмов.
  • Параллелизм на уровне задач (Tasking extensions). API OpenMP 4.0 предоставляет ряд расширений для поддержки параллельного выполнения на уровне задач. Задачи можно группировать для обеспечения их глубокой синхронизации. Группа задач может быть прервана целиком, что может применяться для совместно выполняемого набора задач, таких как поиск, в ситуации, когда нахождение желаемого результата завершает всю группу совместно работавших над его получением задач. Также поддерживается синхронизация задачи с задачей, путем определения зависимостей.
  • Поддержка Fortran 2003. Стандарт Fortran 2003 вобрал в себя множество возможностей современных языков программирования. Поддержка Fortran 2003 позволяет параллелизировать программы на данном языке программирования. Кроме всего прочего, это включает в себя поддержку взаимодействия Fortran и C.
  • Определяемые пользователем редукции (User-defined reductions). Ранее API стандарта OpenMP поддерживал редукцию с использованием базового языка операторов и внутренних процедур. API OpenMP 4.0 предоставляет средства для определения редукций пользователем.
  • Последовательно консистентные атомарные операции (Sequentially consistent atomics). Добавлена конструкция, позволяющая программисту принудительно применять последовательную консистентность для областей хранения, поддерживающих атомарный доступ.


  1. Главная ссылка к новости (http://openmp.org/wp/2013/07/o...)
Автор новости: Аноним
Тип: К сведению
Ключевые слова: openmp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 22:36, 10/08/2013 [ответить] [показать ветку] [···]    [к модератору]
  • –1 +/
    позитивно =)
    то, чего ТАК долго ждали - вышло-таки )
    *ушел пилить*
     
  • 1.2, Толстеннный троллль (?), 22:50, 10/08/2013 [ответить] [показать ветку] [···]    [к модератору]
  • –3 +/
    В какой версии gcc ждать полную поддержку?
     
     
  • 2.12, Аноним (-), 01:47, 11/08/2013 [^] [ответить]    [к модератору]
  • +/
    4.9.х ? :)
     
  • 2.14, Аноним (-), 09:09, 11/08/2013 [^] [ответить]    [к модератору]
  • +/
    в Clang 3.4
     
     
  • 3.15, Аноним (-), 12:29, 11/08/2013 [^] [ответить]    [к модератору]
  • –1 +/
    Да ты шутник, однако. Clang на данный момент совсем не поддерживает OpenMP, и это является его единственным недостатком, ведь в остальном он идёт вровень с GCC.
     
     
  • 4.19, Алексей (??), 09:56, 12/08/2013 [^] [ответить]    [к модератору]  
  • +/
    А по генерируемому bloatware уже далеко впереди.
     
  • 1.4, Аноним (-), 23:47, 10/08/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • –5 +/
    GPU очень интересно, особенно в счязи с прогрессом Galluim Cmpute, Clover Подоз... весь текст скрыт [показать]
     
     
  • 2.7, BratSinot (ok), 00:43, 11/08/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    Для начала либо почините клавиатуру, либо выпрямите пальцы.

    Для продолжения, при чем здесь llvm и OpenMP? Вы хоть понимаете, что llvm это JIT-компилятор и там он используется чтоб компилировать OpenCL код в инструкции GPU? В том-же OpenMP llvm может использоваться для таких-же целей.

     
     
  • 3.17, kurokaze (ok), 22:11, 11/08/2013 [^] [ответить]    [к модератору]  
  • –3 +/
    Ути-пути, любимый llvm-чик обидели, хнык-хнык. Гггг
    Я llvm использую, но делать из него фетиш подобно вам, чтобы потом отлаживать кирпичи - увольте
     
     
  • 4.18, Куяврик (?), 23:59, 11/08/2013 [^] [ответить]    [к модератору]  
  • +/
    и в чём сейчас модно кирпичи отлаживать? gdb?
     
  • 1.5, Аноним (-), 00:16, 11/08/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    clang все еще не работает с ним
     
     
  • 2.10, Аноним (-), 01:41, 11/08/2013 [^] [ответить]    [к модератору]  
  • +/
    > clang все еще не работает с ним

    FAIL, чо :).

     
  • 2.13, Аноним (-), 05:45, 11/08/2013 [^] [ответить]    [к модератору]  
  • –3 +/
    кто ?
    оно - часть тулчейна GCC. меджится туда AMD-ой и SGI/Rackspace/Cray-ями с IBM напополам )
     
  • 1.6, Аноним (-), 00:27, 11/08/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Пятилетка стандартописательства в разгаре. Кто только это все делать будет?
     
  • 1.8, BratSinot (ok), 01:02, 11/08/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А как эта связка с GPU называется то? В PDF'ке про GPU ни слова не сказано.
     
     
  • 2.9, anonymous (??), 01:29, 11/08/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    Если я правильно понял, то для взаимодействия с ускорителями (в т.ч. GPU), ввели понятие устройста (device).
     
  • 2.11, povlinux (?), 01:41, 11/08/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    OpenMP API provides mechanisms to describe regions of code where data and/or computation should be moved to another computing device. Several prototypes for the accelerator proposal have already been implemented.
     
  • 2.20, Andriy (??), 11:52, 12/08/2013 [^] [ответить]    [к модератору]  
  • +/
    > А как эта связка с GPU называется то? В PDF'ке про GPU
    > ни слова не сказано.

    Хм, а еще есть OpenACC и он вроде на GPU ориентирован.

     
  • 1.21, Аноним (-), 12:00, 15/08/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Что бы код вычислялся на ГПУ нужны оригинальные видео драйверы от АМД например?
     

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


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