Cilk

Cilk — язык параллельного программирования.

Cilk
Класс языка императивный (процедурный), структурная, параллельная
Появился в 1994
Автор Лаборатория CS в MIT
Разработчик Intel
Система типов статическая
Основные реализации Cilk/Cilk++
Диалекты Intel Cilk Plus
Испытал влияние C
Повлиял на OpenMP
Лицензия открытый исходный код для оригинального Cilk
проприетарная для Cilk++ и Intel Cilk Plus
Сайт cilkplus.org

Разрабатывался с 1994 года в лаборатории Информатики MIT. Основан на языке ANSI C, с добавлением небольшого количества ключевых слов Cilk. Позже был расширен на Си++, в виде Cilk++ — коммерческого продукта, разрабатываемого компанией Cilk Arts.

В 2009 году компанией Cilk Arts было объявлено о том, что все её продукты и сама команда разработчиков становятся частью корпорации Интел.

Дизайн

править

Основной идеей при разработке ЯП Cilk было то, что программист должен взять на себя задачу «выявления» параллелизма, помечая те части программы, которые могут быть безопасно исполнены в параллельном режиме; при этом на систему исполнения возлагается задача непосредственного планирования выполнения и распределения нагрузки. Благодаря такому разделению программы на Cilk работают на системах с различным количеством процессоров, в том числе и на одном. Если программист выделил достаточное количество параллельных блоков, достигается неплохая масштабируемость.

При разработке языка за основу был взят ЯП Си. Расширения (ключевые слова cilk) при этом слабо меняют программу, так, если их удалить из исходного кода (например, через пустые макроопределения), то получится корректная программа на Си, называемая serial elision или C elision от полной Cilk-программы. Несмотря на некоторые сходства, Cilk не является родственным проекту Concurrent C от AT&T Bell Labs.

Компанией Cilk Arts, Inc. была разработана коммерческая версия Cilk, названная Cilk++, которая поддерживает как Си, так и Си++; совместима с компиляторами GCC и Microsoft C++.

В августе 2011 года исходные коды Cilk Plus были открыты компанией Intel. [1] Был предоставлены патч для gcc-4.7 и Run-Time Library (RTL).

В GCC 8.1 поддержка Cilk++ расширений для C и C++ удалена.

Ключевые слова

править
  • cilk
  • spawn
  • sync
  • inlet
  • abort

Примечания

править
  1. Intel Cilk Plus Open Source - Intel® Software Network. Дата обращения: 18 августа 2011. Архивировано 16 сентября 2011 года.