インテル® TBB 2017

マルチスレッド・パフォーマンスを向上する C++ テンプレート・ライブラリーです。
インテル® Parallel Studio XE、インテル® System Studio に同梱されています。
関連情報
[お知らせ一覧]

スケーラブルな並列モデルで並列処理を簡素化

インテル® スレッディング・ビルディング・ブロック (インテル® TBB) は、幅広く使用されている移植性とスケーラビリティーに優れた並列アプリケーションの開発を支援する C++ ライブラリーです。

  • 生産性と信頼性を高める – スレッドの操作に代わりタスクを指定。インテル® TBB は、論理タスクをスレッドに割り当て、入れ子になった並列処理も完全にサポート。
  • パフォーマンス向上を実現 – インテル® TBB は、テスト済みの効率良い並列パターンを使用し、実行時間が不明なタスクの負荷バランスを取るためワークスチールを行います。
  • 移植性と互換性 – Linux*、Windows*、OS X*、そして Android* 向けのオープンソースと商用バージョンが利用できます。多くの C++ コンパイラーと互換性を持ち、インテル® Atom™ プロセッサー、インテル® Core™ プロセッサー、インテル® Xeon® プロセッサーおよびインテル® Xeon Phi™ コプロセッサーを含むインテル® プロセッサーおよび互換プロセッサーと互換性があります。
  • フローグラフ機能により、開発者は容易に依存性とデータのフローグラフを表現できるようになります。
詳細・新機能 技術情報

新しいフローグラフ・ツール (現在はアルファ版)

  • Flow Graph Designer

    開発者がフローグラフ・アプリケーションを作成およびチューニングするのを支援します。これは、次の 2 つの方法で行われます

  • 解析ツール

    インテル® TBB によるフローグラフ・アプリケーションの実行トレースを収集し、可視化する機能 Flow Graph Designer を提供します。Flow Graph Designer により、開発者はノードの実行時間のタイムラインと相互に作用するグラフのトポロジーを検索することができ、そのグラフのノードに関する重要な統計情報を得ることができます。

  • 設計ツール

    インテル® TBB のフローグラフのダイアグラムを可視化し、将来の開発における出発点となる C++ スタブを作成します。

Flow Graph Designer ツールの詳細とダウンロードについては、Flow Graph Designer の記事 (英語) をご覧ください。

製品紹介資料

本ライブラリーが同梱されるインテル® Parallel Studio XE の製品概要、新機能、各エディションの違いやコンポーネント、パフォーマンス、お客様の声などをご紹介しています。

PDF

  • 現在は PDF 版のみ公開しています。ブラウザ表示板は近日公開予定です。

スイート製品に同梱

インテル® TBB は単体で販売されておりません。以下製品に同梱されます。

インテル® Parallel Studio XE

アプリケーションの高速化、安定化を支援するスイート製品です。

インテル® System Studio

組込み/モバイルデバイス向けシステムの電力効率、パフォーマンス、信頼性向上を支援するスイート製品です。

バージョン 2017 新機能

主に以下の変更・機能が追加されました。
詳細は、リリースノートおよびインテル社公開の情報を参照ください。

  • Static_partitioner class

    バランスのとれたワークロードのために並列ループのオーバーヘッドを最小化

  • Streaming_node class

    フローグラフ内のヘテロジニアス・ストリーミング計算を可能にします。

  • Async_node class

    別のユーザーまたはランタイムによって管理される外部処理との通信をフローグラフに許可します。

  • Python* module

    追加された Python* モジュールは、Python* のスレッドプールのクラスを交換します。

  • インテル® アーキテクチャーサポート

    最新の、および将来のインテル® アーキテクチャーをサポートします。

将来性のあるスケーラビリティー

インテル® TBB は、ソフトウェア開発者がループとタスクベースのアプリケーションを記述する際に、容易に並列パフォーマンスとスケーラビリティーを達成することを可能にします。

開発者は、プラットフォームの詳細とスレッドのメカニズムを抽象化して、コア数の増加に応じてパフォーマンスがスケールする高度なアプリケーションをビルドすることができます。インテル® TBB は、各種サンプル・アプリケーションにおいて効果的なスケーリングを示します。

並列化のための豊富な機能セット

