Почему мой процессор использует только одно ядро?
3 ответа
4 × 0,25 соответствует 1.
Похоже, что однопотоковая задача запланирована для выполнения на нескольких процессорах в циклическом порядке, что и делает Windows для распределения вычислительной и, следовательно, электрической и тепловой нагрузки между различными областями микросхемы для улучшения отвода тепла. Это не имеет ничего общего с многопоточностью и является просто артефактом различных стратегий планирования Windows и Linux.
Похоже, у вас есть одна очень занятая (не многопоточная) программа, которая занимает один процессор. Могу поспорить, что вы найдете один процесс с почти 100% загрузкой ЦП в ненормальном состоянии ("почти сбой") - например, Firefox с множеством открытых вкладок и мощью JavaScript для сосания. Бег ps aux
на консоли должен дать вам виновника. Стабильно увеличивающееся потребление памяти также может быть вызвано этим процессом. Большинство других процессов более или менее хорошо распределены по другим процессорам, обеспечивая ожидаемую нагрузку 10-20%.
Это возможно, только если программа позволяет многопоточность. Если сама задача поддерживает многопоточность, ее нельзя распараллелить. Например, метод Ньютона-Рафсона.
Но ваш процессор в основном не использует одно и то же ядро каждый раз, а выбирает одно из ядер случайным образом для программы. Например, разное ядро достигает 100% при каждом запуске программы.
График системного монитора: