Авторы: Ханг Нгуйен (Khang Nguyen) и Шийонг Куо (Shihjong Kuo)
В статье рассматривается надежный алгоритм, с помощью которого прикладное ПО определяет количество процессоров и объем кэша в любой многопроцессорной системе на базе процессоров Intel. Информация о количестве процессоров требуется для соблюдения лицензионной политики. Также, с учетом количества процессоров и объема кэша системы, многопоточное ПО будет оптимально использовать все аппаратные ресурсы, что обеспечит максимальное быстродействие.
В любом случае, программное обеспечение обязано распознавать оборудование, которое поддерживает многопоточную обработку. Для соблюдения лицензионной политики компания Intel рекомендует проверять количество физических процессоров в системе. В целях оптимизации необходимо определять не только количество физических процессоров в системе, но и число их ядер, так как от этих факторов зависит распределение ресурсов, которое осуществляют приложения.
Алгоритм, описанный в статье, организует определение количества физических процессоров, ядер, а также логических процессоров, которые совместно используют одно и то же ядро в многопроцессных системах на базе 32-разрядных процессоров Intel. Данный алгоритм подходит к различным конфигурациям многопроцессного аппаратного обеспечения: для однопроцессорных и многопроцессорных систем, систем с поддержкой технологии Hyper-Threading на базе 32-разрядных процессоров Intel, систем на базе двух- и многоядерных процессоров.
Примеры кода и файлы для загрузки (описание кода вместе с его полным листингом находится в приложенном PDF-файле)
Полная версия статьи [PDF, 208 Кб]