Проект доступен здесь. Сейчас в его основе лежит clang 3.3. Небыстрый процесс ревью уже идет, и скоро код будет залит в транк clang’а, а значит войдет в его новые релизы.
Реализована полная поддержка стандарта OpenMP версии 3.1. Успешно проходятся следующие тесты: набор для валидации OpenMP от OpenUH Research Compiler, SPEC OMP2012 и внутренние тесты Intel. Исполняемый код c OpenMP, собранный clang’ом, демонстрирует производительность, сравнимую с другими компиляторами, поддерживающими OpenMP.
В качестве библиотеки времени выполнения использована библиотека Intel OpenMP Runtime Library, также доступная под свободной лицензией.
Не будем долго расписывать все достоинства спефикации OpenMP, скажем лишь, что это индустриальный стандарт для параллелизации программ с общей памятью. Это свидетельствует о достижении значительного этапа развития clang’а, сфера применения которого стала еще шире.
Проект был начат Mahesha HS и выполнен несколькими инженерами Intel из Москвы, среди которых можно выделить Алексея Батаева. Ревью кода проводили Hal Finkel, Дмитрий Грибенко и Doug Gregor.
Замечания по коду, тесты или найденные ошибки крайне приветствуются (не забываем о том, что github — открытая площадка) — мы будем очень благодарны Вам за это.
И напоследок:
$ cat hello.c #include <stdio.h> int main() { #pragma omp parallel printf("Hello, Habr!\n"); } $ clang -fopenmp hello.c -o ./hello_habr $ ./hello_habr Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr! Hello, Habr!
ссылка на оригинал статьи http://habrahabr.ru/company/intel/blog/191912/
Добавить комментарий