Intel Threading Building Blocks

Intel Threading Building Blocks
Intel Threading Building Blocks
Тип

библиотека (программирование)

Разработчик

Intel

Написана на

С++, Assembler

Операционная система

Кроссплатформенный

Последняя версия

4.1 Update 1 (05.09.2012)

Лицензия

Два варианта: коммерческая и GPL 2.0

Сайт

http://www.threadingbuildingblocks.org

Intel Threading Building Blocks (также известная как TBB) — кроссплатформенная библиотека шаблонов С++[1], разработанная компанией 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 года. Был добавлен новый функционал, см. http://threadingbuildingblocks.org/whatsnew.php

Начиная с версии 3.0 промежуточные обновления TBB выходят в формате TBB X.0 update N, например TBB 4.0 update 2.

Примеры использования

В этой программе элементы массива обрабатываются функцией Calculate параллельно.

// Подключаются необходимые загловочные файлы
#include “tbb/blocked_range.h”
#include “tbb/parallel_for.h”
#include “tbb/task_scheduler_init.h”
 
using namespace tbb;
 
// Количество элементов вектора
const int SIZE = 10000000;
 
// Класс-обработчик
class CalculationTask
{
private:
        double *myArray;
public:
        // Оператор () выполняется над диапазоном из пространства итераций
        void operator()(const blocked_range<int> &r) const
        {
                for (int i = r.begin(); i != r.end(); i++)
                        Calculate(myArray[i]);
        }
 
        // Конструктор
        CalculationTask (double *a) : myArray(a) { }
};
 
 
int main()
{
        double *myArray = new double[SIZE];
 
        // Инициализация библиотеки TBB
        task_scheduler_init init;
 
        // Запуск параллельного алгоритма for
        parallel_for(
                blocked_range<int>(0, SIZE, 500),
                CalculationTask(myArray));
 
        return 0;
}

Поддерживаемые операционные системы

Коммерческая версия TBB 4.0 поддерживает Microsoft Windows (XP или выше), Mac OS X (версия 10.5.8 или выше) и Linux, используя различные компиляторы (Visual C++ (версия 8.0 или выше, только на Windows), Intel C++ compiler (версия 11.1 или выше) или GNU Compiler Collection (gcc, версия 3.4 и выше)). Кроме того, сообщество открытой версии TBB портировало её на Sun Solaris, PowerPC, Xbox 360, QNX Neutrino, и FreeBSD.

См. также

Литература

Примечания

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Intel Threading Building Blocks" в других словарях:

  • Intel Threading Building Blocks — (also known as TBB) is the name of a C++ template library developed by Intel for writing software programs that take advantage of multi core processors. The library consists of data structures and algorithms that allow a programmer to avoid some… …   Wikipedia

  • Intel Threading Building Blocks — Desarrollador Intel www.threadingbuildingblocks.com/ Información general Última versión estable 2.1 update 4 …   Wikipedia Español

  • Threading Building Blocks — Die Threading Building Blocks (auch Intel Threading Building Blocks oder kurz TBB) ist eine C++ Programmierbibliothek, entwickelt von Intel zur effizienten Nutzung von Mehrkernprozessoren. Die Bibliothek bietet einen Satz von Datenstrukturen und… …   Deutsch Wikipedia

  • Threading Building Blocks — (TBB) est une bibliothèque logicielle développée par la société Intel Cet outil développé en C++ permet d abstraire au maximum les détails complexes de la programmation sur microprocesseur multi cœur. Ainsi un développeur n a plus à se soucier d… …   Wikipédia en Français

  • Intel Parallel Inspector — Тип Профилировщик / Отладчик использования памяти Разработчик Intel Developer Products Операционная система Windows Лицензия Проприетарная, однопользовательская …   Википедия

  • Intel Cilk Plus — Cilk Plus Paradigm(s) imperative (procedural), structured, parallel Appeared in 2010 Designed by Intel Developer Intel Stable release Parallel Studio 201 …   Wikipedia

  • Intel C++ Compiler — Esta página o sección está siendo traducida del idioma inglés a partir del artículo Intel C++ Compiler, razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir. Puedes colaborar con Wikipedia …   Wikipedia Español

  • Intel Cilk Plus — Cilk Plus Класс языка: Императивный, процедурный, структурный, параллельный Появился в: 2010 Автор(ы): Intel Основные реализации: Intel C++ Compiler, GCC Испытал влияние: C …   Википедия

  • List of multi-threading libraries — List of cross platform multi threading libraries for the c++ programming language.* Boost C++ Libraries * OpenMP * OpenThreads * POCO Thread (part of POCO project http://pocoproject.org/poco/info/index.html ) * Zthread * Intel Threading Building… …   Wikipedia

  • Tbb — Intel Threading Building Blocks Тип библиотека (программирование) Разработчик Написана на С++ ОС Кроссплатформенный Версия 2.1 07.06.2008 Лицензия …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»