~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 22BC8876F21740505E712D4DA532114E__1688540280 ✰
Заголовок документа оригинал.:
✰ Threading Building Blocks - Wikipedia ✰
Заголовок документа перевод.:
✰ Потоковые строительные блоки — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Threading_Building_Blocks ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/22/4e/22bc8876f21740505e712d4da532114e.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/22/4e/22bc8876f21740505e712d4da532114e__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 17:46:24 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 5 July 2023, at 09:58 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Потоковые строительные блоки — Википедия Jump to content

Потоковые строительные блоки

Из Википедии, бесплатной энциклопедии
Потоковые строительные блоки
Разработчики) Интел
Стабильная версия
2021,8 / 17 февраля 2023 г .; 15 месяцев назад ( 17.02.2023 ) [1]
Репозиторий
Написано в С++
Операционная система FreeBSD, Linux, Solaris, macOS, Windows, Android
Тип библиотека или фреймворк
Лицензия двойной: коммерческий/с открытым исходным кодом ( Apache 2.0 ), плюс бесплатное ПО. [2]
Веб-сайт github /oneapi-src /oneTBB
информация /oneTBB

oneAPI Threading Building Blocks (oneTBB; ранее Threading Building Blocks или TBB) — это C++ шаблонов библиотека , разработанная Intel для параллельного программирования на многоядерных процессорах . При использовании TBB вычисления разбиваются на задачи , которые могут выполняться параллельно. Библиотека управляет и планирует потоки для выполнения этих задач.

Обзор [ править ]

Программа oneTBB создает, синхронизирует и уничтожает графы зависимых задач в соответствии с алгоритмами , то есть парадигмами параллельного программирования высокого уровня (они же Алгоритмические Скелеты ). Затем задачи выполняются с учетом зависимостей графа. Этот подход объединяет TBB в семейство методов параллельного программирования, стремящихся отделить программирование от особенностей базовой машины.

oneTBB реализует перехват работы, чтобы сбалансировать параллельную рабочую нагрузку между доступными процессорными ядрами, чтобы повысить загрузку ядер и, следовательно, масштабирование. Изначально рабочая нагрузка равномерно распределяется между доступными ядрами процессора. Если одно ядро ​​завершает свою работу, в то время как другие ядра все еще имеют значительный объем работы в своей очереди, oneTBB переназначает часть работы с одного из занятых ядер на простаивающее ядро. Эта динамическая возможность отделяет программиста от машины, позволяя приложениям, написанным с использованием библиотеки, масштабироваться для использования доступных процессорных ядер без изменений в исходном коде или исполняемом файле программы. В ходе оценки реализации кражи работы в TBB в 2008 году исследователи из Принстонского университета обнаружили, что она неоптимальна для большого количества ядер процессора, в результате чего до 47% вычислительного времени тратится на планирование накладных расходов при выполнении определенных тестов в 32-ядерной системе. . [3]

oneTBB, как и STL (и основанная на нем часть стандартной библиотеки C++), широко использует шаблоны. Это имеет преимущество полиморфизма с низкими издержками , поскольку шаблоны представляют собой конструкции времени компиляции, которые современные компиляторы C++ могут в значительной степени оптимизировать.

oneTBB коммерчески доступен в виде двоичного дистрибутива с поддержкой, [4] и как программное обеспечение с открытым исходным кодом как в исходной, так и в двоичной форме.

oneTBB не предоставляет гарантий детерминизма или свободы от гонок за данными . [5]

Содержимое библиотеки [ править ]

oneTBB — это набор компонентов для параллельного программирования:

  • Основные алгоритмы: parallel_for, parallel_reduce, parallel_scan
  • Расширенные алгоритмы: parallel_pipeline, parallel_sort
  • Контейнеры : concurrent_queue, concurrent_priority_queue, concurrent_vector, concurrent_hash_map, concurrent_unordered_map, concurrent_unordered_set, concurrent_map, concurrent_set
  • Выделение памяти: scalable_malloc, scalable_free, scalable_realloc, scalable_calloc, scalable_allocator, cache_aligned_allocator
  • Взаимное исключение : mutex, spin_mutex, queuing_mutex, spin_rw_mutex, queuing_rw_mutex, recursive_mutex
  • Синхронизация: портативная мелкозернистая глобальная отметка времени.
  • Планировщик задач: прямой доступ для контроля создания и активации задач

См. также [ править ]

Примечания [ править ]

  1. ^ «Выпуски Github для создания блоков oneAPI Threading» . Гитхаб .
  2. ^ «Бесплатные варианты поддержки Intel самостоятельно, без лицензионных отчислений» .
  3. ^ Контрерас, Жилберто; Мартоноси, Маргарет (2008). Характеристика и повышение производительности строительных блоков Intel Threading Building Blocks (PDF) . Международный симп. IEEE. по характеристике рабочей нагрузки.
  4. ^ https://software.intel.com/en-us/intel-tbb Домашняя страница коммерческой версии строительных блоков Intel Threading Building Blocks
  5. ^ Боккино-младший, Роберт Л.; Адве, Викрам С.; Адве, Сарита В.; Снир, Марк (2009). Параллельное программирование должно быть детерминированным по умолчанию . Семинар USENIX по актуальным темам параллелизма.

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 22BC8876F21740505E712D4DA532114E__1688540280
URL1:https://en.wikipedia.org/wiki/Threading_Building_Blocks
Заголовок, (Title) документа по адресу, URL1:
Threading Building Blocks - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)