Для компилятора Clang реализована поддержка OpenMP
31 августа 2013 года
Для компилятора 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 году. В настоящее время gcc 4.7 поддерживает только OpenMP 3.1, поддержка OpenMP 4.0 не запланирована. Отсутствие поддержки OpenMP в Clang долгое время упоминалось в качестве существенного недостатка данного компилятора, теперь проблема со сборкой параллельно выполняемого кода в Clang осталась в прошлом.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.