Определение топологии многоядерных процессоров с 32-разрядной архитектурой Intel.

Опубликовано: 27 июня 2007 г. | Последние Изменения: 8 сентября 2008 г.
Введение
Авторы: Ханг Нгуйен (Khang Nguyen) и Шийонг Куо (Shihjong Kuo)

В статье рассматривается надежный алгоритм, с помощью которого прикладное ПО определяет количество процессоров и объем кэша в любой многопроцессорной системе на базе процессоров Intel. Информация о количестве процессоров требуется для соблюдения лицензионной политики. Также, с учетом количества процессоров и объема кэша системы, многопоточное ПО будет оптимально использовать все аппаратные ресурсы, что обеспечит максимальное быстродействие.

В любом случае, программное обеспечение обязано распознавать оборудование, которое поддерживает многопоточную обработку. Для соблюдения лицензионной политики компания Intel рекомендует проверять количество физических процессоров в системе. В целях оптимизации необходимо определять не только количество физических процессоров в системе, но и число их ядер, так как от этих факторов зависит распределение ресурсов, которое осуществляют приложения.

Алгоритм, описанный в статье, организует определение количества физических процессоров, ядер, а также логических процессоров, которые совместно используют одно и то же ядро в многопроцессных системах на базе 32-разрядных процессоров Intel. Данный алгоритм подходит к различным конфигурациям многопроцессного аппаратного обеспечения: для однопроцессорных и многопроцессорных систем, систем с поддержкой технологии Hyper-Threading на базе 32-разрядных процессоров Intel, систем на базе двух- и многоядерных процессоров.

Примеры кода и файлы для загрузки (описание кода вместе с его полным листингом находится в приложенном PDF-файле)

  • CPUCOUNT.EXE [EXE, 48 Кб] нажмите на ссылку для запуска
  • CPUCOUNT.CPP [TXT, 20,4 Кб] файл для компиляции


Полная версия статьи [PDF, 208 Кб]




Post a comment If you have any questions, please contact our support team.