как узнать включен ли hyper threading
Проверка включенности HyperThreading или нет?
Как проверить, включена ли гиперпоточность на машине Linux, используя скрипт perl для проверки?
Я пытаюсь сделать следующий путь:
Сообщите мне, если я на правильном пути.
12 ответов
—- Оригинальный ответ от 25 марта 2012 года:
Вы действительно на правильном пути 🙂 с помощью
или если вы хотите включить «ht» в шаблон
( \b соответствует границам слов и помогает избежать ложных срабатываний в случаях, когда «ht» является частью другого флага.)
Я всегда использовал следующее и смотрел «Thread (s) на ядро:».
Обратите внимание, что этот метод не сработает, если какой-либо логический процессор отключен с помощью простого
Если количество логических процессоров в два раза превышает количество ядер, у вас есть HT. Используйте следующий скрипт для декодирования /proc /cpuinfo :
Я считаю, что это будет работать на всех платформах и расскажет вам, способен ли его процессор, и если он включен. Может быть, немного беспорядочно, но я начинаю писать сценарии. Я тестировал с помощью centos XENSERVER vm, Ubuntu и Openfiler (rpath)
Вы можете проверить возможности HT CPU с помощью этой команды
Вы можете указать физический и логический процессор, наблюдаемый ядром, следующей командой:
Он дает этот вывод на одноядерном процессоре с поддержкой HT:
Вы можете прочитать результат следующим образом:
Этот один лайнер, похоже, делает трюк для меня (требует привилегий root):
Количество потоков в два раза больше, чем количество ядер, поэтому у меня включен hyperthreading.
Этот результат указывает, что HT включен, поскольку номер siblings (12) больше, чем cpu cores (6)
Например, на моем 2-сокетном 6-ядерном Xeon с включенным hyperthreading я получаю:
Но после отключения гиперпотока в BIOS я получаю:
Я бы ответил в Perl, но 1) я не знаю Perl, и 2) я полагаю, что это решение довольно тривиальное однострочное.
В Linux это хорошо работает:
В приведенном выше примере у нас есть 2 гнезда NUMA (SOCKET = 1 или 2). У нас есть 16 физических ядер (CORE = 0-15). У каждого CORE есть гиперссылка для родного брата (например, CORE = 0 содержит CPU 0,16.
Мы можем проверить гиперпоток следующим образом:
Лучше вы проверяете lscpu, где вы видите «Thread (s) на ядро: 1», означает только один поток на 1 ядро.
Вот моя попытка; благодаря @scottbb для вдохновения:
На моих компьютерах на базе Dell Xeon список сестер включает запятую, когда HT включен. На моем ноутбуке он включает дефис (процессор i5-3210m). Поэтому я предпочитаю знаки препинания.
Hyper threading — как включить
Приходит время и нам необходимо заменить/установить/ процессор в системном блоке. Но, после этих процедур система может его не увидеть и, соответственно, работать он полноценно не сможет – то есть, никакой практическое пользы нести не будет. Всё это связано с функцией hyper threading, а как включить ее и самое главное, где ее нужно искать – кратко в небольшом обзоре.
Важно! После того, как вы сделали это, перезагрузите компьютер, предварительно сохранив данные изменения. Если же в диспетчере устройств у вас не появились корректные данные о процессоре – вам придётся переустановить систему из-за того, что вы ставили ее при выключенной функции Hyper threading, что и повлекло за собой неправильную работу распознавателя процессора. Перед переустановкой убедитесь в том, что функция включена в режим “Enabled”, чтобы избежать переустановки еще раз.
Вы хотите организовать домашнюю локальную сеть или соединить в одну сеть посредством разных архитектур в аудиториях или офисе? В таких ситуациях, вам необходимо проверить, включен ли динамический протокол конфигурации узла – DHCP. Как.
Технологии беспроводной передачи данных, хоть и давно уже пришли к нам, до сих пор популярны в использовании, хотя бы потому что передача данных происходит быстро и не зависит от подключения интернета (кроме wifi). Самым популярной.
Чаще всего, те, кто ранее пользовался Windows 7 не могут быстро привыкнуть к «восьмёрке», т.к. она не совсем схожа с «семёркой». Из-за этого возникают казусы и некоторые простые функции не получается найти или включить. В данной статье мы.
Технология Hyper threading
Процессор является одним важнейших компонентов компьютера или ноутбука, он выполняет функцию мозга. Люди, которые увлекаются реалистичными современными играми, или, к примеру, те, кто занимается профессиональным видеомонтажом, знают, что чем мощней будет «вычислитель», тем более сложные задачи возможно выполнять. У каждого процессора имеется своя пропускная способность, но с помощью современных разработок удается в несколько раз улучшить его основную характеристику. Ярким примером можно назвать технологию Hyper Threading. Впервые она появилась в 2002 году, в процессорах Xeon и Pentium 4, а позже – и в Intel. Многие пользователи до сих пор не понимают, действительно с помощью данной разработки увеличивается мощность ядерников? Или это маркетинговая ловушка?
Что представляет собой технология?
Чтобы понять Intel Hyper Threading, рекомендуется изучить определение, представленное самими разработчиками. По их утверждению, опция помогает обеспечить эффективное использование ресурсов мозгового центра электронного устройства за счет выполнения на одном ядре сразу нескольких потоков. Быстродействие многопоточных приложений улучшается, тем самым увеличивая пропускную характеристику процессора.
Если перевести название технологии с английского языка, то перевод будет звучать как «гиперточность». Разработчики компании Intel решили внедрить HT после того, как установили, что ядерники используют во время работы не больше 70% мощности. Благодаря разработке не будет наблюдаться простых вычислительных блоков, они будут нагружаться работой с другим потоком. С ее помощью производительность ядра можно увеличить с 10 до 80%.
Попробуем разобрать на конкретном примере, как работают процессоры Hyper Threading. Мозговой центр может совершать несложные вычисления, при этом будут простаивать некоторые расширения. Модуль это сразу обнаружит и отправит туда данные для нового вычисления. Блоки не всегда быстро способны обрабатывать полученные данные, но уже не будут простаивать без дела. Виртуальный поток нельзя сравнивать с полноценным ядром, но вычислительную мощность допустимо увеличить до 100%. Для реализации IHT Technology достаточно всего 5% свободного места на кристалле, при том, что мощность возрастет не меньше чем на 50%.
Плюсы и минусы технологии
Нужна ли Хайпер Тридинг? Прежде всего, стоит рассмотреть преимущества и недостатки. К первым относятся следующие моменты:
У разработки есть и недостатки:
Специалисты рекомендуют изучить, какие программы хорошо работают с разработкой Hyper Threading в Windows 10, а какие – относятся негативно. К первым можно отнести архиваторы, программы для 3D моделирования и обработки видео. Ко второй категории относится большинство игр. Они плохо работают с гиперточностью, но если компьютер оснащен высокочастотным четырехядерным мозгом, то в ней нет надобности. Игроманам рекомендуется проверить, включен ли Hyper Threading, и если игра не оптимизирована под опцию, ее лучше деактивировать.
Как включить и отключить Хайпер Тридинг
Компьютер или ноутбук на сегодняшний день имеется практически в каждом доме, но далеко не все пользователи слышали о Hyper Threading и знают, что это такое. Данную комбинацию слов любопытный юзер мог видеть в биосе. Даже если он не обратил на нее внимания, в один день возникает острая необходимость в использовании и активации данной опции. При замене процессора в системном блоке ОС может его не распознать, и тогда потребуется включить технологию HT.
Функция доступна исключительно в меню BIOS, в которое следует зайти до того, как будет загружена система. После запуска компьютера необходимо нажать клавишу F2, Delete или F8 (в зависимости от марки и модели устройства) и дождаться загрузки биоса. Кто не знает, как включить Хайпер Тридинг, может воспользоваться следующей инструкцией:
Отключение HT выполняется с помощью аналогичных действий, только теперь необходимо рядом с названием опции установить команду «Disabled».
Проверка, включена ли HyperThreading или нет?
Как я могу проверить, включена ли гиперпоточность на машине с Linux, используя для этого скрипт perl?
Я пытаюсь следующим образом:
Дайте мне знать, если я на правильном пути.
Вы действительно на правильном пути 🙂 с
или если вы хотите включить «ht» в шаблон
( \b Соответствует границам слова и помогает избежать ложных срабатываний в случаях, когда «ht» является частью другого флага.)
Я всегда просто использовал следующее и смотрел на «Thread (s) per core:»).
Обратите внимание, однако, что этот метод не будет работать, если какой-либо логический процессор был отключен с помощью простого
Если количество логических процессоров в два раза больше ядер, у вас есть HT. Используйте следующий скрипт для декодирования / proc / cpuinfo :
Приведенные выше примеры показывают, способен ли ЦП поддерживать HT, но нет, если он используется. Последний способ работает, но не тестируются серверы с двумя сокетами и виртуальные машины, на Xenserver которых он не отображает физический процессор, поскольку их нет.
Я считаю, что это будет работать на всех платформах, и скажет вам, если его процессор способен, и если он включен. Может быть, немного грязно, я начинающий в сценарии, хотя. Я тестировал с помощью Centos XENSERVER vm, Ubuntu и Openfiler (rpath)
С помощью этой команды вы можете проверить возможности HT процессора.
Вы можете перечислить физический и логический процессор, видимый ядром, с помощью следующей команды:
Это дает этот вывод на одноядерный процессор с поддержкой HT:
Вы можете прочитать результат так:
Этот лайнер, кажется, помогает мне (требует привилегий root):
Счетчик потоков вдвое больше ядра, поэтому у меня включена поддержка гиперпоточности.
Этот результат указывает, что HT включен, поскольку siblings число (12) больше, чем cpu cores (6)
Например, на моем 2-сокетном 6-ядерном Xeon с включенной гиперпоточностью я получаю:
Но после отключения гиперпоточности в BIOS я получаю:
Я бы ответил на Perl, но 1) я не знаю Perl, и 2) я полагаю, что решение довольно тривиально.
На Linux это работает хорошо:
В приведенном выше примере у нас есть 2 разъема NUMA (SOCKET = 1 или 2). У нас 16 физических ядер (CORE = от 0 до 15). Каждый CORE имеет одноуровневую гиперпоточность (например, CORE = 0 содержит CPU 0,16.
Мы можем проверить Hyperthread следующим образом:
Вот моя попытка; спасибо @scottbb за вдохновение:
На моих компьютерах с процессором Dell Xeon список родственников включает запятую при включенном HT. На моем ноутбуке он содержит дефис (процессор i5-3210m). Так что я исправляю пунктуацию.
Запрашивающий запросил Perl, так что вы идете:
Самый простой способ проверить, активен ли SMT (общий для HT, который является только фирменным знаком Intel), просто сделайте:
дает 0 для неактивных или 1 для активных
Вы можете включить или выключить его во время выполнения с помощью:
Еще раз о Hyper-Threading
Было время, когда понадобилось оценить производительность памяти в контексте технологии Hyper-threading. Мы пришли к выводу, что ее влияние не всегда позитивно. Когда появился квант свободного времени, возникло желание продолжить исследования и рассмотреть происходящие процессы с точностью до машинных тактов и битов, используя программное обеспечение собственной разработки.
Исследуемая платформа
Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.
Рис.1 Конфигурация исследуемой платформы.
Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой, но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.
Исследуемая операция
Исследовать будем зависимость скорости чтения блока данных от его размера. Для этого выберем наиболее производительный метод, а именно чтение 256-битных операндов посредством AVX-инструкции VMOVAPD. На графиках по оси X отложен размер блока, по оси Y – скорость чтения. В окрестности точки X, соответствующей размеру кэш-памяти первого уровня, ожидаем увидеть точку перегиба, поскольку производительность должна упасть после того, как обрабатываемый блок выйдет за пределы кэш-памяти. В нашем тесте, в случае многопоточной обработки, каждый из 16 инициируемых потоков, работает с отдельным диапазоном адресов. Для управления технологией Hyper-Threading в рамках приложения, в каждом из потоков используется API-функция SetThreadAffinityMask, задающая маску, в которой каждому логическому процессору соответствует один бит. Единичное значение бита разрешает использовать заданный процессор заданным потоком, нулевое значение – запрещает. Для 8 логических процессоров исследуемой платформы, маска 11111111b разрешает использовать все процессоры (Hyper-Threading включен), маска 01010101b разрешает использовать по одному логическому процессору в каждом ядре (Hyper-Threading выключен).
На графиках используются следующие сокращения:
MBPS (Megabytes per Second) – скорость чтения блока в мегабайтах в секунду;
CPI (Clocks per Instruction) – количество тактов на инструкцию;
TSC (Time Stamp Counter) – счетчик процессорных тактов.
Примечание.Тактовая частота регистра TSC может не соответствовать тактовой частоте процессора при работе в режиме Turbo Boost. Это необходимо учитывать при интерпретации результатов.
В правой части графиков визуализируется шестнадцатеричный дамп инструкций, составляющих тело цикла целевой операции, выполняемой в каждом из программных потоков, или первые 128 байт этого кода.
Опыт №1. Один поток
Рис.2 Чтение одним потоком
Максимальная скорость 213563 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт.
Опыт №2. 16 потоков на 4 процессора, Hyper-Threading выключен
Рис.3 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно четырем
Hyper-Threading выключен. Максимальная скорость 797598 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт. Как и ожидалось, по сравнению с чтением одним потоком, скорость выросла приблизительно в 4 раза, по количеству работающих ядер.
Опыт №3. 16 потоков на 8 процессоров, Hyper-Threading включен
Рис.4 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно восьми
Hyper-Threading включен. Максимальная скорость 800722 мегабайт в секунду, в результате включения Hyper-Threading почти не выросла. Большой минус – точка перегиба имеет место при размере блока около 16 килобайт. Включение Hyper-Threading немного увеличило максимальную скорость, но падение скорости теперь наступает при вдвое меньшем размере блока – около 16 килобайт, поэтому существенно упала средняя скорость. Это не удивительно, каждое ядро имеет собственную кэш-память первого уровня, в то время, как логические процессоры одного ядра, используют ее совместно.