Является ли включение «Hyperthreading» в BIOS недостатком для нескольких ядер?

1

У меня есть Intel Core i7 920 в Asus P6T, для которого моя ОС имеет 8 ядер. Core i7 - это Quad, так что, вероятно, это связано с включением Hyperthreading в BIOS. Я мог бы предположить, что HT Intel может позволить одному ядру работать на максимуме, когда другая «половина» бездействует, но не должна ли ОС сначала использовать четные / нечетные ядра?

Мой вопрос прост - учитывая, что большинство программного обеспечения может использовать в своих интересах только 1 ядро, имеет 8 псевдоядер, а не только 4 реальных ядра, фактически снижая производительность?

Пожалуйста, просветите меня, если можете.

Кстати, он работает CentOS 5.3, если это имеет значение.

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

Ответы:

3

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

Капитан сегфо
источник
Я просто перезагрузил компьютер и отключил HT, чтобы увидеть, заметил ли я какую-либо разницу. Честно говоря, я думаю, что большая часть моего использования ограничена вводом / выводом.
NVRAM
1

Чем больше ядер, тем лучше.

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

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

Уильям Хилсум
источник
Но это не добавляет основных, есть все еще 4. Разве это не похоже на добавление комнат к дому, просто строя внутренние стены? Никакой процессорный поток не может расширяться до размера «комнаты». Таким образом, чтобы растянуть аналогию, если планировщик не может «сдвинуть стены», поток ограничен 12,5% (против 25%) доступного оборудования.
NVRAM
1
Может быть, я неправильно написал слово cores - однако, опять же, запуск тестов - единственный способ действительно сказать. Помимо одной ситуации, которую я не могу вспомнить, гиперпоточность всегда делала систему намного быстрее ... Вы не можете просто отнести ее к этой аналогии - если программа рассчитана на использование нескольких ядер (например, шифрование, сжатие) или другой), он будет работать намного быстрее, поскольку он «распространяется», где, как будто приложение не знает, это зависит от ОС, чтобы сказать ему, что использовать ...
Уильям Хилсум
На самом деле, эта аналогия является действительным , так как я сказал «нить» , а не «процесс». Но из поста Segfault кажется, что график Linux на самом деле может «сдвинуть стены».
NVRAM
Я не хотел сказать недействительным - я просто не очень хорошо это понял! но, в любом случае, все, что я пытался сказать, это то, что я провел очень много сравнительного анализа (разговоры по часам работы) и обнаружил, что почти во всех случаях гиперпоточность делала систему быстрее в некоторых случаях до 40%, однако при выключении это был один и тот же результат каждый раз, за ​​исключением одной задачи, которую я, по-моему, представлял (но не могу честно запомнить).
Уильям Хилсум
Спасибо, без обид. Мой единственный реальный опыт работы с HT был на одноядерном P4 под управлением WXP; Я не делал бенчмаркинг, просто занимался нормальной разработкой (в основном в DevStudio). Машина будет работать максимально, но показатель использования процессора не будет превышать ~ 60%; отключение HT заставило его казаться быстрее [и это заставило меня усомниться в ограниченности ввода-вывода или оперативной памяти].
NVRAM
0

у вас не 8, а 4 «псевдоядра», 4 физических + 4 виртуальных ядра = всего 8.

когда вы отключите HT, вы также можете получить Core i5, сравнить эталонные тесты между процессорами i7 и i5 (оба являются четырехъядерными Nehalems, с HT и без HT) и вы знаете ответ на свой вопрос.


источник