Компьютерная технология

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная технология » Компьютерное железо » Hyper-threading, нюансы что это и с чем его "едят"...


Hyper-threading, нюансы что это и с чем его "едят"...

Сообщений 1 страница 10 из 10

1

Собственно сначала немного о технологии:
Hyper-threading — технология «одновременной мультипоточности» в процессорах. Расширенная форма суперпоточности, впервые появившаяся в процессорах Intel Xeon.

Принцип работы

В процессорах с использованием этой технологии каждый физический процессор может хранить состояние сразу двух потоков, что для операционной системы выглядит как наличие двух логических процессоров (англ. Logical processor). Физически у каждого из логических процессоров есть свой набор регистров и контроллер прерываний (APIC), а остальные элементы процессора являются общими. Когда при исполнении потока одним из логических процессоров возникает пауза (в результате кэш-промаха, ошибки предсказания ветвлений, ожидания результата предыдущей инструкции), то управление передаётся потоку в другом логическом процессоре. Таким образом, пока один процесс ждёт, например, данные из памяти, вычислительные ресурсы физического процессора используются для обработки другого процесса.

Производительность

Были представлены следующие преимущества Hyper-threading: улучшенная поддержка многопоточного кода, позволяющая запускать потоки одновременно; улучшенная реакция и время отклика; увеличенное количество пользователей, которое может поддерживать сервер.
По словам Intel, первая реализация потребовала всего 5-процентного увеличения площади кристалла, но позволяла увеличить производительность на 15—30 %.
Intel утверждает, что прибавка к скорости составляет 30 % по сравнению с идентичным процессорами Pentium 4 без технологии «Simultaneous multithreading». Однако прибавка к производительности изменяется от приложения к приложению: некоторые программы вообще несколько замедляются при включённой технологии Hyper-threading. Это, в первую очередь, связано с «системой повторения» (англ. replay) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки.

0

2

dimank666, исходя из твоих умозаключений процессор не может быть загружен более чем на 50%, так как в ОС видно 8 ядер и 4 из них виртуальные так?

0

3

А я приведу свой пример с дорогой(раз уж о ней заговорили):
Сходятся Две четырёхполосные(если проц 4х ядерный) дороги в одну(тоже четырёхполосную). и вместо стандартного светофора стоит такая штука которая ставит машины со второй дороги в свободные промежутки между машинами с первой в том же ряду, когда они(эти промежутки) есть, тем самым уплотняя движение на дальнейшем участке дороге.
Вот это и есть "Hyper Threading".

0

4

может такой варит понятние
Единственное можно сравнить с рабочим на стройке
допустим 4 рабочих (4 ядра)
А бригадиров которые отдают команды целых 8 штук (виртуальные ядра) и получается за одним рабочим бегают 2 бригадира. как рабочий освобождается один из бригадиров дает ему новые указания.
а смысел втом что бригадирам надо бегать сверятся с чертежами. и пока один побежал смотреть другой дает команду рабочему

0

5

Цитата Сообщение от dimank666  Посмотреть сообщение
может такой варит понятние
Ага! Один бригадир отдаёт команды левой руке рабочего а другой в это же время правой.
Так вернее будет!

0

6

dimank666, по твоим вариантам как не крути процессор выше 50% не загрузить так как половина, потоков просто простаивает...
Как тогда процессор может быть загружен на 100%?

0

7

Ага! Один бригадир отдаёт команды левой руке рабочего а другой в это же время правой!
Так вернее будет!!!
не рабочий может выполнять только 1 команду от одного бригадира и пока он ее не выполнит от другова он взять ее не сможет.
Ну можем добавить в эту схему еще как бы брегадира-выберателя который выбирает какую работу и от какого бригадира выполнять первой  но рабочий все равно один и выполняет одну инструкцию за такт

0

8

Сообщение от D'Dragon
dimank666, по твоим вариантам как не крути процессор выше 50% не загрузить так как половина, потоков просто простаивает...
Как тогда процессор может быть загружен на 100%?
Так если ты ему дашь 4 потока он и будет загружен на 100% так как все ядра будут заняты.

По твоей логике получается что ели на операцию нужно 100 команд то 1 ядерный на это затратит 100 секунд (допустим) 4 ядерный плучается 25 секунд а 8 виртуальных по идее 12,5

0

9

D'Dragon, если у тебя такой процессор ради эксперимента запусти LinX и поставь в нем 4 потока
запиши результат производительности, затем 8 потоков и тоже глянь результат и скрены пожалуйста в студию

0

10

и самое главное разница между 6 и 12 потоками 2 гфлопса это меньше это 3 % где 15-30 процентов

POWE®FULL, спасибо за инфу, стало более понятно что есть возможность задействовать сразу несколько блоков цпу, то есть в обычных тестах нет смысла тестировать, так как нужны потоки с разными данный.

Прирост есть, но чтобы он появился нужно чтобы были соблюдены определенные условия,
1) Должны быть команды арифметически и с плавающей запятой
2) Их должно быть одинаковое количество
3) Приложение должно быть оптимизировано к много поточности
4) И само приложение должно быть оптимизировано чтобы одновременно выдавать запросы арифметически и с плавающей запятой
А это очень редко, то прирост не значителен. Возможно в будущем когда приложения будут лучше оптимизированы и будут делаться с заделом на 10 и более ядер прирост будет больше.
Но тогда и процесоры будут другие

0


Вы здесь » Компьютерная технология » Компьютерное железо » Hyper-threading, нюансы что это и с чем его "едят"...


Рейтинг форумов | Создать форум бесплатно