Компания Intel передала проекту LLVM код runtime-библиотеки OpenMP, которая послужит началом для формирования полнофункциональной OpenMP-системы на базе LLVM. Код библиотеки отныне будет развиваться в качестве официального подпроекта LLVM с использованием репозиториев и инфраструктуры LLVM. Код библиотеки открыт под двойной лицензией (MIT + BSD-подобная лицензия UIUC), полностью совместимой с LLVM. Кроме того, проекту переданы права по использованию всех связанных с библиотекой патентов Intel.

Runtime-библиотека является одной из составных частей реализации стандарта OpenMP (Open Multi-Processing), позволяющего задействовать методы параллельного программирования в программах на языках Си и Си++. Библиотека связывается с итоговыми OpenMP-приложениями и выполняет функции диспетчеризации потоков в процессе выполнения OpenMP-программы. Из особенностей библиотеки отмечается высокая производительность и совместимость на уровне ABI с GCC и проприетарными OpenMP-компиляторами Intel.

Компания Intel также развивает проект по интеграции в компилятор Clang поддержки OpenMP. Работа над проектом ещё не завершена, но уже обеспечена полная поддержка спецификаций OpenMP 3.1 и частичная поддержка OpenMP 4.0. Заявлено о намерении включить код данного проекта в основную кодовую базу Clang/LLVM, после того как будет проведена синхронизация OpenMP-патчей Intel с состоянием trunk-ветки Clang. Развитие в рамках проекта LLVM runtime-библиотеки OpenMP поможет ускорить интеграцию поддержки OpenMP в компилятор Clang. В текущем виде реализация уже успешно проходит все известные тесты на совместимость с OpenMP 3.1, в том числе SPEC OMP2012, проверочный пакет OpenUH и тестовый набор Intel.

Дополнение: Разработчики из компании Red Hat опубликовали запрос на включение в состав основного репозитория набора компиляторов GCC кода с реализацией поддержки спецификации OpenMP 4.0. Поддержка OpenMP 4.0 пока доступна для языков C и C++, для языка Фортран фронтэнд для OpenMP 4.0 пока не создан. Также пока недоступна поддержка ускорения вычислений (offloading) за счёт задействования дополнительных аппаратных вычислительных устройств, таких как GPU. Напомним, что в GCC поддержка OpenMP была интегрирована в компиляторы Си, Си++ и Фортран начиная с ветки 4.2, выпущенной в 2007 году. Текущая реализация OpenMP, доступная в GCC 4.7, ограничивается поддержкой спецификаций OpenMP 3.1.

Источник: http://www.opennet.ru/opennews/art.shtml?num=38110