Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

Intel Threading Building Blocks
Тип библиотека (программирование)
Разработчик Intel
Написана на C++, Assembler
 Операционная система  Кроссплатформенный
Последняя версия 2021.7.0[1] (28 октября 2022)
Репозиторий github.com/oneapi-src/on…
Лицензия Два варианта: коммерческая и Apache 2.0
Сайт threadingbuildingblocks.org

Intel Threading Building Blocks (также известная как TBB) — кроссплатформенная библиотека шаблонов C++[2], разработанная компанией 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 параллельно.

// Подключаются необходимые загловочные файлы
#include “tbb/blocked_range.h”
#include “tbb/parallel_for.h”

// Количество элементов вектора
const int SIZE = 10000000;

// Класс-обработчик
class CalculationTask
{
	vector<double> &myArray;
public:
	// Оператор () выполняется над диапазоном из пространства итераций
	void operator()(const tbb::blocked_range<int> &r) const
	{
		for (int i = r.begin(); i != r.end(); i++)
			Calculate(myArray[i]);
	}

	// Конструктор
	CalculationTask (vector<double> &a) : myArray(a) { }
};

int main()
{
	vector<double> myArray(SIZE);

	// Запуск параллельного алгоритма for
	tbb::parallel_for(tbb::blocked_range<int>(0, SIZE), CalculationTask(myArray));

	return 0;
}

С использованием лямбда-функций из C++11:

// Подключаются необходимые заголовочные файлы
#include “tbb/blocked_range.h”
#include “tbb/parallel_for.h”

#include <vector>

// Количество элементов вектора
const size_t SIZE = 10000000;

int main()
{
	std::vector<double> myArray(SIZE);

	// Запуск параллельного алгоритма for
	tbb::parallel_for(tbb::blocked_range<size_t>(0, SIZE),
	// Лямбда-функция
	[&myArray](const tbb::blocked_range<size_t> &r)
	{
		for (size_t i = r.begin(); i != r.end(); i++)
			Calculate(myArray[i]);
	});

	return 0;
}

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

Коммерческая версия TBB 4.0 поддерживает Windows (XP или выше), Mac OS X (версия 10.5.8 или выше) и Linux, используя различные компиляторы: Microsoft 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.

См. также

Литература

Примечания

  1. Release oneTBB v2021.7.0. Дата обращения: 25 января 2023. Архивировано 25 января 2023 года.
  2. Intel® TBB — ISN Архивировано 2 марта 2009 года.

Ссылки

Эта страница в последний раз была отредактирована 10 октября 2023 в 20:05.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).