2010-06-10 5 views
11

리눅스에서 CPU 주문이 무엇인지 궁금합니다. 하이퍼 스레딩 시스템에서 스레드를 cpu0에 바인드하고 다른 스레드를 cpu1에 바인드한다고 가정 해 봅시다. 둘 다 동일한 물리적 코어에있게 될 것입니다. 4 코어와 하이퍼 스레딩 코어 i7 920이 주어지면/proc/cpuinfo의 출력은 cpu0와 cpu1이 서로 다른 물리적 코어이고 cpu0와 cpu4가 동일한 물리적 코어에 있다고 생각합니다.리눅스에서 CPU 주문하기 (하이퍼 스레딩 사용)

감사합니다.

답변

18

실제 CPU/소켓은 physical id입니다.
실제 코어는 core id으로 표시됩니다.
하이퍼 스레딩으로 인한 프로세서 입력은 자체적으로 processor이되지만 core idphysical id을 다른 것과 공유하십시오.

각 물리적 CPU (physical id)는 다중 코어 (core id)를 가질 수 있으며 하이퍼 스레딩을 통해 추가 논리적 CPU로 나눌 수 있습니다. 논리적 CPU는 전체적으로 processor id으로 정렬됩니다. archive.richweb.com/cpu_info via web.archive.org

+0

올바르지 않습니다. '물리적 ID'는 소켓입니다. 그는 하이퍼 스레딩 기능을 갖춘 쿼드 코어 i7을 갖춘 단일 소켓 컴퓨터를 보유하고 있습니다. 그의 코어는 모두 '물리적 ID'0을 가져야합니다. '코어 ID'는 실제 코어를 의미하며 0-3을 가져야합니다. 논리 코어는 '프로세서'로 정의되며 번호는 0-7이어야합니다. ... 내 시스템에서 프로세서 0과 4는 동일한 코어 ID를 공유하고 프로세서 1과 5는 동일한 코어 ID를 공유합니다. 정말로 원하는 경우가 아니라면 동일한 '코어 ID'에 두 개의 프로세스를 바인드하지 않도록하십시오. 에. 따라서 프로세서 0과 4는 동일한 코어에서 논리적 CPU (하이퍼 스레딩)입니다. – bobpaul

+0

@bobpaul, 고마워 ... 고쳐. – Stephen

+0

'/ proc/cpuinfo'에서 관련 정보 만 얻으려면'egrep '((id | processo). * : |^* $) "/ proc/cpuinfo' 명령을 사용할 수 있습니다. –

-1

this link에서 제공하는 포인터를 참조하십시오

여기에 예제와 함께 자세한 설명이있다. 이 정보는 물리적 인 프로세서, 코어 및 하이퍼 스레딩과 관련하여/proc/cpuinfo에 모두 들어 있지만 그룹의 정보를 함께 식별하려면 해당 파일의 여러 항목에서 정보를 일치시켜야합니다.

1

likwid-topology -g을 사용하면 CPU의 그래픽 토폴로지를 얻을 수 있습니다. 형제 코어와 함께 각 CPU 코어를 표시합니다.