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

Характеристики серверных процессоров: от чего зависит производительность

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

Такой подход актуален только для десктопных систем, но не в корпоративном сегменте, ведь в серверной отрасли учитываются даже каналы ОЗУ, не говоря уже о линиях PCI-E, кэше, количестве UPI-каналов и масштабируемости. Об этом и поговорим подробно.

Характеристики серверных процессоров: от чего зависит производительность

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

Поколение чипа

Удивлены такому началу? А мы нисколько. Чтобы доказать важность этого момента, достаточно задаться вопросом, отчего, к примеру, условный Xeon Platinum 8176 первого поколения Skylake со своими 28 ядрами в пух и прах проигрывает Xeon Gold 6348 третьего поколения Ice Lake c аналогичными количественными параметрами? Речь, само собой, о сырой производительности в бенчмарках типа Passmark.

Ответ прост: они совершенно разные по архитектуре:

  • Внутреннее строение компонентов.
  • Транзисторные возможности.
  • Техпроцесс.
  • Энергопотребление и т.д.

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

Если вы следите за презентациями Intel Xeon Scalable и AMD EPYC, наверняка заметили следующую закономерность между поколениями (для наглядности суммарный процент производительности для 1 итерации составит 100%):

Поколение 1 Gen 2 Gen 3 Gen
Intel 100% + 15-30% + 20-40%
AMD 100% +20-25% +20-30%

Информация бралась на основании тестов в таких задачах, как:

  • Скорость компиляции программного кода.
  • Научные расчеты в NAMD, GROMACS, LAMMPS.
  • Кодирование изображений и видео в WebP2, Intel SVT.
  • Рендеринг в Blender, Intel Embree, C-Ray.

Иными словами, условный Intel Xeon Silver 4110 (8/16) не имеет ни малейшего шанса перед Silver 4210(10/20), и уж тем более, 4310 (12/24). И дело не только в увеличении числа ядер и потоков.

Поддержка оперативной памяти

Здесь речь пойдет не о стандартах DIMM (DDR3/DDR4), и даже не о поддержке ECC-регистров, а о возможности процессора «переварить» определенное количество ОЗУ.

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

Для примера возьмем актуальный топ от Intel — Xeon Scalable Platinum 8380. В технических параметрах значится, что он способен обрабатывать до 6 ТБ ОЗУ DDR4-3200 МГц в 8-канальном режиме. Если учесть, что степень масштабируемости 8380 — 2S (до 2 сокетов), суммарно вы сможете использовать 12 ТБ ОЗУ.

Тут стоит отметить, что все чипы Scalable 3 Gen способны обработать 6 ТБ, разница лишь в максимальной частоте ОЗУ.

Однако второе поколение в большинстве своем не видит более 1.5 ТБ на сокет.

Что касается AMD EPYC, у них возможности в плане оперативной памяти скромнее — до 4 ТБ для третьего поколения.

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

Читайте также:  К каким видеокартам подходит directx 11

Архитектурные особенности

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

КЭШ-память

Этот параметр напрямую говорит о том, как часто процессор будет обращаться к ОЗУ для проведения расчетов. КЭШ делится на 3 категории:

  • L1 — самый быстрый и самый малый по объему блок, привязанный к одному ядру.
  • L2 — скорость ниже, но объем буфера больше, также привязан к ядру.
  • L3 — самый медленный из представленных, однако его объем может достигать более 100 МБ, к тому же кэш доступен для всех ядер.

Хотите знать об этом параметре подробнее? Рекомендуем ознакомиться с соответствующим материалом. В целом, чем больше объем кэш-памяти, тем реже процессор обращается к «медленной» ОЗУ за новой порцией данных, реже простаивает, и быстрее выполняет вычисления.

Поддержка PCI-линий

На сегодняшний день это один из самых скоростных интерфейсов передачи данных между компонентами сервера. Для современного железа актуальными являются стандарты PCI-E 3.0/4.0. Ориентироваться стоит на последние, т.к. их пропускная способность вдвое выше.

На базе PCI-E работают:

  • NVMe SSD.
  • Графические ускорители (RTX, Quadro, Tesla, FirePro).
  • RAID-контроллеры.
  • USB-адаптеры.
  • eSATA-адаптеры.

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

Например, вам необходимо установить 2 GPU nVidia A100, а также собрать RAID 5 на базе NVMe емкостью по 4 ТБ каждый. Только под эти компоненты необходимо выделить 44 линии, не говоря о периферии.

