Cilk

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Cilk
Класс языка:

императивный (процедурный), структурная, parallel programming

Появился в:

1994

Автор(ы):

Лаборатория CS в MIT

Система типов:

статическая

Основные реализации:

Cilk/Cilk++

Диалекты:

Intel Cilk Plus

Испытал влияние:

C

Лицензия

открытый исходный код для оригинального Cilk
проприетарная для Cilk++ и Intel Cilk Plus

Сайт:

cilk.com

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

Разрабатывался с 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).

Ключевые слова[править | править исходный текст]

  • cilk
  • spawn
  • sync
  • inlet
  • abort

Примечания[править | править исходный текст]