パフォーマンスと生産性のための豊富なコンポーネント群を提供します。

  • 並列アルゴリズムとデータ構造

    • 一般的な並列アルゴリズム
      ゼロから始めることなく、マルチコアのパワーを活用するための効率良いスケーラブルな手法。
    • フローグラフ
      計算の依存関係と (または) データフローのグラフとして並列処理を表現する一連のクラス。
    • コンカレント・コンテナー
      同時アクセス、およびスレッドセーフな外部ロックを伴うコンテナーのスケーラブルな代替コンテナー。
  • メモリー割り当てとタスク・スケジューリング

    • タスク・スケジューラー
      並列アルゴリズムとフローグラフを強化する、洗練されたワークのスケジュール・エンジン。
    • メモリー割り当て
      スケーラブルなメモリー・マネージャーと False sharing (フォルス・シェアリング) を回避するメモリー・アロケーター。
  • スレッドおよび同期プリミティブ

    • 同期プリミティブ
      アトミック操作、異なる特性による各種ミューテックス、条件変数。
    • タイマーと例外
      スレッドセーフなタイマーと例外クラス。
    • スレッド
      OS API のラッパー。
    • スレッド・ローカル・ストレージ
      無制限のスレッドローカル変数向けの効率良い実装。

条件付きの数値再現性

インテル® TBB の新しいテンプレート関数 ‘parallel_deterministic_reduce’ による浮動小数点演算の結果の決定論性を向上。

C++11 のラムダ関数をサポート

インテル® TBB は、C++11 コンパイラーで利用でき、ラムダ式をサポート。並列アルゴリズムを開発するプログラマーは、ラムダ式を使用することで異なるオブジェクトやクラスの必要性を排除することができ、時間とコードサイズを削減可能。

製品セミナーや関連イベントをご紹介。

米インテル社の製品情報を日本語に翻訳して公開中。

アプリケーションの高速化、安定化を支援するスイート製品です。

組込み/モバイルデバイス向けシステムの電力効率、パフォーマンス、信頼性向上を支援するスイート製品です。

プロセッサー

複数の世代のインテル® プロセッサー/コプロセッサーと互換プロセッサーで動作検証されています。

  • インテル® Core™ プロセッサー以上 (Windows*、Linux*、OS X*)
  • インテル® Xeon® プロセッサー (Windows*、Linux*)
  • インテル® Xeon Phi™ コプロセッサー (Windows*、Linux*)
  • インテル®Atom™ プロセッサー (Android*)
オペレーティング・システム

複数オペレーティング・システム上で同じ API を使用してアプリケーションを開発できます。

  • Microsoft* Windows* 10
  • Microsoft* Windows* 8、8.1
  • Microsoft* Windows* 7 SP1
  • Microsoft* Windows* Server 2012 R2
  • Microsoft* Windows* Server 2012
  • Microsoft* Windows* Server 2008 R2 SP1
  • Microsoft* Windows* HPC Server 2008
  • Windows Embedded 8.x, 10
  • CentOS 6.5、7.1
  • Debian* 7、8
  • Fedora* 20、21、22、23
  • Intel® Cluster Ready
  • Red Hat* Enterprise Linux* 6、7
  • SuSE* Linux* Enterprise Server 11、12
  • Ubuntu* 12.04 LTS、14.04 LTS、15.04、16.04 LTS
  • WindRiver* Linux 7
  • Yocto 1.7、1.9 (2.0)、2.1
  • OS X* 10.10 以上
  • macOS* 10.12 以上
  • Android* 5.x、6.x
サポートするコンパイラー
  • インテル® C++ コンパイラー 15 (インテル® Parallel Studio XE 2015) 以上
  • Microsoft* Visual C++ 11.0 (Microsoft* Visual Studio* 2012) 以上 (Windows*)
  • Microsoft* Windows* Software Development Kit for Windows* 8 以上
  • gcc 4.1 以上 (Linux*)
  • glibc 2.4 以上 (Linux*)
  • Xcode* 6.3 以上 (OS X*)
  • Android* NDK r10e 以上
サポートする分析ツール
  • インテル® VTune™ Amplifier XE 2016 以上
  • インテル® Inspector XE 2016 以上
  • インテル® Advisor XE 2016 以上
言語

C++

移植性と互換性

オープンソースと商用版ライセンス その他コンパイラーとの互換性

  • 最新の情報は、製品または評価版に同梱されているリリースノートを参照ください。

お知らせ

2016年 9月 7日、インテル® TBB 2017 が同梱されるインテル® Parallel Studio XE 2017 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2017 を無料でダウンロードしてご利用いただけます。

  • 本バージョンより、インテル® TBB のバージョン表記がインテル® Parallel Studio XE のバージョンと統一されました。

