2012-06-26 4 views
2

Я хотел бы знать, есть ли способ найти фактический физический номер процессора/сокета, на котором запущен текущий процесс, или сопоставление для него, при условии номера логического процессора.Как найти идентификатор/номер физического сокета, на котором выполняется процесс?

У меня есть система сокетов 8, в результате чего получается в общей сложности 128 (0-127) логических процессоров. Как из того, что я прочитал в msdn, они будут разделены на 2 группы процессоров по 64 логических процессора. http://msdn.microsoft.com/en-us/library/dd405503

Я пытался смотреть на CPUID и GetNumaProcessorNodeEx от CPUID, APIC ID позволяет определить логические процессоры ID, и из GetNumaProcessorNodeEx, я получаю узел NUMA (это я нашел, чтобы быть полезным, если есть 64 или меньшее количество логических процессоров) Возможно ли, если логический процессор является гиперпотоком?

Я пытаюсь создать такой инструмент.

процессора нет - разъем/сердцевина ID/HT

процессор 0 - 0/0/0

процессор 1 - 0/1/1

процессор 2 - 0/2/0

...

процессор 8 - 1/0/0

процессор 9 - 1/1/1

...

Любая помощь или ссылки, чтобы понять это было бы здорово.

спасибо

+0

Этот веб-сайт ** не является ** уборочным комбайном. – Neal

+0

@Neal Я не просто пытаюсь собрать ссылки. Я ищу помощь даже в том, чтобы перенаправить меня на другие варианты. Я ни в коем случае не ожидаю, что кто-нибудь ответит мне. Даже руководство меня к решению было бы очень полезно. – Uday

+0

Могу ли я узнать причины для голосования? я мог бы перефразировать/улучшить вопрос. – Uday

ответ

2

Параметр/Ядро иерархии сокет/поток в битах APIC ID.
N младших бит - это поток, M low - это ядро, остальные высокие бит - это сокет.
Чтобы найти N и M, вам необходимо использовать некоторые коды CPUID:
Код 1 дает вам количество потоков на сокет (где-то в EBX).
Код 4 дает вам количество ядер на сокет (в EAX).
Если, например, у вас есть 12 потоков и 6 ядер на сокет, то младший бит - это идентификатор потока, а следующие 3 - это ядро, остальные - сокет.

+0

Спасибо. Это действительно помогает. – Uday

+0

Если кому-то еще нужна помощь по документации, я могу предоставить ссылку здесь. http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ – Uday

Смежные вопросы