Intel Threading Building Blocks
Тип
библиотека
(программирование)
Разработчик
Intel
Написана на
C++, Assembler
Операционная
система
Кроссплатформенный
Последняя
версия
2021.5.
Лицензия
Два варианта: коммерческая и
Apache 2.0
Сайт
threadingbuildingblocks.org (htt
p://www.threadingbuildingblocks.
org)
Intel Threading Building Blocks
Материал из Википедии — свободной энциклопедии
Intel Threading Building Blocks
(также
известная как
TBB
) — кроссплатформенная
библиотека шаблонов C+, разработанная
компанией
Intel
для
параллельного
программирования.
Библиотека
содержит
алгоритмы и
структуры данных, позволяющие
программисту избежать многих сложностей,
возникающих
при
использовании
традиционных
реализаций потоков, таких как
POSIX Threads, Windows threads или Boost
Threads, в которых создаются отдельные потоки
исполнения,
синхронизируемые
и
останавливаемые вручную.
Библиотека TBB
абстрагирует доступ к отдельным потокам. Все
операции трактуются как «задачи», которые
динамически распределяются между ядрами
процессора.
Кроме
того,
достигается
эффективное использование кэша.
Программа,
написанная с использованием TBB, создаёт,
синхронизирует и разрешает графы зависимостей задач в соответствии с алгоритмом. Затем
задачи исполняются в соответствии с зависимостями. Этот подход позволяет программировать
параллельные алгоритмы на высоком уровне, абстрагируясь от деталей архитектуры конкретной
машины.
Содержание
Структура библиотеки
Библиотека является коллекцией шаблонов классов и функций для параллельного
программирования. В библиотеке реализованы:
параллельные алгоритмы: for, reduce, do, scan, while, pipeline, sort;
потокобезопасные контейнеры: вектор, очередь, хеш-таблица;
масштабируемые распределители памяти;
мьютексы;
атомарные операции;
глобальная временная метка;
планировщик задач;
вычислительный граф.
Версия 1.0 была выпущена фирмой Интел 29 августа 2006, через год после выпуска своего
первого двуядерного процессора Pentium D.
Версия 1.1 была выпущена 10 апреля 2007. 5 июня библиотека была добавлена в состав Intel C++
Compiler 10.0 Professional Edition.
Версия 2.0 была выпущена 24 июля 2007. Был открыт исходный
код библиотеки и был создан
проект с открытым исходным кодом с лицензией GPLv2. Библиотека также доступна под
коммерческой лицензией без исходного кода, но с доступом к технической поддержке.
Функциональность обеих библиотек одинакова.
Версия 2.1 была выпущена 22 июля 2008.
Версия 2.2 была выпущена 5 августа 2009 года. Она включает в себя поддержку лямбда-функций
C++0x.
Версия 3.0 была выпущена 4 мая 2010 года. Список улучшений http://software.intel.com/en-
us/blogs/2010/05/04/tbb-30-new-today-version-of-intel-threading-building-blocks/.
Версия 4.0 была выпущена 8 Сентября 2011 года. Была добавлен
новая функциональность, см.
https://web.archive.org/web/20111213150434/http://threadingbuildingblocks.org/whatsnew.php
Начиная с версии 3.0 промежуточные обновления TBB выходят в формате TBB X.0 update N,
например TBB 4.0 update 2.
В этой программе элементы массива обрабатываются функцией Calculate параллельно.