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
Примечания
править- ↑ Intel Cilk Plus Open Source - Intel® Software Network . Дата обращения: 18 августа 2011. Архивировано 16 сентября 2011 года.