TaskManager, 하이퍼 스레딩 : 어떤 CPU가 실제이고 어떤 CPU가 HT입니까?


4

작업 관리자를 열면 4 개의 코어 + 하이퍼 스레딩 (Win7 x64에서 실행)이있는 Core i7이 있으므로 CPU 그래프에 8 개의 CPU가 표시됩니다.

프로세스 선호도를 설정하면 CPU 0 ~ CPU 7이 나열됩니다.

어떤 CPU가 실제 코어이고 어떤 CPU가 HT 코어인지 어떻게 알 수 있습니까?

0/2/4/6이 실제 코어이므로 첫 번째, 세 번째, 다섯 번째 및 일곱 번째 CPU 그래프가 실제 코어라고 들었습니다.

그게 사실입니까?


StackAthletes 의 순위에 오신 것을 환영합니다 !
Dennis Williamson

답변:


4

인텔은 원래 BIOS 구현자가 논리 (HT) CPU보다 먼저 모든 물리적 CPU를 열거하기를 원했습니다. 그 이유는 운영 체제가 시스템에서 사용 가능한 것보다 적은 수의 CPU를 지원할 경우 논리 코어를보기 전에 실제 코어를 먼저 볼 수 있기 때문입니다. 오늘날에는 문제가되지 않지만 HT가 포함 된 듀얼 코어 Pentium 4를 구입하여 Windows 2000 Pro 시스템에 넣은 후 2 개의 CPU 만 볼 수있게되면서 실제로 문제가되었습니다. 나는 구현이 그로부터 벗어날 것이라고 의심한다. 따라서 귀하의 경우 CPU 0-3이 물리적 코어이고 CPU 4-7이 HT 코어 일 가능성이 큽니다.

HT로 인해 균형이 맞지 않는 자체 멀티 스레드 소프트웨어에 문제가있는 경우 스레드 수를 물리적 코어로만 제한하거나 알고리즘 / 데이터 구조에서 더 HT- 친한. GetLogicalProcessorInformation 은 물리적 코어 수와 논리적 코어 수를 확인하는 데 필요한 API 호출입니다. 이 페이지 에는 물리적 CPU 수를 결정하기위한 샘플 코드가 있습니다.

코드를 HT 친화적으로 만드는 것은 완전히 다른 왁스 공이며 실제로는 슈퍼 유저에게 적합하지 않습니다. :-)


1
SIV 가 Windows가 CPU를 열거하는 방법을 보여줄 수있는 것처럼 보입니다 . 예제는 이 스크린 샷 을 참조하십시오 .
afrazier

0

HT 코어의 핵심은 실제 프로세서 인 것처럼 시스템에 표시하는 것입니다. 100 % 확실하지는 않지만 어느 것이 실제이고 어떤 것이 HT인지 알 수있는 실제적인 방법은 없다고 생각합니다.

또한 HT를 올바르게 이해하면 실제 코어의 무료 처리 능력을 사용하여 작동합니다. HT 코어가 까다로운 프로세스를 실행 중이고 실제 코어가 그렇지 않은 경우 HT가 처리 성능을 사용합니다. 그럼에도 불구하고 이로 인해 대부분의 까다로운 프로세스가 실제 코어 및 HT 코어에 제공되고 백그라운드 작업을 실행하는 실제 코어가있을 수있는 문제가 발생할 수 있습니다.


실제로 대부분의 경우 투명하고 Windows 스케줄러에서 처리 해야 합니다. 그러나 2-Thread 응용 프로그램이 Core에서 실행 중이고 HT Core 인 경우 문제가 될 수 있습니다. 특히 선호도를 수동으로 설정할 때. SQL Server는 HT와 관련하여 문제가 될 수있는 응용 프로그램 중 하나이지만 균형이 맞지 않는 다른 응용 프로그램 (주로 직접 작성 한 것 : /)이 있습니다.
Michael Stum

@ Michael Stum 나는 이것에 대해 생각하고 있었고 HT가 처음 등장했던 시절에 Aquanox 2라는 게임이 있었음을 기억합니다. HT 지원을 활성화 또는 비활성화하는 옵션이있었습니다. 그들이 어떻게 그렇게했는지 궁금합니다.
AndrejaKo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.