1

У меня настольный компьютер Dell под управлением Windows 7 Professional. Я думаю, что процессор Intel Core i7-2600

Недавно специалист по компьютерам, специализирующийся на кластерах Linux, смотрел на мой настольный ПК и от руки прокомментировал, что на моей машине 8 потоков. Он сказал, что это означает, что машина имеет 4 ядра: 2 потока на ядро. Я не знал, что у машины было более одного ядра.

Теперь, когда я знаю, что машина, очевидно, имеет четыре ядра, я надеюсь запустить одновременно три модели, по одной модели на каждом из трех ядер.

Кто-то предложил мне "отключить гиперпоточность", чтобы я "мог использовать все ядро для каждой модели". В противном случае он написал: "Он работает на половине скорости".

Я управлял многими моделями, используя Программу R, и компьютерный джентльмен, который помогал мне, указал, что в одном из моих файлов скриптов R появилось сообщение о том, что он использует 7 из 8 потоков. Итак, учитывая, что файл R использует 2 потока на ядро с тремя ядрами, возможно, отключение гиперпоточности не увеличит скорость вычислений в моем случае?

Если отключение гиперпоточности увеличит скорость вычисления сценариев R, как я могу это сделать?

Я немного искал в интернете и нашел обсуждение на этом форуме:

http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/disable-hyperthreading-when-windows-7-already/80dd6c15-76b7-4534-b691-3e3a37ffad75

Один комментарий на этом форуме, который касается меня, это утверждение, что:

«Самая большая проблема для тех, кто хочет выключить HT, заключается в том, что многие производители компьютеров (HP, Dell) не позволяют людям, которые покупают их компьютеры, отключать HT с помощью опции BIOS. И поскольку Windows смотрит на HT настройка в BIOS, чтобы определить, следует ли обрабатывать HT, это случай, когда вы застряли на пониженной передаче, и у вас нет возможности переключаться вверх ».

Поскольку мой компьютер Dell, возможно, я не могу отключить гиперпоточность.

Я также нашел этот пост на Superuser:

Отключить гиперпоточность в реестре Windows 7

Один ответ там казался особенно полезным, но сложным, имея дело с шестнадцатеричными числами, и рассматриваемый компьютер был HP. Я не знаю, имеет ли это значение.

Похоже, здесь есть еще немало постов о гиперпотоках, но тот, что выше, ближе всего подходит к моей ситуации из тех, что я читал.

Извините, если этот вопрос является дубликатом. Если мне потребуется предоставить дополнительную информацию или разъяснить свои проблемы, я с радостью сделаю это.

1 ответ1

3

Почему нет опции в BIOS?

Я предполагаю, что причина, по которой Dell и друзья часто не добавляют опцию, чтобы отключить это, заключается в том, что это редко хорошая идея. В среднем это замедлит работу вашего компьютера (или, с другой точки зрения, сделает компьютеры конкурентов относительно быстрыми).

Сказав, что, давайте посмотрим на некоторые воображаемые примеры:

Что делает HT?

1 ядро, без гиперпоточности

  • 1 Процесс, связанный с процессором, работает и может работать с максимальной скоростью. Позволяет назвать эту скорость 1, или 100%
  • 2 связанных процессорных процесса. Процессор должен будет переключаться между ними. Эффективная скорость обоих процессов примерно вдвое меньше. (Сумма обеих скоростей по-прежнему равна первому примеру.)
  • 3 связанных процессорных процесса. Процессор должен будет переключаться между всеми тремя. Эффективная скорость на обоих процессах составляет примерно треть. (Сумма обеих скоростей остается одинаковой (3 x 0,33 = 1).

2 ядра, без гиперпоточности

  • 1 Процесс, связанный с процессором * 0 , работает и может работать с максимальной скоростью для этого ядра. (скорость 100%) (другое ядро бездействует).
  • 2 связанных процессорных процесса. Оба могут работать на максимальной скорости для своего ядра. (скорость 200%)
  • 3 связанных процессорных процесса. Обычно вы получаете 3 задачи, которые работают примерно на 2/3 эффективности. (Сумма скоростей по-прежнему равна 2. Примерно 2, потому что вы теряете немного из-за дополнительных накладных расходов и кеша). (скорость 200%, а может и 190%)

Теперь ядра с гиперпоточностью. Они действуют как два ядра, но не как два полных ядра. То, что Intel определяет как гиперпоточность, со временем немного изменилось, но обычно это сводится к этому. Процессор извлекает данные из памяти и вычисляет. Если ей не нужна шина памяти, то вторая часть ЦП может выполнять ограниченную работу. Поскольку не все оборудование дублируется, вы не получаете два полных ядра. Однако с ограниченным дополнительным оборудованием (10%?) Вы получаете в среднем 30% скорости. * 1

1 ядро, с - 1 процесс, связанный с процессором, работает, и может работать и с максимальной скоростью. (100%) - запущены 2 связанных с процессором процесса. Процессор должен будет переключаться между ними. Однако у него есть дополнительное оборудование. Чистая скорость будет примерно на 30% выше (скажем, скорость на одно ядро 133%)

И т.п.

Вот вам и введение в HT.

Эти вымышленные% реальны?

Нет. Прежде всего вы потеряете эффективность из-за накладных расходов. (10 задач на одном процессоре не будут выполняться медленнее, чем одна задача без переключения контекста и всего кэша для его данных).

Во-вторых, я полностью проигнорировал турбонаддув, поскольку это усложнило бы объяснение.

Что мой друг, возможно, хотел сказать?

Давайте посмотрим на ваш 4-ядерный 8-тактный процессор следующим образом:
Core 1, CPU 1 (реальный)
Core 1, CPU 2 (с HT)
Core 2, CPU 3 (реальный)
Core 2, CPU 4 (с HT)
Core 3, CPU 5 (реальный)
Core 3, CPU 6 (с HT)
Core 4, CPU 7 (реальный)
Core 4, CPU 8 (с HT)

Если я запускаю две задачи, я не хочу, чтобы они обе на CPU1 и CPU2 (так как они разделяют реальное ядро), и результат nett составляет почти половину возможной скорости. Это может быть то, что имел в виду ваш друг.

Хотя правда, я думаю, что вам не нужно беспокоиться. Планировщик Windows достаточно умен, чтобы распределять процессы сначала между процессорами 1,3,5,7, а затем - 2,4,6,8.



* 0 Процесс, связанный с процессором, - это процесс, который ограничен процессором. Если процесс ожидает diskIO, а процессор простаивает, вы получаете совершенно другие результаты.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .