Intel Array Building Blocks
Программное обеспечение Intel Array Building Blocks является системой для параллельного программирования, освобождающей разработчиков приложений от зависимости от определенных низкоуровневых механизмов реализации параллелизма и аппаратных архитектур. Решение Intel Array Building Blocks предназначается для программистов, создающих алгоритмы большой вычислительной емкости в целях работы с параллельными данными. Функции Intel Array Building Blocks осуществляют масштабируемую, переносимую и детерминистическую реализацию параллелизма на базе одной высокоуровневой спецификации вычислений, удобной в поддержке и ориентированной на приложения.
API-интерфейс Intel Array Building Blocks подкреплен обширной библиотекой рабочих программ. По умолчанию решение предотвращает такие наиболее распространенные ошибки параллельного программирования, как гонки данных и взаимные блокировки.
Фактически Intel Array Building Blocks включает в себя несколько аспектов:
- Модель программирования. Система позволяет выражать параллелизм по данным с последовательной семантикой: простейшие операции с коллекцией, а не с отдельными элементам.
- Язык. Intel Array Building Blocks предоставляет новые типы данных и операции с ними, а также конструкции управления исполнением.
- Абстрактная машина. Использование средств Intel Array Building Blocks освобождает разработчика от написания аппаратно зависимого кода с целью повышения производительности.
Intel Array Building Blocks обладает высокоуровневым интерфейсом, соответствующим стандартам языка C++, для виртуальной машины. Основное преимущество приложений, написанных с применением возможностей Intel Array Building Blocks, заключается в том, что они в полной мере используют ресурсы процессора. Параллелизм достигается как на уровне ядер за счет создания потоков, так и на уровне данных (SIMD). Кроме того, созданные программы работают на всех Intel-совместимых архитектурах без модификации исходных кодов и перекомпиляции проектов.
Базовые синтаксические конструкции библиотеки Intel Array Building Blocks делятся на следующие группы:
- Скалярные типы – аналоги простейших типов C++.
- Векторные типы – параллельные коллекции скалярных данных.
- Скалярные и векторные операторы.
- Функции.
- Конструкции управления исполнением – условия, циклы и др.
Система Intel Array Building Blocks работает на платформах Windows и Linux и поддерживает все стандартные компиляторы C++, включая Intel, Microsoft Visual C++ и GCC C++.