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

 

Раньше было лучше?

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

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

В итоге стали применять видеокарты. И раньше стало хуже. Но мы же говорим про серверы? А зачем серверам видеокарты? Попробую объяснить на живом примере.

 

Вычисления в сервере

Профессиональная видеокарта
Такие видеокарты будут стоять в вычислительном сервере

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

«Требуется организовать терминальный сервер для строительно-архитектурной организации. Задачи следующие: дать терминальный доступ 32 пользователям к удаленным рабочим столам с приложениями:

  • AutoCad;

  • ArchiCad;

  • Autodesk Advance Steel;

  • APM Civil Engineering;

  • Турбо-смета;

  • Графические редакторы: GIMP, Photoshop.

Бюджет неограничен, но учтите, будем собирать предложения и выберем наиболее выгодный».

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

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

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

  1. Проектирование архитектурных планов, составление чертежей. Соответственно, наиболее жрущей и требовательной оказался ArchiCad, что, в принципе, не удивительно.

  2. Подсчет смет и составление документации. Доступ к офисным программа также через терминальный сервер.

  3. Доступ к удаленным рабочим столам с объектов. Как правило, на объектах высокопроизводительную технику не размещали.

  4. Выполнение расчетов с помощью программ, заточенных под GPU.

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

Конечно, для их целей было достаточно вычислений на CPU, но директор хотел именно GPU, чтобы была возможность выполнять большие объемы вычислений. Хозяин — барин. Хочет вычисления, пусть получит.

 

Начало работы

Удивительно, что местный админ не прорабатывал технику и инфраструктуру. Разбросанные, непонятно в каком порядке расположенные кабеля. Пара доисторических IBM 3250x в качестве серверов. Я думал, что вместе с мамонтами вымерли, оказывается, ошибался.

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

Но и это не главное. К двум мамонтам требовалось добавить производительный терминальный сервер. Немного покумекав, воскурив требования ПО, которые, на деле, огого, мы приняли решение делать сборку от Supermicro. На вычисления много карт не требовалось, но бюджет неограничен. И случился как раз тот редкий случай, когда заказчик сказал: «Делайте по максимуму, я лучше заплачу побольше».

На радостях сделали следующее:

  1. За основу взяли серверную платформу Supermicro SYS-2029GP-TR, стоимостью около 180 000 рублей. Она имеет форм-фактор 2U, 2 встроенных блока питания по 2000 Вт каждый. В платформу встроена интегрированная серверная плата X11DPG-SN.

  2. Вставили два процессора Intel® Xeon® Gold 5115, кто-то скажет, что можно и получше, на деле, получился даже перебор. Но, в любом случае, прибавляем еще 200 000.

  3. Ограничение RAM на один процессор до 768 ГБ. Мы решили не налегать очень сильно на оперативку и поставили всего 4 плат по 32 ГБ на каждый процессор. Стоимость одной платы оперативной памяти Samsung ECC Reg с частотой 2666 МГц около 24000 рублей. Ставить по 8 плат на 16 ГБ смысла нет. Плохо потом масштабироваться, если все разъемы заняты. 256 ГБ памяти, кстати, вполне хватило. Потом, если что, докинут еще 8 планок по 32. В любом случае, добавляем еще 192 000 рублей.

  4. Руководство поставило четкую задачу — никаких HDD. Хранилище всякой ерунды будет располагаться на системе хранения данных, которая у них уже есть, а сервер должен работать максимально шустро. Задание поняли. Значит, оснащаем отсеки платформы SSD. Решили поставить 8 дисков Intel SSDSC2KB960G7 по 960 ГБ каждый. Да, SATA диски, да, TLC. Но им хватит с головой. Но, во-первых, на SATA-интерфейсе MLC дает только одно преимущество — продолжительность службы. А недостаток — весьма высокая стоимость. И так получилось около 180 000 за SSD.

  5. И теперь вишенка на торте. 4 видеокарты NVidia Quadro P5000. Откуда-то раздался крик: «Тесла лучше для вычислений!». Согласен. Но не забывайте про проектирование и работу с графикой. За подобное удовольствие пришлось прибавить еще 450 000 рублей. Нехило, правда?

Платформа для сборки вычислительного сервера
Так выглядит платформа от Supermicro

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

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

Учитывая «итого», равное 1 300 000, вложения явно превосходят задачи. Там, помимо перечисленного было еще несколько мелочей, потому итого получилось чуть больше, чем сумма перечисленные сумм. Заказали сервер, кстати, в компании «Сервер Гид». Я их уже упоминал. Но, на самом деле, друзья, почему бы чуть не прорекламировать? Да и цены и сборки они предлагают адекватные.


Для чего нужен такой сервер?

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

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

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


Итог

Надеюсь, вы поняли, зачем нужны видеокарты в сервере. Случаев несколько:

  • необходимы постоянные вычисления с высокой точностью;

  • нужно быстро что-то посчитать, при том очень точно;

  • требуется работа с графическими приложениями.

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

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

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

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