インテル® oneTBB
Vector illustration gear wheel, hexagons and circuit board, Hi-tech digital technology and engineering, digital telecom technology concept. Abstract futuristic on light blue color background
2016.03.112023.08.12
並列化を支援し、パフォーマンスを向上する C++ テンプレート・ライブラリー
高レベルのタスクベース並列性を効率良く実装する豊富なコンポーネント
OS 間で優れた移植性
関連記事
リソース
FAQ
すべて開く
すべて閉じる
よくある問い合わせ
並列性とは?
例えば、コース料理を 1 口のレンジで調理する場合、1 度に調理できるのはコースのうち 1 品だけです。 4 口のレンジがあれば、4 品を一度に調理でき、すべて同時にテーブルに並べることができます。ソフトウェアにおける並列処理も同様です。並列処理を実装するにはいくつかの手法がありますが、スレッド化はその 1 つです。アイディアとしては、マルチコア構成の異なるプロセッサーコア上で、アプリケーションを同時に実行できるようにプログラムを分割することです。その結果、アプリケーションの結果を生成するため、アプリケーションの一部分がすべて同時に動作します。
タスクベースの並列処理は、複数のワークアイテム (タスク) を同時に実行するメカニズムです。
スレッド化とは?
スレッド化は並列処理の王道です。これは、マルチプロセッサーまたはマルチコアを備えたコンピューター上で、同時に実行できるコード領域にアプリケーションを分割するため、ソフトウェア開発者によって利用される技術です。スレッド化されたアプリケーションは、オペレーティング・システムの管理下で、マルチコアとシングルコアのコンピューターの両方で実行できます。
インテル® TBB の評価版はどこで入手できますか?
30 日間利用可能な評価版は、こちらで入手できます。評価用ライセンスをリクエストした後、インテル® プレミアサポートのアカウントを作成すると、評価期間中にインテル® プレミアサポートの無料サポートを受けることができます。
なぜ C++ はインテル® TBB を必要とするのですか?
C++ は、ほかの一般的な言語と同様に並列処理を表現するように設計されていません。幸いなことに、C++ はテンプレートにより拡張できます。開発者は、新しいコードをあまり追加することなくスケーラブルなパフォーマンスを得ることができる OpenMP* コンセプトを好んでいましたが、C++ のオブジェクト指向/テンプレートベースのプログラミング・スタイルにより連携したものを必要としていました。開発者は、私たちに並列コンテナーやアルゴリムのようなものを求めていました。それには、テンプレートが最も適していました。”ジェネリック・プログラミング” のスタイルは STL で導入され、パフォーマンスを犠牲にすることなくコンポーネントを容易に構成できます。これは私たちに多くのことを教えてくれました。私たちは、STL が C++ を拡張するのと同様の手法で C++ を拡張することにしました。
抽象化は、開発者にとって重要です。OS が提供するネイティブスレッドを使用して、明示的にスレッドをプログラミングするのは、並列化におけるアセンブリー言語のように複雑です。インテル® TBB は、多くの理由から抽象化を実装しています。ネイティブスレッドによる並列処理は、間違いを起こしやすく、退屈で、移植性がありません。また、高レベルのスケーラビリティーをプログラムすることは困難であるため、それほどスケーラブルではありません。
ランタイムのコストやライブラリーのロイヤルティーは必要ですか?
ランタイムのコストやロイヤルティーは必要ありません。
インテル® TBB のセマンティクスを解釈できる解析ツールはありますか?
インテル® TBB の使い方を解説する開発者向けの書籍はありますか?
オープンソース版と商用版の違いは何ですか?
現在オープンソース版と商用版で機能的な違いはありません。どちらも 1 つのソースベースで保守されており、同じソースベースからビルドされています。オープンソース版と商用版の違いは、サポートレベルだけです。
インテル® TBB の商用版は、追加のサポートが必要であるか、ランタイム時のライセンスを除くオープンソース GNU* 一般公衆利用許諾 v2.0 に従うことが困難な Windows*、Linux* および OS X* 向けの開発者に提供されています。製品を購入すると、インテル® レジストレーション・センターでの 1 年間の製品アップデートとインテル® プレミアサポートからの技術サポートを受けることができます。インテル® プレミアサポートでは、インテルの技術者へ問い合わせをすることができます。インテル® プレミアサポートに加え、ユーザーフォーラム、技術ノート、アプリケーション・ノート、およびドキュメントが提供されます。
オープンソース版のサポートは、threadingbuildingblocks.org (英語) でユーザーフォーラム、ドキュメント、追加のリソースが提供されます。
インテル® TBB オープンソース版に関する詳しい情報はどこで入手できますか?
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。