Для компилятра Clang реализована поддержка OpenMP

Для компилятора Clang, развиваемого в рамках проекта LLVM, подготовлена реализация поддержки стандарта OpenMP (Open Multi-Processing), позволяющего задействовать методы параллельного программирования в программах на языках Си и Си++. В настоящее время полностью реализована поддержка спецификаций OpenMP 3.1 и частичная поддержка OpenMP 4.0. Разработка была начата работником AMD и доведена до конца сотрудниками Intel, которые проделали большую часть работы. В настоящее время наработки проекта OpenMP/Clang доступны в виде патчей для Clang 3.3. В будущем планируется выпускать обновления для всех новых выпусков Clang, синхронизировать патчи OpenMP с состоянием trunk-ветки Clang и добиться их включения в основную кодовую базу Clang/LLVM. Для работы собранных в Clang OpenMP-приложений требуется установка открытой runtime-библиотеки Intel OpenMP Runtime Library. Реализация OpenMP 3.1 успешно проходит все известные тесты на совместимость с OpenMP, в том числе SPEC OMP2012, проверочный пакет OpenUH и тестовый набор Intel.

По производительности и масштабируемости поддержка OpenMP для Clang находится примерно на одном уровне с другими компиляторами, поддерживающими данную спецификацию. В GCC поддержка OpenMP была интегрирована в компиляторы Си, Си++ и Фортран начиная с ветки 4.2, выпущенной в 2007 году. Отсутствие поддержки OpenMP в Clang долгое время упоминалось в качестве существенного недостатка данного компилятора, теперь проблема со сборкой параллельно выполняемого кода в Clang осталось в прошлом.

© OpenNet