Силк
-
Обзор Intel Cilk Plus
- Intel Cilk Plus — это расширение Cilk, которое добавляет параллелизм на уровне потоков и векторизацию.
- Cilk Plus поддерживает параллелизм на уровне потоков, что позволяет программистам использовать ключевое слово «spawn» для создания новых потоков.
- Cilk Plus также поддерживает векторизацию, что позволяет компилятору векторизовать код, используя нотацию массива.
-
Особенности Cilk Plus
- Cilk Plus предоставляет ключевое слово «sync» для синхронизации выполнения процедур.
- Вводное отверстие позволяет безопасно обрабатывать результаты порожденных вызовов процедур.
- Параллельные циклы cilk_for обеспечивают параллельное отображение и могут быть оптимизированы для эффективности.
- Гиперобъекты, такие как редукторы, позволяют нескольким цепочкам обмениваться состояниями без условий гонки.
-
Дополнительные конструкции и функции
- Cilk Plus добавляет нотацию для высокоуровневых операций над массивами и встроенные функции для векторизации.
- Элементарные функции позволяют выполнять параллельные операции над скалярными аргументами или элементами массива.
- Прагма «simd» позволяет компилятору векторизовать циклы даже при неудачной автоматической векторизации.
-
Планирование и кража работы
- Cilk Plus использует планировщик для распределения работы между процессорами, что называется «кражей работы».
- Процессоры могут приостанавливать выполнение фреймов и возобновлять их после завершения всех вызовов процедур, из которых они были вызваны.
-
Сравнение с другими технологиями
- Cilk Plus сравнивается с OpenMP, TBB, UPC и другими технологиями параллельного программирования.
-
Рекомендации и ресурсы
- Ссылки на официальные сайты OpenCilk, Intel Cilk Plus и другие ресурсы по параллельному программированию предоставлены для дальнейшего изучения.