Чтобы поддерживать большое количество процессоров

Обновлено: 06.07.2024

Технологии многопоточности процессоров: принцип работы и сферы применения

Физические ядра, логические ядра, технологии многопоточности — все это разрабатывалось инженерами для увеличения производительности компьютерного железа, требования к которому постоянно растут. Программы и игры требуют все больше ресурсов. Как же производители процессоров увеличивают мощность своих детищ? Процессор является «сердцем» компьютера и выполняет вычисления, необходимые для работы софта. Модели CPU отличаются между собой даже в рамках одного семейства. Например, Intel Core i7 отличается от i5 технологией многопоточности под названием «Hyper-Threading», о которой далее пойдет речь (Core i3, i9, и некоторые Pentium также обладают данной технологией).

Принцип работы процессорных ядер и многопоточности

В современных операционных системах одновременно работает множество процессов.
Нагрузка от операционной системы на процессор идет по так называемому конвейеру, на который «выкладываются» нужные задачи для ядра. В качестве примера возьмем одно ядро процессора на частоте 4 ГГц с одним ALU (арифметико-логическое устройство) и одним FPU (математический сопроцеесор). Частота в 4 ГГц означает, что ядро исполняет 4 миллиарда тактов в секунду. К ядру по конвейеру поступают задачи, требующие исполнительной мощности, на которые тратится процессорное время.


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

Данный конвейер можно представить, как настоящую сборочную линию на заводе — рабочий (ядро) выполняет работу, поступающую к нему на ленту. И если необходимо взять нужный инструмент, работник отходит, оставляя конвейер простаивать без работы. То есть, исполняемая задача прерывается. Инструментом, за которым пошел рабочий, в данном случае является информация из оперативной памяти или же L3 кэша. Поскольку L1 и L2 кэш намного быстрее, чем любая другая память в компьютере, работа с вычислениями теряет в скорости.

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

Способы увеличения производительности процессоров

Разгон

При увеличении частоты ядра повышается количество исполняемых операций за секунду. Казалось бы, с возрастанием производительности процессора проблемы должны исчезнуть. Но все не так просто, как хотелось бы думать. Прирост от увеличения частоты ЦП нелинейный. Множество процессов все еще делят одно ядро между собой и обращаются к памяти. Кроме того, не решается проблема с кэш-промахами и прерываниями операций, поскольку объем кэша от разгона не изменяется. Разгон — не самый лучший способ решения проблемы нехватки потоков. В пример можно привести всю ту же сборочную линию: рабочий увеличивает темп работы, но по-прежнему не умеет собирать два и более заказа одновременно.

Увеличение количества потоков на ядро

В процессорах Intel данная технология носит название Hyper-Threading, а в процессорах от Amd — SMT. Производители добавляют еще один регистр для работы со вторым конвейером. Пока один поток простаивает, ожидая нужные данные, свободная вычислительная мощность может быть использована вторым потоком. На кристалл же добавлен еще один контроллер прерываний и набор регистров.

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


Стоит учитывать, что логический поток это не второе ядро, как может показаться с первого взгляда. Это лишь дополнительная «линия производства», чтобы более эффективно использовать доступную мощность. Из минусов технологии Hyper-Threading или SMT можно выделить увеличение тепловыделения, недостаток кэша (кэш на два потока по-прежнему общий), и проблемы с оптимизацией некоторых программ или игр, не способных отличать настоящее ядро от логического потока.

Именно по этой причине процессоры серии i7 «горячее» и имеют больше кэша по сравнению с i5. Использование технологии многопоточности может принести примерно до 30 % прироста производительности. Все это применимо как к Intel Hyper-Threading, так и к AMD SMT, поскольку технологии во многом схожи. Может возникнуть вопрос: «Если можно добавить второй поток, то почему бы не добавить третий и четвертый?» Это реализуемо, но не имеет смысла, поскольку кэш одного ядра достаточно мал для большего количества потоков и прироста производительности практически не будет.

Увеличение количества ядер

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


Сферы применения многопоточных процессоров

С развитием компьютерных технологий перечень программ, использующих многопоточность, неуклонно растет. Это дает огромный простор разработчикам для создания нового софта и игр. Например, сейчас каждый современный triple-A проект оптимизирован для многопоточных процессоров, что позволяет наслаждаться игрой, получая высокий уровень fps на многоядерном CPU.

Еще больше распространены многоядерные системы в среде разработчиков. Программы для 3D-моделирования, монтажа видео и создания музыки требуют параллельного выполнения большого количества задач, с чем хорошо справляются системы с Hyper-Threading или SMT. В операционных системах мощность одного потока может тратиться на фоновые задачи (Skype, браузер, мессенджер), в то время как остальные задействуются для тяжелой игры или программы.

