oneTBB を統合#

アプリケーションのパフォーマンスとスケーラビリティーを向上させたい場合、プロジェクトに oneTBB を統合できます。たとえば、アプリケーションで大量のデータを並列に処理する必要がある場合は、oneTBB を統合することが考えられます。

oneTBB を統合するには、以下が必要です:

  • oneTBB をプロジェクトのソースコードにリンクします。

  • 必要なコンパイラーとリンカーのフラグを指定します。

ただし、CMake* と pkg-config ツールを使用すると、oneTBB をプロジェクトに統合する依存関係を処理するプロセスを簡素化できます。ツールの使用方法については、以下の手順を参照してください。

oneTBB を CMake* と統合#

CMake* は、依存関係の管理とシステムのビルドに役立つクロスプラットフォーム・ビルド・ツールです。CMake* を使用して oneTBB をプロジェクトに統合します。

  • ライブラリーのビルドとリンクのプロセスを簡素化します。

  • プロジェクトを複数のプラットフォームでビルドして実行できることを保証します。

  • oneTBB の依存関係を管理できます。

CMake* を使用して oneTBB を別のプロジェクトに追加するには、CMakeLists.txt ファイルに次のコマンドを追加します。

find_package(TBB REQUIRED) target_link_libraries(my_executable TBB::tbb)

その後、通常どおり CMake* を使用してプロジェクトを構成します。

pkg-config を使用してプログラムをコンパイル#

pkg-config ツールは、特別なメタデータファイルからパッケージに関する情報を取得して、コンパイルのコマンドラインを簡素化するために使用されます。これにより、大きなハードコードされたパスを回避し、コンパイルの移植性を高めることができます。

Linux* 上で oneTBB を使用してテストプログラム test.cpp をコンパイルするには、インクルードされるファイルとライブラリーを検索するフルパスを指定するか、次のような行を指定します。

g++ -o test test.cpp $(pkg-config --libs --cflags tbb)

説明:

--cflagsは oneTBB ライブラリーのインクルード・パスを提供します。

$ pkg-config --cflags tbb -I<path-to>/tbb/latest/lib/pkgconfig/../..//include

--libs は、oneTBB ライブラリー名とそれを検索するパスを提供します。

$ pkg-config libs tbb -L<path to>tbb/latest/lib/pkgconfig/../..//lib/intel64/gcc4.8 -ltbb

Windows* では、さらに、コンパイルおよびリンクフラグを適切なモードに変換する --msvc-syntax オプションフラグを使用します。