互換性保持の問題

異なるバージョンの共存

アプリケーションは、同じプロセス内でインテル® TBB ランタイム・ライブラリーの複数のインスタンスを使用できません。アプリケーション・モジュール (アプリケーションで使用されるサードパーティー・ライブラリーを含む) がインテル® TBB の異なるバージョンでビルドされている場合、アプリケーションは、その中の最も大きなバージョン以上のランタイム・ライブラリーを使用し、それがアプリケーション・プロセスにロードされる最初のインテル® TBB ランタイム・ライブラリーとなるようにすべきです。ランタイム・ライブラリーの複数のインスタンスを使用したり、すべてのアプリケーション・モジュールで必要とされるよりも小さなバージョンのライブラリーを使用すると、ロード時またはランタイム時にエラーになる可能性があります。

OpenMP* との互換性保持

同じプログラム内でインテル® TBB と OpenMP* 構造を短い間隔で交互に呼び出し、OpenMP* コードにインテル® C++ コンパイラーを使用している場合、パフォーマンスを向上するため、KMP_BLOCKTIME 環境変数を小さな値 (20 ミリ秒未満) に設定してください。kmp_set_blocktime() ライブラリー呼び出しを使用してプログラム内でこの設定を行うこともできます。

Linux* 向けプログラムでインテル® TBB と OpenMP* を一緒に使用している場合、インテル® TBB のタスク・スケジューラーが初期化される前に KMP_AFFINITYOMP_PROC_BIND、その他の環境変数を使用してスレッド・アフィニティーを設定すると、インテル® TBB で使用されるデフォルトのワーカースレッドの数が制限されることがあります。この問題を解決するには、インテル® C++ コンパイラー 16.0 Update 1 以降およびインテル® TBB 4.4 Update 2 以降に更新してください。

その他の問題

インテル® Xeon Phi™ コプロセッサーでのオフロード実行のためにアプリケーションで <tbb/enumerable_thread_specific.h> または <tbb/tbb.h> をインクルードすると、libpthread に関連するリンクエラーが発生することがあります。この問題を回避するには、/Qoffload-option,mic,compiler,"-pthread" (Windows*) または -qoffload-option,mic,compiler,"-pthread" (Linux*) コンパイラー・オプションを使用してください。

オプション、関数、環境変数の詳細は、インテル® C++ コンパイラーのドキュメントを参照してください。