Pull to refresh
0

Новые возможности векторизации и распараллеливания в Intel® Parallel Composer

Reading time2 min
Views5.4K
image
В начале апреля стартовала программа по тестированию Intel® Parallel Composer beta, которая заканчивается в конце августа. Напомню основные компоненты композера:
  • Intel C++ Compiler:
  • Intel Integrated Performance Primitives (IPP):
  • Intel Threading Building Blocks(TBB).
Что же нового ждать в Parallel Composer?
По мимо интеграции как композера, так и документации в Microsoft Visual Studio 2010*, есть четыре фичи(англ. feature) на которые я хочу обратить ваше внимание:
  • Cilk C/C++ расширение параллельного программирования.
    Cilk позволяет малыми силами превратить последовательную программу в параллельную. Это расширение добавляет новые ключевые слова (к моменту релиза они могут быть изменены):
    1. _Cilk_spawn- порождение процесса вызова функции для асинхронного выполнения;
    2. _Cilk_sync – точка синхронизации внутри этой функции;
    3. _Cilk_for – параллельное выполнение всего итерационного пространства цикла.
  • CEAN: C++ Extended Array Notations for data parallelism.
    Новое расширение C/C++ для массивов, которое позволяет задавать дата параллелизм. CEAN выражения чем-то похожи на выражения Фортрана 90. К примеру, вместо
    for (i = 0; i < n; i++)
    С[i] = A[i]*B[i] + d;
    используются
    С[:] = A[:]*B[:] + d;
    Что позволяет компилятору более эффективно сгенерировать код с векторизацией.
  • GAP: Guided Auto-parallelization (/Qguide, /Qguide-vec, /Qguide-data-trans).
    При использовании этой возможности, компилятор производит диагностику кода и советует пользователю, что и как стоит изменить в коде. Это позволяет улучшить авто-векторизацию и авто-распараллеливание.
  • #pragma simd и #pragma parallel always [assert]
    Новые прагмы, которые указывают (а не советуют) компилятору, что он должен/не должен завекторизовать цикл. Об этом уже писалось тут.

Лично я сам учувствую в тестировании и написании сэмплов для CEAN и Cilk. На основе чего могу поделиться своими ощущениями:
CEAN по идеологии похож на valarray. Главное отличие заключается в том, что в vallaray предназначен для стандартного набора функций. В свою очередь CEAN, позволяет работать с пользовательскими типами, функциями и структурами. OpenMP* и CEAN в связке работают отлично, как и Cilk c CEAN. Единственно, Cilk позволил меньшей кровью получить выше эффективность распараллеливания тех сэмплов, над которыми я работал.
Ну и на последок, все кто желает протестировать новый Intel® Parallel Composer, пишите в личку.


Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Tags:
Hubs:
Total votes 27: ↑23 and ↓4+19
Comments5

Articles

Information

Website
www.intel.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
США
Representative
Анастасия Казантаева