Но далеко не всегда увеличение количества потоков означает увеличение общей производительности. Почему же SMT процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке. Иногда плохо оптимизированные программы не могут отличать логический поток от настоящего ядра, из-за чего на одно ядро может попасть две тяжелых задачи и замедлить работу. Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.

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

Многопроцессорные серверы

Главная проблема технической инфраструктуры — компактность. Да, появление многопроцессорных систем обусловлено именно тем, что нужно максимально плотно сформировать IT- структуры организации.

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

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

Dell PowerEdge R740

Сервер Dell PowerEdge R740, в который можно установить до 2-х процессоров Intel Xeon Scalable

Назначение многопроцессорных серверов

Как ни удивительно, но даже малый и средний бизнес нуждается в мульти процессорных системах, потому основные потребители даже не ЦОД, а обыкновенные компании. Посмотрите практически на любой бизнес. Какие компоненты должны в н ё м хорошо функционировать?

Выделение сотрудникам технических ресурсов для выполнения работы.

Использование приложений для аналитики, бухгалтерии и ведения уч ё та.

Общая файловая база, а также сервисы для взаимодействия сотрудников, например, корпоративные чаты.

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

Supermicro H8QGi-LN4F

Серверная материнская плата Supermicro H8QGi-LN4F для 4-процессорных систем

Давайте посмотрим на самые наглядные примеры.

Терминальный сервер

Терминальный сервер

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

В пределах этого блога писал подробнее о терминальных серверах. Но вкратце технологию обрисую.

На одном устройстве устанавливается операционная система. Для каждого сотрудника на сервере создается уч ё тная запись.

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

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

Такой подход упрощает администрирование и управление технической инфраструктурой. Например, сервер для 1С, который довольно часто покупают у компании Safedec, является распростран ё нным примером терминального сервера.

Фактически всем, кто взаимодействует с программным обеспечением, да ё тся удал ё нный доступ. Все вычисления производятся на самом устройстве.

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

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

Терминальная структура IT позволяет экономить на технике, ибо вместо покупк и большого количества мощных ПК можно взять несколько мощных серверов, что закроет потребности офиса. Особенно полезно, если высокая производительность нужна не постоянно, а эпизодически.

Виртуализация

Виртуализация

В центрах обработки данных на виртуализации построено практически вс ё . Но даже обычные компании перенимают сей опыт. Особенно IT. Про виртуализацию также рассказывал в пределах данного блога.

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

Например, бер ё тся один мощный сервер, а на его основе создается десяток более слабых ВМ. Тут количество ядер играет серь ё зную роль. Часть мощности уходит на обслуживание гипервизора (специальное ПО для формирования виртуальных машин), а другие части распределяются между виртуальными серверами.

К примеру, есть у нас устройство с двумя процессорами по 16 ядер и 256 гигабайтами оперативной памяти, а также пара терабайт дисковой памяти.

На базе такого устройства можно создать 7 виртуальных машин, имитирующих 4-ядерные ПК, каждая из которых будет иметь по 32 ГБ ОЗУ, а также по 250 ГБ дисковой памяти. Учтите, часть ресурсов я оставил для нормальной работы гипервизора и резервного развёрстки другой ВМ в случае необходимости.

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

А ещ ё …

… можно использовать многопроцессорные системы для обработки баз данных, два процессора смогут обрабатывать разные блоки БД, что значительно увеличивает скорость. В общем, сфер применения многопроцессорных систем очень много.

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

Удобнее и эффективнее

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

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

Освободи Себя процессор и Оперативная память являются двумя наиболее важными элементами при определении правильного функционирования нашего компьютера или мобильного телефона. Хороший баланс между обоими компонентами гарантирует, что производительность может быть оптимальным. Но иногда ни тот, ни другой элемент не используется полностью в нашем оборудовании. Чтобы извлечь из этого максимальную пользу, здесь мы узнаем, что мы должны делать, чтобы использовать все ядра RAM и процессора в Windows 10 . Таким образом, мы будем знать, как максимально использовать их, и производительность нашего компьютера повысится.

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

Использовать все ОЗУ и ядра процессора в Windows 10

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

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

Должны ли быть активированы все ядра процессора?

Поэтому ясно, что, если мы будем в равных условиях, лучше всего активировать все ядра нашего процессора . И это меньшее, что мы можем сделать, если у нас будет хороший CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР, заключается в том, чтобы максимально использовать все возможности, которые он нам предлагает.

