The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

17.08.2011 13:50  Компания Intel представила ветку GCC с реализацией технологии Cilk Plus

Компания Intel объявила об открытии исходных текстов проекта "Cilk Plus". В рамках проекта реализован набор расширений для языков Си и Си++ с реализации новой эффективной методики параллельного программирования, позволяющий существенно упростить разработку программ, части которых выполняются параллельно с задействованием разных процессорных ядер.

Одновременно, на основе кода Cilk Plus и набора компиляторов GCC 4.7 создана ветка cilkplus, которая может быть использована разработчиками GCC для упрощения интеграции Cilk Plus в состав основной ветки GCC. Компания Intel заявила, что ищет пути сотрудничества с разработчиками открытого ПО, как в плане развития исходных текстов, так и в направлении усовершенствования спецификаций Cilk Plus, которые распространяются в соответствии с принципами открытых технологий.

В представленном коде реализованы три простых ключевых слова и специальная нотация для работы с массивами, которые позволяют быстро задействовать в приложениях на Си и Си++ возможности современных CPU, имеющих несколько процессорных ядер и векторные сопроцессоры (Vector Units). Для управления генерацией кода с улучшенной векторизацией предусмотрена pragma simd.

Поддерживается два метода увеличения производительности - параллелизм данных и параллельное выполнение подпрограмм. В первом случае, обеспечиваются механизмы прозрачного распараллеливания типовых операций над массивами данных и автоматическое задействование SIMD-инструкций. Для организации параллелизма на уровне подпрограмм в обиход вводится три ключевых слова: _Cilk_spawn - запуск функции в параллельном режиме, _Cilk_sync - ожидание завершения параллельно выполняемой функции, и _Cilk_for - организация работы цикла в параллельном режиме.

При проведение тестирования на 16-ядерном CPU реализация метода Монте-Карло при использовании Cilk Plus показала прирост производительности в два раза, в случае задействования режима параллельной обработки данных, и в 11.6 раз при использовании режима выполнения параллельных задач.

Отдельно распространяется специальная runtime-библиотека Intel Cilk Plus, код которой открыт под лицензией BSD. Runtime-библиотека протестирована в Linux (теоретически нет никаких ограничений по использованию в других ОС) на системах с архитектурами x86_32 и x86_64. Представители Intel надеются, что при помощи сообщества удастся портировать runtime-компоненты и для других архитектур. Так как в библиотеке совсем не много специфичного для архитектур x86_32 и x86_64 кода, такое портирование не составит труда.

  1. Главная ссылка к новости (http://software.intel.com/en-u...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: intel, parallel, gcc, cpp
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, Аноним, 15:10, 17/08/2011 [ответить] [смотреть все]
  • +3 +/
    Они изобрели OpenMP!
     
     
  • 2.6, Crazy Alex, 15:19, 17/08/2011 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Вот именно Почему это не интегрировать в OpenMP - непонятно ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.9, fr0ster, 17:18, 17/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Видимо обьяснить ддолжно название поста в блоге - Parallelism as a First Class C... весь текст скрыт [показать]
     
     
  • 4.12, Crazy Alex, 18:34, 17/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Так реализация на вид идентична OpenMP - никак не более first class Ну вместо p... весь текст скрыт [показать]
     
  • 2.10, all_glory_to_the_hypnotoad, 17:53, 17/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    читал хоть что они предлагают там расширение с , а не костыли вроде препроцес... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Crazy Alex, 18:48, 17/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Примитивное оно, честно говоря В отличие от OpenMP, где контроля много больше ... весь текст скрыт [показать]
     
     
  • 4.16, Аноним, 22:24, 17/08/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Вы сами упомянули главное преимущество - оно примитивное, поэтому им очень п... весь текст скрыт [показать]
     
     
  • 5.17, Crazy Alex, 22:36, 17/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Так OpenMP можно ровно так же использовать Но при надобности запросто делаются ... весь текст скрыт [показать]
     
     
  • 6.18, all_glory_to_the_hypnotoad, 22:38, 17/08/2011 [^] [ответить] [смотреть все]  
  • +/
    а чем мы заменаем  а openmp операции с массивами? типа a[:] = 1.0 и т.п.
     
     
  • 7.20, Crazy Alex, 00:18, 18/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Да, этого нет, и я это помянул чуть выше в качестве плюса минуса по сравнению с ... весь текст скрыт [показать]
     
     
  • 8.25, all_glory_to_the_hypnotoad, 17:48, 18/08/2011 [^] [ответить] [смотреть все]  
  • +/
    в ряде случаев знает Есть массивы с явным указанием размера, можно сделать тип ... весь текст скрыт [показать]
     
     
  • 9.27, anonymous, 02:45, 19/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Наоборот, компилятор знает особенности процессора на очинь низком уровне, и може... весь текст скрыт [показать]
     
     
  • 10.29, Дядя_Анан, 00:07, 20/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Компилятор не может распараллелить эффективно, ибо эти тонкости слабо зависят от... весь текст скрыт [показать]
     
  • 7.22, AHAHAC, 01:31, 18/08/2011 [^] [ответить] [смотреть все]  
  • +/
    Честно сказать, я вот сразу так и не вспомню прикладную задачу в которой необход... весь текст скрыт [показать]
     
  • 5.19, Crazy Alex, 22:39, 17/08/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    OpenMP вообще не образец сложности ни разу - там всей спецификации десяток стран... весь текст скрыт [показать]
     
  • 1.3, Аноним Ус, 15:14, 17/08/2011 [ответить] [смотреть все]  
  • +/
    > Так как в библиотеке совсем не много специфичного для архитектур
    > x86_32 и x86_64 кода, такое портирования не составит труда.

    Если всё так просто, то почему Интел сам этого не сделал, в перерывах между перекурами ?

     
     
  • 2.5, Crazy Alex, 15:18, 17/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Потому что интелу эти архитектуры не интересны. Ваш К.О.
     
  • 2.7, arzeth, 15:39, 17/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    наверно, Intel не любит своих конкурентов ARM и т д и хочет оставить их с баг... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, кто здесь, 16:02, 17/08/2011 [ответить] [смотреть все]  
  • +1 +/
    А чем это произведение отличется от включенного в gcc кода graphite? или graphite только оптимизирует код, но не распаралеливает?
     
  • 1.11, TrSiD, 18:21, 17/08/2011 [ответить] [смотреть все]  
  • +2 +/
    оно только для интел камней или будет и на амд работать?
     
     
  • 2.23, xxx, 10:40, 18/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Будет, только в обратную сторону =)
     
  • 1.26, maxkit, 20:42, 18/08/2011 [ответить] [смотреть все]  
  • +/
    > Компания Intel заявила, что ищет пути сотрудничества с разработчиками открытого ПО

    Так и открыла бы ICC, тем самым, ускорив это свободное ПО процентов на 20 сходу.

     
  • 1.28, Аноним, 10:40, 19/08/2011 [ответить] [смотреть все]  
  • +/
    А в clang'е этого ждать стоит?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList