tbb::serial::parallel_for()

ヘッダー

#define TBB_PREVIEW_SERIAL_SUBSET 1

#include "tbb/parallel_for.h"

目的

デバッグ中などに、特定の parallel_for() 呼び出しはシリアルに実行し、ほかの parallel_for() 呼び出しは並列に実行できると便利なことがあります。

説明

tbb::serial::parallel_for 関数は、シリアル実装を使用して tbb::parallel_for API を実装します。特定の parallel_for() 呼び出しをシリアルに実行する場合、parallel_for.h の前に TBB_PREVIEW_SERIAL_SUBSET マクロを定義し、対象となる parallel_for()tbb::serial:: プリフィクスを追加する必要があります。内部的に、シリアル実装は再帰分解と同じ法則を使用しますが、タスクをスポーンする代わりに、「実際に」再帰実行します (つまり、ボディー関数は、オリジナル範囲を 2 つに分解したサブ範囲で自身を 2 回呼び出します)。

サンプル

#define TBB_PREVIEW_SERIAL_SUBSET 1
#include <tbb/parallel_for.h>
Foo()
{
  // . . .
  tbb::serial::parallel_for( . . . );
  tbb::parallel_for( . . . );
  // . . .  
}