Программируемые чипы помогают Microsoft оптимизировать работу своих облачных сервисов

82c328456ff5f91dfa22bd8415bad078.jpg
Прототип платы для Project Catapult (Источник: Clayton Cotterell for Wired)

Корпорация Microsoft объявила о крупном обновлении оборудования своих дата-центров во всем мире. Речь идет, в первую очередь, о ДЦ, которые обеспечивают работу облачного сервиса Azure. Новое оборудование типично для дата-центров, за исключением чипов. Это перепрограммируемые матрицы логических элементов (field-programmable gate array, FPGA). Сами FPGA не новинка, но применение их в дата-центрах — новая идея от Microsoft. По мнению специалистов корпорации, программируемые чипы обеспечат аппаратное ускорение для реализации различных программных алгоритмов.

Изначально при помощи FPGA корпорация планировала оптимизировать работу своего поискового сервиса Bing. В компании разработали и начали реализовывать первый этап проекта с названием Project Catapult. В рамках этого проекта к PCI-картам от Altera (сейчас владелец Altera — компания Intel) добавили FPGA в некоторых серверах, отвечающих за работу Bing. По мнению авторов проекта, это должно было улучшить работу ранжирующего алгоритма поискового сервиса. Как оказалось, это предположение было верным. Модифицированные сервера показали значительный прирост производительности по сравнению с серверами, аппаратная часть которых не подвергалась модификациям.
Далее было предложено разработать специализированные интегральные микросхемы, принцип работы которых был бы эквивалентен FPGA. Microsoft уже разрабатывала такие микросхемы для своих видеоочков Hololens. Это позволило значительно снизить энергопотребление устройства и повысить его производительность. Как оказалось, для команды Bing этот способ не подходит. Дело в том, что поисковые алгоритмы сервиса меняются очень часто. И если начать разработку чипов, адаптированных под одни алгоритмы, то пока эти чипы изготовят и привезут, поисковые алгоритмы сменятся. А это значит, что чипы станут бесполезными (типичный пример hardware lock).

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

c514d280134db3957d6f2d958794e77b.jpg


Плата Altera Stratix V. Microsoft использует аналогичные платы в своем проекте Project Catapult

В среде Azure работает огромное количество виртуальных машин. Они размещаются на ограниченном количестве физических серверов. В дата-центрах компании для виртуализации используется гипервизор Hyper-V. У каждой виртуальной машины — один или несколько сетевых адаптеров, посредством которых эти машины принимают и отправляют сетевой трафик. Гипервизор управляет физическими сетевым оборудованием, подключенным к сетевой инфраструктуре Azure. Перенаправление трафика с виртуального оборудования на реальное и обратное, с одновременной поддержкой баланса нагрузки оборудования, управлением маршрутизацией трафика требует выделения значительных ресурсов.

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

Было решено напрямую подключить PCIe интерфейс к виртуальным машинам, что сокращало путь для сетевого трафика. Результат? Виртуальные машины Azure теперь работают с производительностью сетевой инфраструктуры в 25 Гбит/с и задержкой всего в 100 миллисекунд. И этого удалось достичь без задействования серверных процессоров.

Эту же задачу можно решить, используя современные сетевые карты, которые точно так же могут работать напрямую с виртуальными машинами, обходя хост. Но в этом случае есть ограничения. Например, каждая карта может работать одновременно лишь с 4 виртуальными машинами. Гибкости, которую обеспечивает использование FPGA, здесь нет. С FPGA Microsoft может работать более активно, программируя чипы соответственно текущим нуждам. В итоге увеличивается общая производительность дата-центра и снижается нагрузка на оборудование. Все инструкции прописываются прямо в чипе. Если же использовать сетевые карты, то в этом случае все равно задействуется процессор хоста, который и отвечает за выполнение инструкций.

После тестового запуска такой системы компания убедилась в ее эффективности и решила развернуть во всех своих дата-центрах, обеспечивающих работу Azure. На этой неделе корпорация продемонстрировала работу своей системы на конференции Ignite. Сотрудник корпорации показал одновременный процесс перевода 3 миллиардов слов из английской Википедии с задействованием тысяч FPGA. Данные были обработаны всего за десятую часть секунды. Производительность системы в этом случае достигла 1018 операций в секунду.

© Geektimes