В настоящее время в операционных системах, таких как Windows, по умолчанию включены все ядра процессора. Нам не нужно ничего настраивать и устанавливать тот или иной процессор, Windows 10 обнаружит все ядра и будет использовать их. В более ранних версиях, например Окна 7 и ОС Windows 8, тенденция заключалась в том, чтобы автоматически отключать некоторые из этих ядер, если они не использовались.

Но надо учитывать еще кое-что. Даже если произойдет случай, который мы описали в предыдущем абзаце, возможно, что Windows 10 деактивирует или переставит ядра в зависимости от вашего потребности в производительности . Хотя это не является чем-то обычным, иногда мы можем заметить падение производительности нашего компьютера. Это может быть связано с тем, что одно из ядер отключено.

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

А что с оперативной памятью?

В случае Оперативная память , происходит нечто подобное. Этот элемент загружает и сохраняет все команды, которые выполняет ЦП. То есть он позволяет программам и приложениям выполнять свои задачи в нем, так сказать.

Возможно, что выделение ОЗУ может быть ограничено, поскольку оно настроено таким образом по умолчанию при установке Windows 10. Другая возможная причина, по которой вся ОЗУ не используется на максимум, заключается в том, что система выделяет часть для графическая карта . Обычно это самая частая причина. Однако графика обычно не требует чрезмерных ресурсов (от 8 до 128 мегабайт). Если у нас очень ограниченная оперативная память, например 2 ГБ или меньше, если бы мы могли заметить это при выполнении определенных задач. Однако, если наша оперативная память составляет 4, 6, 8 или 16 ГБ, это не должно быть большой проблемой.

Здесь конфликт может возникнуть из-за операционной системы. Если у нас есть 32-бит установленная версия Windows 10, она не сможет использовать более 4 ГБ. Следовательно, если наша оперативная память составляет 6 или 8 ГБ, у нас будет часть потраченной впустую памяти. Это не относится к 64-бит версия, которая допускает больший объем ОЗУ.

Проверить это очень легко. Нам останется только прибегнуть к спецификациям нашей операционной системы. Мы можем сделать это несколькими способами. Один из них - ввести в строке поиска Windows Панель управления . Затем мы перейдем к Система и Безопасность раздел . Наконец, мы выберем Система опцию.

Здесь мы можем увидеть объем установленной оперативной памяти и какую часть можно использовать.

Ram windows 10

Шаги по использованию всей оперативной памяти и ядер

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

Использовать системные настройки

Освободи Себя Конфигурация системы инструмент позволит нам решить эту проблему.

  • Для этого нам нужно будет запустить Запустите коробка в первую очередь. Мы делаем это через Клавиша Windows + R. Таким же образом, если мы напишем Execute на панели запуска Windows, мы сможем попасть в то же место.
  • Теперь в баре нам нужно будет написать MSCONFIG и мы щелкаем OK or Enter . Затем откроется соответствующая панель.
  • Оказавшись внутри окна конфигурации системы, мы найдем несколько вкладок. Мы нажмем на Start .
  • Теперь под центральным блоком мы видим Дополнительные параметры кнопка. Щелкаем по нему.

В этом новом окне вы найдете ни много, ни мало суть дела. И конфигурация ядер, и оперативная память находятся в этом же разделе.

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

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

Ram windows 10

Если вы установите флажок Максимальный объем памяти, вы можете вручную настроить номер самостоятельно. Поэтому, если вы видите, что ОЗУ не выделено на максимум, введите общий объем МБ, который поддерживает ваша система.

Мы даем вам практический пример, подобный показанному на изображении ниже. Если у вас есть компьютер с 6 GB оперативной памяти, вам придется умножить эту цифру на 1,024 (6 х 1,024 = 6,144) . Это максимальное число, которое вы можете ввести в поле. Вы также можете сделать это со стрелками.

Ram windows 10

После того, как вы установили все параметры, нажмите на OK и вы закончите процесс.

Проблема XXI века - выбор количества ядер в процессоре. Производительность моделей от Intel и AMD отличается по многим параметрам и в разных задачах. Где-то в приоритете большее количество ядер, где-то производительность на ядро и высокая частота. Мы народ простой - играем в игры. Сколько же ядер выбрать нам?

реклама


Про ядра.