Добавьте к этому запас в 30-40%, и получите порядке 60 линий PCI-E.

Текущие процессоры Intel способны предложить не более 64 линий на сокет, поэтому для этих целей мы рекомендуем AMD EPYC, поскольку третье поколение этих чипов предлагает по 128 линий PCI-E соответственно.

Масштабируемость

Критический параметр, если сервер создается на базе нескольких процессоров, работающих в связке. Классический пример — HPE Superdome Flex 280, предоставляющий до 8 сокетов суммарно при определенных настройках.

Создавая подобные системы, важно учитывать и возможности масштабируемости самих процессоров. У Intel Xeon Scalable с этим все просто:

  • Platinum — до 8 сокетов (8S). Пример — Platinum 8360HL.
  • Gold — до 4 сокетов (4S). Пример — Gold 6330H/6348H.
  • Silver — до 2 сокетов (2S). Пример — Silver 4216.
  • Bronze — до 2 сокетов (2S).

AMD на сегодняшний день не предлагает конфигураций на 4-8 сокетов. Для третьего поколения суммарное количество процессоров ограничено 2 единицами в большинстве случаев (например, EPYC 7763). Исключение — чипы с индексом «P», для которых доступна лишь односокетная компоновка (например, EPYC 7443P/7543P).

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

Наверняка вы слышали про облачные серверы, гипервизоры, и удаленное объединение машин для увеличения производительности.

Зачем это надо? Например, вы хотите разместить на одной вполне реальной «железяке» 10 виртуальных машин, где у каждой будет собственная операционная система, набор команд, памяти и разъемов. Этого можно добиться исключительно с помощью софта, используя следующее ПО:

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

Использование процессоров с аппаратной поддержкой виртуализации значительно повышает общую производительность «облаков». Поэтому, если вы изначально строите дата-центр с нуля и нацелены на лучшие результаты — настоятельно рекомендуем обращать внимание на эти параметры в ЦП.

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

Машинное обучение и искусственный интеллект

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

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

Intel на презентациях не перестают хвалить собственную технологию Deep Learning Boost (DL-Boost), которая выполняет следующие задачи:

  • Ускоряет сбор и анализ данных в реальном времени (сбор статистики, работа с Big Data).
  • Позволяет лучше работать с нейронными сетями, глубоко настраивая каждый параметр среди тысяч переменных.
  • Снижает задержки ввода/вывода для формирования логических выводов.
Читайте также:  Colorful видеокарты чья фирма

Технология лучше все показывает себя, если сервер работает с данными типа bfloat16, VNNI и INT8.

И это не простой маркетинг, а реальное преимущество над старыми системами.

AMD идут иным путем и подобными технологиями внутри чипа не располагают. Вместо этого они предлагают отдельное решение Instinct. Но оно конкурирует скорее с GPU nVidia A100 и нацелено исключительно на нужды ИИ и точных вычислений.

Подведем итог

В рамках этого материала мы не раскрыли такие характеристики производительности как:

  • Поддержка интеллектуального разгона.
  • Расширенные наборы вычислительных команд (SSE, AVX).
  • Технологии горячей замены NVMe.
  • Рамки теплопакета.

Давайте будем честными — актуальные линейки Intel Xeon и AMD EPYC предлагают этот функционал по умолчанию, причем независимо от конкретной модели процессора. А потому эту информацию можно вынести за скобки, как и количество ядер/потоков.

Помните, что главный параметр производительности — конкретная задача, возложенная на сервер.

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

Источник

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

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

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

Для начала немного истории, без которой будет непонятна причина самого возникновения многоядерности. Дело в том, что еще двадцать лет назад у процессоров не было ни ядер, ни потоков в нынешнем понимании, а задачу повышения скорости обработки информации производители решали за счет увеличения тактовой частоты, которая на рубеже веков превысила 1 ГГц, а затем за 5 лет выросла еще почти в 4 раза. Достигалось это при помощи размещения в одном кристалле все большего числа миниатюрных транзисторов, формирующих вычислительные схемы процессора:

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

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

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

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

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

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

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

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

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

Читайте также:  Видеокарта gigabyte gt630 2gb

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

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

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

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

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

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

Напротив, потоки — это логические каналы, которые выделяются программно для того, чтобы обеспечить параллельное выполнение нескольких задач на одном ядре. Пропускная способность ядра от наличия второго потока не увеличивается. Если у процессора, например, 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%. Выбор конфигурации в данном случае должен зависеть от ожидаемого объема вычислений.

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

Источник

Adblock
detector