auto_partitioner クラス

概要

並列ループがワークスチール・イベントに基づいて範囲の細分化を最適化するように指定します。

ヘッダー

#include "tbb/partitioner.h"

構文

class auto_partitioner;

説明

auto_partitioner を含むループ・テンプレートは、ワークスチールのための十分な機会を提供しながら、範囲分割を最小限に抑えようとします。

範囲分割は、最初は S サブ範囲に限定されます。ここで、S は task_scheduler_init または task_arena によって指定されたスレッド数に比例します。各サブ範囲は、アイドルスレッドによってスチールされない限り、さらに分割されることはありません。スチールされた場合は、追加のサブ範囲を作成するために再分割されます。このため、auto_partitioner を含むループ・テンプレートは、負荷のバランスをとる必要がある場合のみ、追加のサブ範囲を作成します。

ヒント

並列ループで auto_partitionerblocked_range を使用する場合、ボディーに blocked_range よりも大きな粒度のサブ範囲が渡されることがあります。このため、粒度はサブ範囲の上限であると仮定することはできません。上限が必要な場合は、simple_partitioner を使用してください。

メンバー

namespace tbb {
    class auto_partitioner {
    public:
        auto_partitioner();
        ~auto_partitioner();
    };
}
      
次の表は、このテンプレート・クラスのメンバーの詳細な情報を提供します。
メンバー 説明
auto_partitioner()

auto_partitioner を構築します。

~auto_partitioner()

この auto_partitioner を破棄します。

関連情報