Простым языком, количество ядер решает, как много задач процессор сможет обрабатывать одновременно. Когда-то все процессоры были одноядерными и не поддерживали многозадачность. Они умели только быстро переключаться между приоритетными задачами. С выходом процессоров Athlon и Pentium, на потребительский рынок поступили первые многоядерные «камни». Произошла так называемая «ядерная революция», их количество росло не по дням, а по часам. На текущий момент среди пользовательского сегмента есть 4, 8, 16 и даже 32-х ядерные модели. Серия AMD Ryzen на количестве ядер «собаку съела».

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

реклама

var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);

Вскоре после выхода многоядерных процессоров появилась технология многопоточности - Hyper-threading от Intel и SMT от AMD.
Технология позволяет разделить физическое ядро на два логических потока. Обработка происходит в режиме последовательности и гораздо быстрее обычного ядра. Заменяют ли логические ядра полноценные физические – да! Взгляните на статистический бенчмарк.


Из таблицы следует, что производительность многопоточного двухъядерного процессора практически сопоставима с полноценным четырехъядерным. Так процессор i3 седьмого поколения с 4-мя логическими потоками в играх оказался быстрее, чем i5 шестого поколения с полноценными 4-мя ядрами. Дальнейший же рост количества ядер и потоков не приносит каких-либо существенных результатов.

Еще один пример «плохих» ядер - это старые серверные процессоры серии Xeon. В последнее время на них увеличился спрос из-за моды на количество потоков, а также снижение стоимости на б.у. рынке. По цене «гипер пня» можно приобрести двадцатипоточный процессор с неплохой производительностью. Только существует одна загвоздка. Этот процессор, отлично выполняющий задачи в технических областях, совершенно не приспособлен для игр. Если вы на пороге покупки Xeon, то лучшим выбором будет процессор с максимальным количеством ядер и максимально возможной частотой. Производительность на ядро у них далека от современной и напоминает серию FX. Но в отличие от последних у Xeon'a гораздо больше ядер, что и компенсирует их низкую производительность. В конечном итоге получается, что старые 20-ти поточные серверные процессоры дотягивают по игровой производительности только до i5 серии Intel последних поколений.

реклама

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

Для того, чтобы проверить игровую производительность в различных вариациях ядер и потоков, возьмем десятиядерный двадцатипоточный Intel Core i9 7900X. Будем делать из него различные комбинации и смотреть на разницу игровой производительности. Также в тест будет добавлен AMD Ryzen 7 2700X на базовых частотах и с использованием всех ядер.

Тестовый стенд:

  • Процессор — Intel Core i9 7900X Skylake-X 10-core CPU @ 4.5 ГГц.
  • Материнская плата — ASUS Strix X299-XE Gaming.
  • Память — G.Skill Trident Z 32 ГБ DDR4-3200 CL14.
  • Видеокарта — NVidia GeForce GTX 1080 Ti.
  • Накопитель — 2x SSD Samsung 840 Evo 1ТБ.
  • ОС — Windows 10 64-bit.


реклама

Двухъядерный процессор хоть и выдает играбельный фпс, сильно тормозит карту. Правильным выбором будет процессор 4 - 6 ядерный с поддержкой Hyper-threading или без нее. С ростом разрешения, производительность упирается в видеокарту, тут двухъядерный процессор выдает сопоставимый результат.


Эта игра видимо не знает, что такое потоки и ядра. Результат в пределах погрешности одинаков.


Здесь мы так же удостоверились, что 4 ядра вполне хватает для "раскрытия" видеокарты.


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


С 4-х поточными Pentium и i3 к этой игре лучше не подходить. Начиная с четырех ядер, роста производительности практически нет.









Про выбор.

Все вы слышали своих друзей о том, что у них с покупкой новой видеокарты процессор перестал ее «раскрывать». Так сколько ядер нужно на «раскрытие»? Современные ядра, начиная с 6-ой генерации Intel и линейки Ryzen от AMD, имеют отличные показатели производительности на ядро. Согласно таблице выше, нет никакой нужды на сегодняшний день использовать для игр современный процессор с числом ядер больше четырех. Он может быть как многопоточным, так и с физическими ядрами. По результатам игрового тестирования видно, что в некоторых проектах есть небольшой отрыв восьмипоточного процессора от четырехъядерного процессора без Hyper-threading. Шестиядерные Coffee Lake последнего поколения отлично прикроют этот малый недочет. Получается лучший выбор на текущий момент - это процессоры серии i5 и Ryzen 5. Их производительности будет достаточно, чтобы «раскрыть» видеокарту высокого класса в FullHD. Все, что имеет большее количество ядер и потоков, это пустая трата денег. Единственная оправданная покупка таких процессоров кроется в использовании двух и более видеокарт для игр в 4-8к разрешениях.

Читайте также: