병렬 알고리즘에 대한 실행 정책을 설명합니다.
구문
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 스레드 풀은 스레드 수를 관리합니다. 구현은 동시에 실행할 수 있는 하드웨어 스레드 수에 해당하는 사용 가능한 논리 프로세서를 사용하려고 합니다.
Windows 스레드 풀을 parallel_policy
사용하여 표준 라이브러리 알고리즘을 병렬로 실행하도록 지정하거나 parallel_unsequenced_policy
발생합니다. 동시 스레드 수와 데이터 분할에 대한 "청크"의 수는 기본 스레드 풀 스레드 수이므로 500개 스레드로 제한됩니다. 자세한 내용은 스레드 풀을 참조 하세요.
Windows 11 및 Windows Server 2022 이전에는 애플리케이션이 기본적으로 논리 프로세서가 최대 64개인 단일 프로세서 그룹으로 제한되었습니다. 이렇게 하면 동시에 실행되는 스레드 수가 64개로 제한되었습니다. 자세한 내용은 프로세서 그룹을 참조 하세요.
Windows 11 및 Windows Server 2022부터 프로세스와 해당 스레드에는 기본적으로 시스템의 모든 프로세서와 64개 이상의 프로세서가 있는 컴퓨터의 여러 그룹에 걸쳐 있는 프로세서 친화성이 있습니다. 동시 스레드 수에 대한 제한은 이제 시스템의 총 논리 프로세서 수입니다.
요구 사항
머리글: <execution>
네임스페이스: std