2017-10-14 9 views

답변

0

이것은 완전히 유스 케이스에 달려 있습니다. 과 같은 주관적인 용어는 보통에 많은 여유가 있습니다! 하이퍼 스레딩 (HT)이 적합한 유스 케이스와 성능에 영향을 미치는 경우가 있습니다.

이러한 성능 저하의 사례 중 하나는 AVX 명령어를 많이 사용하는 응용 프로그램에 대한 것입니다. AVX 명령어는 VPU (벡터 처리 장치)에서 수행되며 Intel Xeon 프로세서의 코어 당 하나씩 있습니다. VPU를 사용할 수없는 경우 VPU에 액세스하려고하면 추가 스레드가 차단되어 HT 사용시 성능이 향상되지 않습니다.

HT가있는 4 개의 코어를 사용하면 8 개의 스레드를 실행할 수 있으므로 실제로는 4 개의 VPU 명령어를 한 번에 실행할 수 있으므로 다른 4 개의 스레드는 완료 될 때 차단됩니다. 블로킹 및 스케줄링의 추가 오버 헤드는 HT가 비활성화 된 상태에서 4 개의 코어에서 4 개의 스레드를 실행하는 경우보다 일반적으로 처리량을 줄입니다.

마찬가지로 8 코어에서 단 4 개의 스레드를 실행하는 OS 스케줄러는 실제 코어에서 실행되도록 스레드를 예약 할 수 있습니다. 따라서 한 스레드가 다른 스레드가 완료 될 때까지 기다리는 것을 차단할 수 있습니다. 최신 응용 프로그램과 작업 스케줄러 중 일부는 이제 OS와 조정하여 실제 코어의 스레드를 "고정"하여 HT를 활성화 할 수 있지만 코어에서 실행중인 스레드의 양을 초과 할당하지는 못합니다. 시간이 지남에 따라이 기능이 향상 될 것이지만 개발자 입장에서인지가 필요합니다.

많은 유형의 작업 부하를 처리하는 일반 서버와 같이 일반 용도의 경우 HT 단일 스레드 코어에서 추가 스레드를 실행하면 성능이 향상된다는 이점이 있습니다.