描述平行演算法的執行原則。
語法
namespace std {
template<class T> inline constexpr bool is_execution_policy_v = is_execution_policy<T>::value;
}
namespace std::execution {
inline constexpr sequenced_policy seq { unspecified };
inline constexpr parallel_policy par { unspecified };
inline constexpr parallel_unsequenced_policy par_unseq { unspecified };
}
類別和結構
名稱 | 描述 |
---|---|
is_execution_policy 結構 |
偵測執行原則,以排除特定函式簽章,使其不明確多載解析參與。 |
parallel_policy 類別 |
用來釐清平行演算法多載。 表示平行演算法的執行可能會平行化。 |
parallel_unsequenced_policy 類別 |
做為唯一類型來釐清平行演算法多載。 表示平行演算法的執行可能會平行化和向量化。 |
sequenced_policy 類別 |
做為唯一類型來釐清平行演算法多載。 指定平行演算法的執行可能不會平行化。 |
Microsoft 特定的
平行演算法會在未指定的線程數目上執行,並將工作分割成未指定的數據分割「區塊」數目。Windows 線程集區會管理線程數目。 實作會嘗試使用可用的邏輯處理器,其對應於可同時執行的硬體線程數目。
指定 parallel_policy
或 parallel_unsequenced_policy
會導致使用 Windows 線程集區平行執行標準連結庫演算法。 並行線程數目,因此數據分割的「區塊」數目限制為500個線程,因為這是線程集區線程的預設數目。 如需詳細資訊,請參閱 線程集區。
在 Windows 11 和 Windows Server 2022 之前,應用程式預設受限於最多具有 64 個邏輯處理器的單一處理器群組。 這會將同時執行的線程數目限制為 64。 如需詳細資訊,請參閱 處理器群組。
從 Windows 11 和 Windows Server 2022 開始,進程及其線程具有處理器親和性,依預設會跨越系統中的所有處理器,以及具有 64 個處理器的計算機上多個群組。 並行線程數目的限制現在是系統中邏輯處理器總數。
需求
標頭: <execution>
命名空間:std