Современные бизнес-задачи всё чаще решаются с использованием искусственного интеллекта и машинной аналитики больших данных. Год от года возрастает зависимость коммерческой эффективности заказчиков от производительности «железа», на котором развёртываются соответствующие программные системы. По мере укрепления этой зависимости становится всё более очевидно, что актуальная сегодня конвергентная инфраструктура ЦОДов не оптимальна для решения связанных с ИИ задач, и что на смену ей должна прийти другая, компонуемая. Однако замена эта может растянуться на долгие годы, поскольку требует принципиального пересмотра аппаратной основы используемых в дата-центрах вычислительных средств.
Скорость решает всё
Согласно недавнему прогнозу IDC, к 2024 г. ИИ станет значимым компонентом в структуре корпоративных вычислений. Для 75% компаний в мире, уверены аналитики, 20% их вычислительной нагрузки будет к тому времени либо полностью приходится на обеспечение функционирования ИИ, либо работать с предоставленными искусственным интеллектом данными. В то же самое время для тех же компаний работу 15% их ИТ-инфраструктуры будет ускорять ИИ. Величины в 15 и 20% не слишком велики, и тому есть причина: реализация ИИ, будь то глубокое обучение или многопараметрическая прескриптивная аналитика, требует существенных инвестиций в ИТ-инфраструктуру.
Причём инвестиций, в идеале, не экстенсивных — простого расширения машинных залов и заполнения их всё новыми рядами классических серверных стоек, — а интенсивных, сопряжённых с немалыми расходами на НИОКР, а затем на испытания и налаживание серийного выпуска нового «железа». Дело в том, что классическая компьютерная архитектура даже на уровне организации центрального процессора (ЦП) далеко не оптимальна для решения имеющих отношение к ИИ задач. Прежде всего потому, что не предусматривает существенно высокого параллелизма, когда вычисления производятся одновременно в сотнях и тысячах параллельных потоков.
Обойти бутылочное горлышко недостаточной многопоточности ЦП позволяют сегодня сразу две довольно развитые технологии: GPGPU и FPGA/ASIC. General-purpose computing on graphics processing units, или же неспециализированные вычисления на графических процессорах (ГП), ориентированы на использование ГП с сотнями и тысячами сравнительно простых вычислительных ядер вместо ЦП с их несколькими (в лучшем случае — несколькими десятками) сложных универсальных ядер. Базовые задачи в потоках вычислений, связанных с решением задач ИИ, с математической точки зрения чаще всего просты (сводятся к сложению целых чисел) и потому эффективно исполняются как раз на ГП.
Программируемая пользователем вентильная матрица — field programmable gate array (FPGA) — наряду с интегральной схемой специального назначения (application-specific integrated circuit, ASIC), представляет собой ещё более адекватную аппаратную основу для решения задач ИИ. В каком-то смысле это противоположные подходы к решению одной и той же проблемы: ASIC — высокоспециализированная на аппаратном уровне, не предполагающая исполнения алгоритмов, сколько-нибудь отличных от тех, для которых данная микросхема исходно была спроектирована. FPGA, напротив, предусматривает модификацию своей аппаратной структуры под указанием программы практически в любой момент её использования.
И графические процессоры, и FPGA/ASIC выполняются в виде модулей со стандартными для привычной компьютерной архитектуры интерфейсами, что позволяет органично интегрировать их в действующую серверную инфраструктуру и тем самым уменьшать нагрузку на ЦП. Однако за центральным процессором всё равно остаются функции важнейшего узла, диспетчеризующего задачи и контролирующего порядок и процесс их исполнения. В получившейся так называемой гетерогенной вычислительной системе ЦП приходится управлять распределением заданий между множеством ГП или FPGA/ASIC-плат.
К примеру, в высокопроизводительном компьютере для глубокого обучения и иных существенно многопоточных задач Nvidia DGX-1 центральный процессор Intel Xeon работает в связке с восемью ГП Tesla V100, причём обмен информацией между соседними ГП ведётся по высокоскоростной шине NVLink. Для второго поколения этой системы, DGX-2 с шестнадцатью Tesla, Nvidia пришлось уже разрабатывать NVLink-коммутатор — иначе не удавалось выйти на предельно возможный уровень многопоточной производительности. Задача в итоге была решена, но цена такой системы — около 400 тыс. долл. на момент старта продаж — сделал её практически недоступной широкому кругу заказчиков, в особенности из СМБ.
Время компоновать
Повсеместное распространение облачных сервисов сделало привычной для бизнеса конвергентную инфраструктуру: вместо выделения своего аппаратного узла для исполнения каждой задачи она подразумевает исполнение виртуализованных серверов на общедоступном оборудовании. Положительных сторон у этого подхода множество, однако абсолютная скорость исполнения вычислений к ним не относится. В ситуации, когда даже между двумя соседними ГП Tesla в составе одного ИИ-ориентированного сервера приходится использовать проприетарную сверхскоростную шину, нет смысла виртуализовывать вычислительные ресурсы стандартным образом и полагаться на стандартные соединения (прежде всего, PCIe и Ethernet).
В рамках конвергентной инфраструктуры отдельные серверы в стойке (и в ЦОДе в целом) могут различаться производительностью ЦП и ГП, объёмами оперативной памяти и хранилищ данных, но все они с точки зрения архитектуры представляют собой цельные, агрегированные х86-компьютеры. Идея компонуемой инфраструктуры заключается в дезагрегации компьютерной архитектуры; в превращении её в гибкий пул базовых модулей: вычислительных ресурсов, систем хранения данных и коммутационных сетей. Унифицированный интерфейс позволяет временно агрегировать и перекомпоновывать эти модули в зависимости от меняющихся потребностей конкретных приложений.
Иными словами, компонуемая инфраструктура идеологически схожа с концепцией FPGA, только на уровне не отдельной микросхемы, а аппаратных блоков полнофункционального компьютера. Что особенно важно, соединения между отдельными узлами компонуемой системы должны обладать теми же пропускной способностью и задержками, что внутрикомпьютерные шины: только это позволяет создаваемой всякий раз заново «системе по требованию» оставаться бескомпромиссной в плане теоретически достижимой с использованием данных компонентов производительности.
По некоторым оценкам, в актуальных конвергентных ЦОДах утилизация ресурсов в среднем за сутки не превышает 45%. По утверждению специалистов WD, переход к компонуемой архитектуре даст возможность выйти на уровень 70% и более, причём объёмы инвестиций для достижения заданного уровня производительности сократятся по сравнению с конвергентным решением на 50%, а стоимость владения на всём протяжении срока фактической эксплуатации — на 40%. Однако пока на пути к построению подлинно компонуемой инфраструктуры ещё немало чисто инженерных препятствий.
Важнейшее из которых — практические сложности с дезагрегацией оперативной памяти (DRAM) от процессора (процессоров) при сохранении тех же характеристик коммутирующей их шины, что и в нынешних агрегированных компьютерных системах. Доступные сегодня на рынке компонуемые инфраструктурные решения, такие как HPE Synergy или Dell EMC PowerEdge MX, несколько напоминают блейд-серверы с раздельными вычислительными модулями (в которые входят процессоры и оперативная память) и модулями хранения данных, межсоединения между которыми обеспечивает переключаемая SAS-структура (switched SAS fabric). Для целого ряда существенно многопоточных задач такая архитектура уже обеспечивает довольно заметный рост производительности по сравнению с конвергентной сопоставимой цены (или, наоборот, позволяет получать сопоставимую валовую производительность дешевле, чем конвергентная инфраструктура с дорогостоящими оптоволоконными соединениями между стойками).
SAS- или Ethernet-структура межсоединений обеспечивает эффективную дезагрегацию подсистемы хранения данных, однако на пути к подлинно компонуемой инфраструктуре необходимо дезагрегировать ещё и оперативную память от ЦП, а его, в свою очередь, — от ГП. Использовать для этой цели PCIe-коммутаторы в различных вариантах, например, предлагают инженеры стартапа Liqid, однако пока эти разработки не отлажены до уровня, который экономически оправдывал бы массовый отказ от ставшей ныне классикой конвергентной инфраструктуры.
Вдобавок, управление компонуемой инфраструктурой представляет собой нерядовую проблему, отличную от администрирования стандартных стоек с типовым серверным оборудованием, что также затрудняет более или менее автоматический переход на компонуемые системы при решении наиболее подходящих для них клиентских задач, поступающих в ЦОДы, к примеру. Идентификация задачи, которая в максимальной степени выигрывала бы от исполнения её именно на компонуемом оборудовании, и передача такой задачи в соответствующий отдел программно-определяемого дата-центра, в принципе решаема — для этого предназначаются такие перспективные API управления инфраструктурой, как Redfish.
Однако пока всё соответствующее аппаратное и программное обеспечение находятся на стадии разработки, в лучшем случае опытной эксплуатации в рамках различных стартапов. И даже отдельные яркие инициативы — такие, как структура межсоединений оперативной памяти Gen-Z memory fabric — развиваются в значительной мере независимо, в отсутствие общепринятых индустриальных стандартов. В целом безусловно понятно, что дальнейшее развитие потребности бизнеса в скорейшем решении ИИ-ориентированных задач будет стимулировать прогресс в области компонуемой инфраструктуры ЦОДов. Но пока, на краткосрочную — и с высокой вероятностью на среднесрочную перспективу — классический конвергентный подход продолжит оставаться для решения таких задач наиболее экономически эффективным.