パーティショナーのまとめ

並列ループ・テンプレート parallel_for および parallel_reduce には、パーティショナー (ループを実行する手法) を指定するオプションの引数があります。 次の表は、3 つのパーティショナーの説明および blocked_range とともに使用した場合の効果をまとめたものです。

パーティショナー

パーティショナー

説明

blocked_range(i,j,g) とともに使用した場合

simple_partitioner

チャンクサイズを粒度によって制限します。

g/2 ≤ chunksizeg

auto_partitioner (デフォルト)[4]

チャンクサイズを自動的に設定します。

g/2 ≤ chunksize

affinity_partitioner

チャンクサイズとキャッシュ・アフィニティーを自動的に設定します。

パーティショナーが指定されない場合、auto_partitioner が使用されます。 通常は、auto_partitioner または affinity_partitioner を使用してください。これらのパーティショナーは、利用可能な実行リソースに基づいてチャンクの数を調整します。 ただし、次の場合は simple_partitioner が便利です。

関連情報

[4] インテル® スレッディング・ビルディング・ブロック (インテル® TBB) 2.2 より前のバージョンでは、デフォルトが simple_partitioner でした。以前のデフォルトの動作にするには、TBB_DEPRECATED=1 を指定してコンパイルします。