Компания Intel объявила об открытии исходных текстов проекта "Cilk Plus".
Компания Интел объявила об открытии исходных текстов проекта "Cilk Plus" 0. В рамках проекта реализован набор расширений для языков Си и Си++ с реализации новой действенной методики параллельного программирования, дающий возможность значительно упростить разработку программ, части которых выполняются попутно с задействованием различных процессорных ядер.
Одновременно, на базе кода Cilk Plus и набора компиляторов GCC 4.7 создана ветка cilkplus, которая может использоваться разработчиками GCC для упрощения интеграции Cilk Plus в состав основной ветки GCC. Компания Интел высказалась, что разыскивает пути сотрудничества с разработчиками открытого ПО, как в плане развития исходных текстов, так и в направлении усовершенствования спецификаций Cilk Plus, которые распространяются согласно с принципами открытых технологий.
В представленном коде реализованы 3 простых ключевых слова и специализированная нотация для работы с массивами, которые позволяют с высокой скоростью задействовать в приложениях на Си и Си++ возможности современных ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР, имеющих несколько процессорных ядер и векторные сопроцессоры (Vector Units). Для управления генерацией кода с улучшенной векторизацией предусмотрена pragma simd.
Поддерживается 2 способа увеличения производительности - параллелизм данных и параллельное исполнение подпрограмм. В первом случае, обеспечиваются механизмы прозрачного распараллеливания типовых операций над массивами данных и автоматическое задействование SIMD-инструкций. Для организации параллелизма на уровне подпрограмм в обиход вводится 3 ключевых слова: _Cilk_spawn - запуск функции в параллельном режиме, _Cilk_sync - ожидание завершения попутно выполняемой функции, и _Cilk_for - организация работы цикла в параллельном режиме.
При проведение тестирования на 16-ядерном ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР реализация способа Монте-Карло при использовании Cilk Plus продемонстрировала прирост производительности вдвое, в случае задействования режима параллельной обработки данных, и в 11.6 раз при использовании режима исполнения параллельных задач.
Отдельно распространяется специализированная runtime-библиотека Интел Cilk Plus, код которой открыт под лицензией BSD. Runtime-библиотека протестирована в Линукс (теоретически нет никаких ограничений по применению в иных ОС) на системах с архитектурами x86_32 и x86_64. Представители Интел полагаются, что с помощью сообщества удастся портировать runtime-компоненты и для иных архитектур. Так как в библиотеке совсем не немало специфичного для архитектур x86_32 и x86_64 кода, такое портирование не будет составлять усилий.