2015年 8月 26日、インテル® TBB 4.4 が同梱されるインテル® Parallel Studio XE 2016 の販売を開始しました。

インテル社の方針により、2014年 8月 26日 (火) を以って、インテル® TBB 単体製品の新規ライセンスの販売を終息しました。
インテル® TBB の SSR および、本製品を含むバンドル製品の新規ライセンス、SSR は継続して販売いたします。

FAQ

インテル® TBB は、共有メモリー並列プログラミングおよびヘテロジニアス・コンピューティング (ノード内分散メモリー・プログラミング) で広く使用されている C++ ライブラリーです。ライブラリーは、汎用並列アルゴリズム、コンカレント・コンテナー、スケラーブル・メモリー・アロケーター、ワークスチール・タスク・スケジューラー、低レベル同期プリミティブを含む、並列プログラミング向けの広範な機能を提供します。インテル® TBB は、タスクベースの並列処理向けライブラリー・ソリューションであり、特別なコンパイラー・サポートは必要ありません。インテル® アーキテクチャー、ARM*、POWER* を含む、複数のアーキテクチャーで利用できます。

例えば、コース料理を調理するときにコンロの口が 1 つしかなければ、一度に 1 つの料理しか調理できません。コンロの口が 4 つあれば、一度に 4 つの料理を調理して、同時にテーブルに出すことができます。ソフトウェアの並列処理も同様です。並列処理を行うために使用される手法はいくつかあり、スレッド化はその 1 つです。目的は、可能な場所でプログラムを分割して、異なる領域をマルチコア構成の異なるプロセッサーで同時に実行できるようにすることです。その後、分割されたプログラムがすべて集められ、アプリケーションの結果が生成されます。 タスクベースの並列処理は、いくつかのワーク項目 (タスク) を並列に実行するメカニズムです。

スレッド化は一種の並列処理で、マルチプロセッサーまたはマルチコアのコンピューターで同時に実行できる部分にアプリケーションを分解するため、ソフトウェア開発者により使用される手法です。スレッド化されたアプリケーションは、1 つのオペレーティング・システムの管理の下、1 台のコンピューターの複数のコアで実行されます。

C++ は、ほかの広く利用されている言語と同様に、並列処理を表現するために設計されていません。幸いにも、C++ はテンプレートを使用して拡張可能です。開発者は、多くのコードを追加することなくスケーラブルなパフォーマンスを得られる OpenMP* の概念を気に入っていましたが、C++ のオブジェクト指向/テンプレート・ベースのプログラミング・スタイルにより適したものを必要としていました。並列コンテナーとアルゴリズムに関する開発者からの要望に応えるには、テンプレートが最適でした。STL が使用する汎用プログラミング・スタイル (パフォーマンスを損なうことなくコンポーネントを容易に構成できる) は、非常に魅力的でした。そこで、我々は、STL が C++ を拡張したのと似た方法で C++ を拡張しました。 抽象化は開発者にとって重要です。ネイティブスレッドを使用して、独自の明示的なスレッド管理を行うことは、並列処理向けのアセンブリー言語と言えます。インテル® TBB は、多くの理由により必要な抽象化です。ネイティブスレッドを使用した並列処理向けのプログラミングは、面倒で、ミスを引き起こしやすく、可搬性がありません。また、高レベルのスケーラビリティーには高度なプログラミングが求められるため、容易に達成できるものではありません。

ランタイム料やロイヤルティーを支払う必要はありません。

はい。インテル® TBB を使用してスレッド化されたアプリケーションは、インテル® VTune™ Amplifier XE およびインテル® Inspector で解析できます。インテル® Parallel Studio XE 製品に含まれているインテル® Advisor を利用すると、並列処理によりパフォーマンスが大幅に向上する可能性のある領域を特定できます。

インテル® TBB は、、インテル® Parallel Studio XE およびインテル® System Studio の一部として提供されています。さらに、Apache* 2.0 ライセンスの下で、オープンソースとして提供されています。

インテル® TBB のソースコード、ドキュメント、ユーザーフォーラム、ブログ、ポッドキャスト、記事、ホワイトペーパー、サポートは、threadingbuildingblocks.org (英語) で提供されています。

インテル® レジストレーション・センターで操作します。
操作手順やよくあるご質問、トラブルシューティングは、インテル® レジストレーション・センター操作マニュアルを参照ください。

»マニュアルはこちら

最新版、または旧バージョンのダウンロードは、インテル® レジストレーション・センターで行います。
詳細は以下ページを参照ください。

»製品登録 & ダウンロード

購入

技術情報

サポート