simple_partitioner

[algorithms.simple_partitioner]

並列ループをそれ以上細分化できなくなるまで、範囲を再帰的に分割することを指定します。

simple_partitioner は、各サブ範囲 r で条件 !r.is_divisible() が成立するまで、ループ・テンプレートが範囲を再帰的に分割することを指定します。これは、範囲引数を受け取るループ・テンプレートのデフォルト動作です。

simple_partitioner クラスは、ISO C++ [utility.arg.requirements] の CopyConstructibe 要件を満たしています。

ヒント

並列ループで simple_partitionerblocked_range を使用する場合、blocked_range で適切な粒度を指定するようにしてください。デフォルトの粒度は 1 です。デフォルト設定では、サブ範囲が小さくなりすぎて効率良く実行できないことがあります。


// <oneapi/tbb/partitioner.h> ヘッダーで定義 

namespace oneapi { 
    namespace tbb { 

        class simple_partitioner { 
        public: 
            simple_partitioner() = default; 
            ~simple_partitioner() = default; 
        }; 
    } // namespace tbb 
} // namespace oneapi

参照: