О потоках в процессоре

О потоках в процессоре

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

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

Начнем с того, что каждый современный процессор построен на физических ядрах с определенной частотой. Допустим, 1 ядро имеет тактовую частоту в 3 ГГц, т.е. может выполнить 3 млрд вычислительных операций за секунду (такт). Но современные ОС (Windows, Linux, MacOS) запускают более 3 млрд процессов, т.е. пользователь начинает сталкиваться с таким понятием как прерывание: ЦП физически не успевает обрабатывать все сразу и начинает переключаться на самые приоритетные задачи.

Логика здесь элементарная: присмотреться к многоядерным и многопоточным решениям. Разгон не дает линейного прироста в производительности, иначе такие гиганты как Intel и AMD выпускали бы процессоры на 5-6 и более ГГц.

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

Многопоточность и все о ней

Многие наверняка слышали выражения из серии «2 потока», «4 потока», «8 потоков» и т.д. При этом физических ядер зачастую было в 2 раза меньше.

Эта технология имеет название HyperThreading (Intel) или SMT (AMD).

Многопоточность у красных появилась совсем недавно, с выходом чипов Ryzen на совершенно новом техпроцессе. Что это такое – тема отдельной статьи.

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

Недостаток технологии заключается в следующем:

  • оба потока обращаются к единой кэш-памяти 2 и 3 уровней;
  • тяжелые вычислительные процессы могут вызвать конфликт в системе.

Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.

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

Читать статью  Огненный монстр AMD FX-9370 из 2013 года: что может в 2022 году, разгон, Cyberpunk, upgrade и другие приколы

Сколько нужно ядер и потоков современному обывателю?

Как я уже сказал выше, современные ОС падки на ресурсы процессора, поскольку отнимают часть мощностей на собственные службы, интерфейс, красивости и функции защиты в реальном времени. Но при этом пользователь хочет еще и работать с комфортом.

  • По-хорошему, для офисной работы будет вполне достаточно 2-ядерных ЦП, но при этом учитывайте, что одновременно работать с браузером, текстовыми редакторами, почтовым клиентом и проигрывателем, не получится – система попросту не справится. А если использовать топологию 2 ядра/4 потока, то ситуация в корне преображается – рук то больше.
  • Игры требуют уже больше ресурсов. Начнем с того, что современные проекты очень падки на ресурсы чипа. Взять к примеру, ту же GTA V или Watch Dogs 2: они способны выжимать все соки из любого камня, поскольку параллельно отрисовывают сцены игры (скрипты), просчитывают окружение, прорабатывают звук, поведение искусственного интеллекта и не только. И все эти процессы еще нужно синхронизировать надлежащим образом.
  • А если копнуть в задачи типа программирования, рендеринга и профессиональной работы с графики, то видно, что здесь и 4-ядерные/8-поточные чипы начинают захлебываться и работают на износ.

Вместо итогов

Практика показывает, что современный универсальный ПК должен иметь в своем распоряжении как минимум 4 ядра/8 потоков, чего будет достаточно для большинства задач, связанных с обработкой данных. Хотя варианты из серии 6/12 выглядят более обещающими по той причине, что стоят они не намного дороже, а пользы от них больше.

В качестве «золотой» середины можем предложить свежий вариант модели, построенный на обновленной архитектуре Zen2. Он отлично справляется с играми, программами, распараллеливанием и обработкой данных, при этом отлично гонится(одним словом — стал популярным (появился в июле 2019)).

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

Ядра и потоки серверного процессора

Ядра и потоки серверного процессора

Количество ядер и потоков процессора — ключевые характеристики, которые обязательно принимаются во внимание при выборе конфигурации сервера. Интуитивно понятно, что чем большие цифры стоят в соответствующих полях спецификации, тем лучше. Но всегда ли нужно стремиться к максимальным значениям этих параметров и что конкретно вы получаете с точки зрения производительности при использовании того или иного оборудования? Об этом мы расскажем далее.

2022-03-30 2022-06-17 Marvel market Ядра и потоки серверного процессора

Откуда пошли многоядерные процессоры

  • в первом процессоре компании Intel их было 2300, размер каждого — 10 мкм;
  • Intel 80286, на котором был построен компьютер IBM PC/AT, содержал 134 000 транзисторов с длиной затвора 1,5 мкм;
  • в последний одноядерный серверный процессор Intel Xeon было вмонтировано уже 178 миллионов транзисторов, каждый из которых был в тысячу раз тоньше человеческого волоса (90-нм техпроцесс).
Читать статью  Что лучше двухъядерный или четырехъядерный процессор и чем они отличаются?

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

Что такое процессорные ядра

Следующий очевидный шаг — поставить на одну материнскую плату несколько процессоров и распределить нагрузку между ними. Такая реализация — распространенная вещь, особенно для серверных платформ, но она имеет свои недостатки: исполнительные устройства находятся далеко друг от друга, необходимо организовывать их совместную работу и доступ к памяти. Это требует наличия высокопроизводительных шин данных и негативно сказывается на габаритах, стоимости и энергопотреблении сервера.

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

На что влияет количество ядер процессора

От того, сколько ядер имеется в процессоре, напрямую зависит его производительность. Для сервера это особенно важно, потому что он должен одновременно обрабатывать множество запросов от рабочих станций и периферийного оборудования. Современные операционные системы и клиентские приложения оптимально распределяют потоки команд на все доступные ядра процессора. То есть сервер работает во столько раз быстрее (по сравнению с одноядерным), сколько ядер есть у его процессора.

Что такое потоки в процессоре

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

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

  • из кеша третьего уровня. Он значительно медленнее, чем L1 и L2. Задержка может составлять 40–60 тактов CPU;
  • из оперативной памяти. Она еще медленнее, поэтому число тактов простоя может измеряться сотнями;
  • с жесткого диска. Время ожидания в этом случае — целая вечность (по меркам процессора). К счастью, подобная ситуация встречается довольно редко.

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

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

Читать статью  Сердце смартфона: какой SoC выбрать

P15974-B21.png

Разница между ядрами и потоками процессора

Для того, чтобы окончательно разобраться, чем отличаются ядра от потоков, важно запомнить, что каждое ядро — это физически обособленная единица производительности серверного процессора.

Напротив, потоки — это логические каналы, которые выделяются программно для того, чтобы обеспечить параллельное выполнение нескольких задач на одном ядре. Пропускная способность ядра от наличия второго потока не увеличивается. Если у процессора, например, 8 ядер и 16 потоков, то одновременно и по-настоящему независимо он может обслуживать только 8 разных процессов. Дополнительные 8 виртуальных каналов служат лишь для оптимизации работы восьми основных.

Что важнее для производительности сервера: ядра или потоки

Все, конечно, зависит от конкретной реализации, но в общем случае важнее мультиядерность. То есть 8-ядерный процессор без Hyper-Threading будет работать быстрее, чем 4-ядерный с дополнительными потоками. Особенно большое значение количество ядер имеет в высоконагруженных проектах:

  • терминальный сервер. На рабочих местах стоят простые устройства удаленного доступа, а управление и все вычисления делегированы серверу;
  • виртуализация. На одном сервере работает несколько виртуальных машин, имитирующих разные программные среды;
  • обработка больших объемов данных. Сервер обслуживает локальную сеть компании, которая занимается 3D-моделированием, рендерингом, созданием IT-приложений с монолитной архитектурой и т. д.

Итого, как уже говорилось выше, чем больше ядер, тем быстрее работает процессор. Больше того, если на какое-то ядро поступает задача, требующая повышенной вычислительной мощности, его тактовая частота временно увеличивается (конечно, в рамках допустимого нагрева) за счет снижения скорости выполнения операций другими ядрами. Эта технология называется Turbo Boost (у Intel) или Precision Boost (у AMD).

Что касается потоков, то они будут играть важную роль, если на сервере выполняется много фоновых процессов. Это может быть архивация файлов, работа с офисными приложениями, ресурсоемкий корпоративный чат и т. д. Поддержка Hyper-Threading поможет также, когда по сети производится обработка медиафайлов (например, тот же рендеринг), так как в соответствующие клиент-серверные приложения уже встроены эффективные алгоритмы распараллеливания нагрузки. По данным компании Intel, многопоточность, реализованная в рамках технологии Hyper-Threading, позволяет получить до 30% прироста производительности, что при высокой нагрузке весьма неплохо.

Стоит отметить, что чаще всего многопоточность вы получаете бонусом, поскольку она есть в большинстве современных серверных процессоров по умолчанию. Поэтому основное внимание надо уделить тому, сколько ядер в процессоре. Слишком много (сейчас у AMD доступны процессоры с 64 ядрами, на подходе решения на 96) их тоже не нужно, это лишняя трата денег в том случае, если объем выполняемых задач будет не способен загрузить ядра на 100%. Выбор конфигурации в данном случае должен зависеть от ожидаемого объема вычислений.

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

Источник https://infotechnica.ru/pro-kompyuteryi/o-protsessorah/pro-potoki/

Источник https://market.marvel.ru/blog/komplektuyushchie-i-optsii/yadra-i-potoki-servernogo-protsessora/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *