отключение hyperthreading на многоядерных компьютерах Dell

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

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

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

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

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

Если отключение hyperthreading увеличит скорость вычислений скриптов 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) не позволяют людям, которые покупают свои компьютеры вариант BIOS, чтобы закрыть HT. А так как окна смотрит на настройку HT в BIOS, чтобы определить, следует ли обрабатывать HT, это случай застревания в низкой передаче, и нет возможности перейти вверх."

Так как мой компьютер Dell, возможно, я не в состоянии отключить Hyper-threading.

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

отключить Hyperthreading в реестре Windows 7

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

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

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

11
задан Community
28.12.2022 22:54 Количество просмотров материала 2416
Распечатать страницу

1 ответ

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

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

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

что делает HT?

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

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

2 ядра, без Hyper-threading

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

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

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

Etc.

Так для введение в ХТ.

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

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

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

что мой друг хотел сказать?

давайте посмотрим на ваш процессор 4 core 8 протекторов примерно так:

Core 1, CPU 1 (real)

Core 1, CPU 2 (с HT)

Core 2, CPU 3 (real)

Core 2, CPU 4 (с HT)

Core 3, CPU 5 (real)

Core 3, CPU 6 (с HT)

Core 4, CPU 7 (real)

Core 4, CPU 8 (с HT)

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

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




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

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

3
отвечен Hennes 2022-12-30 06:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх