Intel Threading Building Blocks

Threading Building Blocks
開発元 インテル
最新版
2022.0.0 / 2024年11月1日(23か月前) (2024-11-01)
リポジトリ ウィキデータを編集
プログラミング
言語
C++
対応OS Windows, Linux, macOS, Android
種別 ライブラリ、フレームワーク
ライセンス デュアルライセンス: 商用 / オープンソース (Apache License 2.0)
公式サイト www.threadingbuildingblocks.org
software.intel.com/en-us/intel-tbb
テンプレートを表示

インテル スレッディング・ビルディング・ブロック (Intel® Threading Building Blocks, TBB) は、インテルが公開しているマルチスレッド対応のC++テンプレートライブラリである。マルチCPU・マルチコアCPUなどを搭載したコンピュータ上でアプリケーションを効率よく動作させることができる。

商用版とオープンソースソフトウェア版があり、オープンソース版は無償でダウンロードが可能である。バージョン4.4系列まではGPLv2だったが、バージョン2017からはApache License 2.0となった。

様々なプラットフォーム上で動作する(クロスプラットフォーム)。

概要

マルチCPU・マルチコアCPUを搭載したコンピュータ上でCPUリソースを効率よく利用することが目的であり、シングルCPU・シングルコアCPUでは性能向上は期待できない(スレッド切り替えのオーバーヘッドで逆にパフォーマンスが低下する可能性もある)。

公式に動作サポートされているハードウェアはIntel製のx86系プロセッサファミリーおよび互換プロセッサである。また公式に動作サポートされているオペレーティングシステム (OS) はWindows、Linux、macOS、Androidであり、それぞれのOSで実行させるために必要な外部ライブラリが別途提供される。Intelによらないコミュニティサポートのプラットフォームとしては、ARMアーキテクチャやFreeBSDなども含まれる。

過去にはSolarisやXbox 360などへの対応も行われていた。

TBBバージョン2018 Update 4のリリースノートには、サポート環境に関して以下のように記載されている。

リリースノートで必要条件とされているシステムよりグレードの低いシステムでTBBを実行した結果については特に明示されていないが、Pentium III・Celeron Mなどでも正常動作が確認されている例がある[要出典]。


ライブラリの構成は

この内、タスクスケジューラおよびアロケータはTBBをサポートするクラスなので一般に開発者が使うことは少ない。

並列処理アルゴリズムはタスクスケジューラによって処理を分割してリソースに割り当てる。その為、コンテナやミューテックスなどを利用するときはタスクスケジューラの初期化は不要である。
また細分化する際の目安となるグレインサイズをプログラマが指定することも、TBBのランタイムライブラリが自動的に設定するようにすることも可能である。

主なクラス

脚注

[脚注の使い方]
  1. ↑ “Releases · oneapi-src/oneTBB”. GitHub. 2025年2月2日閲覧。
  2. 1 2 oneTBB/SYSTEM_REQUIREMENTS.md at master · oneapi-src/oneTBB
  3. ↑ oneapi-src/oneTBB at 4.4.6
  4. ↑ oneapi-src/oneTBB at 2017
  5. ↑ インテル® Parallel Studio XE 評価ガイド - インテル® TBB による効率良いスレッド化
  6. ↑ Intel(R) Threading Building Blocks - Release Notes Version 2018

関連項目

外部リンク