Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Подскажите по поводу технологии Hyper-Threading

ой да ну тебя. я тебе про фому, а ты... ты сказал, что "в 4790 нет технологии Hyper-Threading (HT)", а она там есть.

я сказал что в магазине где я заказывал процессор был 4770k, а 4790 небыло с НТ
 
Чуваки, мне кажется, вы не вполне понимаете, что такое SMT -- "Hyper-Threading" в терминологии Intel. Вообще, об этом должны рассказывать на первом курсе IT-специальностей, но, видимо, мне стоит провести краткий ликбез.

Давайте представим себе очень простой процессор, который берет команду, исполняет ее, записывает результаты, а затем берет следующую, и так, пока есть питание. По понятным причинам, это будет работать неэффективно: в один момент будет работать только один маленький кусочек кристалла. На календаре начало семидесятых.

Давайте теперь научим процессор брать две команды: пока одна записывает результаты своего выполнения, другая исполняется. Это выглядит примерно как конвеер: следующая стадия получает результаты предыдущей, проделывает свои операции и отсылает дальше. Такое устройство CPU, собственно, и называется конвеерным. Под микроскопом у нас был i286, на дворе 1982 год.

Теперь заметим, что далеко не всегда следующая команда зависит от результатов предыдущей: иногда их можно исполнять одновременно. Добавим еще один конвеер, в который будем класть те команды, которые можно выполнить параллельно с другой. Хотя конвееры -- штука дорогая, так что, наверное, второй конвеер можно сделать с меньшим количеством функций, а для сложных инструкций просто подождать, пока освободится первый конвеер. Или даже отдать обоим конвеерам один исполнительный блок, а они за него будут конкурировать. Такие процессоры называются суперскалярными. Мы переместились в 1996 год, в самое начало Pentium.

И вот -- финишная прямая. Почесав голову, мы понимаем, что у разных потоков команды будут всегда независимы от команд других потоков. А значит, их можно пускать во второй конвеер без особых ограничений, особенно когда в первом конвеере одна за другой идут команды, зависящие друг от друга. Давайте тогда представимся операционной системе двумя процессорами, а она будет раскидывать потоки по ним, используя оба конвеера? Да, это и называется simultaneous multithreading, "Hyper-Threading"; наступило новое тысячелетие, год 2001, так работает Pentium 4.

Выводы делайте сами. Впрочем, я помогу: процессор с SMT быстрее только когда у него неоднородная нагрузка: скажем, один поток с целочисленной арифметикой, а другой -- с floating point. Или когда компилятор не очень хороший и не может вытащить весь instruction-level parallelism, так что программе сложно занять оба конвеера.

А вот из этого, друзья, выводы делайте действительно сами.
 
Последнее редактирование:
Чуваки, мне кажется, вы не вполне понимаете, что такое SMT -- "Hyper-Threading" в терминологии Intel. Вообще, об этом должны рассказывать на первом курсе IT-специальностей, но, видимо, мне стоит провести краткий ликбез.

Давайте представим себе очень простой процессор, который берет команду, исполняет ее, записывает результаты, а затем берет следующую, и так, пока есть питание. По понятным причинам, это будет работать неэффективно: в один момент будет работать только один маленький кусочек кристалла. На календаре начало семидесятых.

Давайте теперь научим процессор брать две команды: пока одна записывает результаты своего выполнения, другая исполняется. Это выглядит примерно как конвеер: следующая стадия получает результаты предыдущей, проделывает свои операции и отсылает дальше. Такое устройство CPU, собственно, и называется конвеерным. Под микроскопом у нас был i286, на дворе 1982 год.

Теперь заметим, что далеко не всегда следующая команда зависит от результатов предыдущей: иногда их можно исполнять одновременно. Добавим еще один конвеер, в который будем класть те команды, которые можно выполнить параллельно с другой. Хотя конвееры -- штука дорогая, так что, наверное, второй конвеер можно сделать с меньшим количеством функций, а для сложных инструкций просто подождать, пока освободится первый конвеер. Или даже отдать обоим конвеерам один исполнительный блок, а они за него будут конкурировать. Такие процессоры называются суперскалярными. Мы переместились в 1996 год, в самое начало Pentium.

И вот -- финишная прямая. Почесав голову, мы понимаем, что у разных потоков команды будут всегда независимы от команд других потоков. А значит, их можно пускать во второй конвеер без особых ограничений, особенно когда в первом конвеере одна за другой идут команды, зависящие друг от друга. Давайте тогда представимся операционной системе двумя процессорами, а она будет раскидывать потоки по ним, используя оба конвеера? Да, это и называется simultaneous multithreading, "Hyper-Threading"; наступило новое тысячелетие, год 2001, так работает Pentium 4.

Выводы делайте сами. Впрочем, я помогу: процессор с SMT быстрее только когда у него неоднородная нагрузка: скажем, один поток только с целочисленной арифметикой, а другой -- с floating point. Или когда компилятор не очень хороший и не может вытащить весь instruction-level parallelism, так что программе сложно занять оба конвеера.

А вот из этого, друзья, выводы делайте действительно сами.

Я аж прослезился xD
 
Для чего нужная? У вас есть так много задач, эффективно параллелящихся на несколько потоков?
да. несколько серверов отлично параллелятся на несколько потоков. даже делать ничего не надо.
 
да. несколько серверов отлично параллелятся на несколько потоков. даже делать ничего не надо.
Только вот очень малый процент плагинов использует отдельные потоки, а большая часть работы сервера протекает в главном потоке.
Для Bukkit важнее частота процессора, чем количество ядер, тем более логичнских.
 
Только вот очень малый процент плагинов использует отдельные потоки, а большая часть работы сервера протекает в главном потоке.
Для Bukkit важнее частота процессора, чем количество ядер, тем более логичнских.

согласен
 
Только вот очень малый процент плагинов использует отдельные потоки, а большая часть работы сервера протекает в главном потоке.
Для Bukkit важнее частота процессора, чем количество ядер, тем более логичнских.
Но тем не менее - некоторые используют, к тому же некоторые моды создают свои потоки для выполнения массивных операций.(OpenComputers, BoP)
 

Поделиться этой страницей

Назад
Верх