×

Планируемое ускорение для ключевых нагрузок, выявленных исследователями

Изображение предоставлено Университетом Мичигана.

Новые поколения серверов с модульными программами,

демонстрируют снижение производительности.

В чём же дело?

 

Борьба за эффективность крупных центров обработки данных ведётся по двум направлениям: с одной стороны – это повышение эффективности программных решений, подстраивающихся под изменчивые запросы потребителей; а с другой –совершенствование оборудования, которое в силах обеспечить быстродействие этих массивных сервисов даже в условиях уменьшения отклика процессоров. Удобство пользователя возрастает с каждым отдельным успехом, но объединение этих факторов даёт гораздо большие преимущества. Одновременно повышается и производительность, и экономичность, и эффективность энергозатрат современных центров обработки данных.

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

Для объединения этих направлений в эффективный симбиоз материаловедения и информатики, Акшита Шрираман, аспирант кафедры компьютерных наук и инженерии Мичиганского университета, работающая с исследователями из Facebook, разработала способ довольно точного измерения того, насколько именно аппаратный ускоритель может повлиять на быстродействие центра обработки данных. Аналитическая модель получила говорящее название Accelerometer. Огромный её плюс не только в точности, но и в практичности: она может спрогнозировать эффективность ускорителя не то что до его монтажа, но даже и на ранних этапах его проектирования.

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

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

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

Шрираман продемонстрировала, что выполнение инструкций по обеспечению ключевых функциональных возможностей большинства микросервисов, расходует всего 18% производительности ЦП. Остальные 82% расходуются на обычные операции, которые созрели для ускорения. «Ускорение этих издержек, которые мы определили, действительно может значительно ускорить процесс», – говорит она. 

Но, помимо скорости, прогнозирование эффективности ускорителей сделает все функции центра обработки данных более дешёвыми и более энергоэффективными. «Ускорение позволит нам заложить больше работы при тех же напряжениях электропитания и улучшить использование ресурсов в масштабе, поэтому энергопотребление центра обработки данных и экономия затрат значительно улучшатся», – резюмирует Акшита Шрираман.

Проблема с микросервисами заключается в том, что они могут сильно отличаться друг от друга. И конструктивно, и способами взаимодействия с оборудованием, что, наверное, ещё важнее. Например, один микросервис может связываться с ускорителем, продолжая при этом выполнять другие инструкции на процессоре, а другой может прервать работу на время «разгрузки» на ускоритель. Оба эти случая порождают разные «издержки разгрузки» – время, затрачиваемое на отправку задачи от одного процессора к другому. И если их не учитывать в работе центра обработки данных, они становятся для него потерянным временем.

«Каждый из этих вариантов разработки программного обеспечения может привести к различным перегрузкам, которые влияют на общее быстродействие от <частного> ускорения», – говорит Акшита. Но, по её словам, эта нагрузка не учитывается в главной работе как следствие влияния различных сторонних факторов на производительность устройства. Основная же задача – разработка самих ускорителей. Да к тому же, прежде всего, они должны использоваться разумно, чтобы иметь чистый эффект.

«Бросать ускоритель в каждую проблему нелепо, потому что на создание, тесты и запуск каждого из них уходит много времени, затрат и усилий. <…> Существует реальная необходимость точно понять, что и как ускорить», – заключает она.

Итак, акселерометр представляет собой аналитическую модель, которая измеряет повышение производительности системы с использованием тестируемого процессора-ускорителя (при условии, конечно, что с учётом всех перечисленных выше нюансов его применение вообще целесообразно). Процесс тестирования заключается в нескольких этапах: созданное устройство измеряет положительный эффект (то есть само ускорение), а также отрицательный эффект от временных затрат на перемещение инструкций между вычислительными компонентами (те самые «издержки разгрузки»). Хочется отметить, что возможности модели не ограничиваются новыми ускорителями. Она может быть применена к любому типу оборудования – от простой оптимизации процессора до чрезвычайно специализированной удалённой ASIC (интегральной схемы специального назначения).

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

Множество компаний заинтересовались устройством, как только результаты были опубликованы.

 «Мы получили известие о том, что несколько крупных игроков в облаке начали использовать акселерометр, чтобы быстро отбросить неудачный выбор акселератора и определить удачный, чтобы хорошо инвестировать в оборудование», – делится ШрираманFacebook уже использует эту модель для изучения новых ускорителей, используя её в качестве первого шага для быстрого выбора подходящих аппаратных решений.


По материалам TechXplore и FBresearch