自動チャンク

並列ループ構造では、スケジュールするワークのすべてのチャンクでオーバーヘッドが発生します。バージョン 2.2 から、インテル® スレッディング・ビルディング・ブロック (インテル® TBB) は、ロード・バランシングの必要性に応じて、チャンクサイズを自動的に選択するようになりました。[1] ヒューリスティックは、ロード・バランシングのための十分な機会を提供しながら、オーバーヘッドを抑制します。

警告

一般に、parallel_for を使用するメリットがあるのは、少なくとも 100 万クロックサイクルのループを処理する場合です。例えば、2GHz のプロセッサーで 500 ミリ秒のループを処理する場合、parallel_for を使用するメリットがあるでしょう。

通常は、デフォルトの自動チャンクを推奨します。ただし、ほとんどのヒューリスティックでは、チャンクサイズをより正確に制御することでパフォーマンスが向上します。

関連情報

[1] インテル® TBB 2.1 では、デフォルトは自動ではありません でした。以前のデフォルトの動作にするには、TBB_DEPRECATED=1 を指定してコンパイルします。