Взрывной рост применения данных вызывает спрос на более быстрые вычисления, при этом доступ к данным остается узким местом — но ситуация скоро изменится, считают исследователи и опрошенные порталом ComputerWeekly эксперты.
ИТ-индустрия всегда стремится преодолеть узкие места, и одним из самых больших является ввод-вывод (I/O). Будь то пропускная способность памяти, пропускная способность сети или скорость обновления экрана с высоким разрешением, общую производительность ограничивает скорость копирования данных центральным процессором на внешнее устройство.
Новые поколения динамической оперативной памяти (RAM) улучшают обмен данными между центральным процессором и основной памятью компьютера. GPU (графические процессоры) берут на себя обработку графики, уменьшая количество операций ввода-вывода, необходимых для рендеринга графики, и одновременно значительно повышая производительность, особенно в компьютерных играх.
Но огромная мощность GPU также привела к появлению новых областей применения, где требуются высокопараллельные вычисления. GPU ускоряют машинное обучение и механизмы вывода для принятия решений на основе искусственного интеллекта.
Есть ли смысл в обработке данных в хранилище?
ПО работает на данных, а данные часто рассматриваются как «новая нефть». Поэтому имеет смысл размещать данные как можно ближе к месту их обработки, чтобы сократить время задержки для требовательных к производительности задач обработки. Некоторые архитектуры предусматривают размещение больших фрагментов памяти рядом с вычислительной функцией, и, наоборот, в некоторых случаях имеет смысл разместить вычислительную систему ближе к объемному хранилищу.
Рост объема данных привел к тому, что некоторые представители отрасли задаются вопросом, можно ли по аналогии с GPU использовать устройства хранения данных для ускорения задач их обработки. Это сфера называется вычислительным хранением (термин, используемый для описания комбинации программного и аппаратного обеспечения для разгрузки и смягчения ограничений существующих вычислений, памяти и хранения в попытке повысить производительность приложений и/или эффективность инфраструктуры).
Ранее в этом году Антонио Барбалас, старший преподаватель Института архитектуры вычислительных систем Эдинбургского университета, опубликовал написанную совместно с Microsoft Research статью «Вычислительное хранение: где мы сегодня?» («Computational Storage: Where Are We Today?’», в которой рассматривается текущее состояние вычислительного хранения.
«Можем ли мы что-то сделать с хранением данных?» — вопрошает он, указывая на то, что организации собирают большие объемы данных, которые затем необходимо обрабатывать. «Например, современные базы данных чрезвычайно велики, — отмечает он. — Они копируют данные с устройств хранения для обработки в оперативной памяти. Чтобы переместить базу данных в память, требуется много времени».
Таким образом, существует обоснованная необходимость выполнять запросы к базам данных на устройстве хранения, чтобы избежать узкого места ввода-вывода, когда данные копируются туда-сюда с устройства хранения в оперативную память компьютера.
Некоторые задачи уже выполняются на контроллерах хранения, используемых для управления физическими устройствами, такими как дисковые массивы, говорит Мэтт Армстронг-Барнс, технический директор HPE: «Дедупликация, сжатие и декомпрессия уже выполняются массивами хранения». Такие приложения не делают их вычислительными системами хранения, но они иллюстрируют, что контроллеры систем хранения становятся «умнее».
Аппаратное ускорение
Согласно Барбаласу, вычислительное хранение имеет высокие перспективы. Он говорит, что вычислительное устройство хранения может выполнять простые операции над данными, чтобы уменьшить объем данных, которые необходимо обрабатывать центральным процессором. Обработка данных на периферии, например, на устройстве Интернета вещей (IoT), является одной из возможных областей применения сценариев, в которых данные с датчиков передаются непосредственно на устройство хранения. Далее центральный процессор на Edge-устройстве загружает данные датчика в облако при получении предупреждения о возникновении аномалии или через регулярные интервалы времени.
Некоторые производители разработали интеллектуальные SSD-устройства на основе заказных интегральных схем (ASIC) для ускорения определенных функций, таких как транскодирование видео, которые выполняются непосредственно на устройствах.
Другой вариант — использование ПЛИС (FPGA) для ускорения таких функций. Например, Xilinx разработала платформу на базе ПЛИС, которая используется в вычислительном устройстве хранения данных SmartSSD компании Samsung.
Один из ее партнеров, Lewis Rhodes Labs, предлагает аплаенс для поиска данных в хранилище в киберкриминалистических целях. Это система поиска регулярных выражений, оптимизированная для обнаружения аномалий. По данным разработчика, основанное на ПЛИС и оснащенное 24 накопителями SmartSSD устройство может выполнить поиск в хранилище объемом 96 Тб со скоростью 60 Гбит/с, предоставив результаты менее чем за 25 минут.
NGD Systems — еще одна компания, которая часто упоминается в связи с вычислительным хранением. Она предлагает интеллектуальные SSD на базе процессора ARM, что означает, что ее продукты могут использовать ОС Linux, на которой можно запускать алгоритмы более общего назначения.
В феврале 2020 г. компания объявила о привлечении 20 млн. долл. венчурного финансирования для поддержки и ускорения производства и развертывания, как она утверждает, первого в мире вычислительного накопителя NVMe (non-volatile memory express). Среди областей его применения — возможность запуска ИИ и машинного обучения на устройстве, где хранятся данные.
Booking.com использует эту технологию в своих дата-центрах, поскольку энергопотребление и задержка записи являются ключевыми показателями для сайта бронирования отелей.
Вычислительное хранение данных не ограничивается только добавлением интеллектуальных функций непосредственно в SSD. Подобно тому, как графические карты, оснащенные GPU, используются для ускорения приложений, оптимизированных для параллельных вычислений, карта расширения вычислительного хранения может быть подключена к материнской плате ПК для ускорения определенных функций обработки данных.
Программирование вычислительного хранения
В своей работе Барбалас рассмотрел, как можно адаптировать приложения для использования преимуществ вычислительного хранения. По его словам, существует множество алгоритмов, которые можно классифицировать как предназначенные для обработки потоков данных. Одним из примеров является AWS Lamda. «Приложение может разбить поток данных на несколько частей, — считает он. — Одна из них может быть передана вычислительному хранению».
Например, рабочая нагрузка ИИ может быть разделена таким образом, что некоторые части выполняются непосредственно на вычислительной системе хранения, а другие части используют центральный процессор. Высокораспределенные высокопроизводительные вычислительные нагрузки, такие как прогнозирование погоды, также могут использовать преимущества вычислительного хранения. «Вопрос в том, можно ли обрабатывать данные на вычислительном устройстве хранения более эффективно», — говорит Барбалас.
Это относится как к локальным, так и к облачным данным. Как рассказали в марте 2020 г. архитекторы AWS Дэвид Грин и Мустафа Рахими, обработка данных может быть перенесена ближе к месту их хранения для повышения эффективности. Хотя это не совсем вычислительное хранение, функция S3 Select облачного хранилища S3 может использоваться для выполнения SQL-запросов непосредственно к данным, хранящимся в облаке.
В документе Барбаласа и Microsoft также рассматриваются два других варианта программирования вычислительного хранения. Общая память — это техника, часто используемая в многопроцессорном оборудовании для того, чтобы разные процессоры могли работать с одним и тем же набором данных. Эта техника также может быть применена к вычислительному хранению, если соответствующим образом изменить системное ПО.
Архитектура клиент-сервер — это еще одна категория вычислительного хранения, которую Барбалас выделяет в своем исследовании. В статье NGD Systems и исследователей из Калифорнийского университета и Тегеранского университета, опубликованной в 2019 г., обсуждалось, что вычислительное хранение может основываться на высокораспределенном подходе к хранению и обработке данных, который использует Hadoop MapReduce со своими DataNodes.
«Вычислительные устройства хранения данных с поддержкой Hadoop могут одновременно играть роль быстрых устройств хранения для обычных узлов данных DataNodes и узлов данных DataNodes с поддержкой обработки в хранилище, что приводит к увеличению вычислительной мощности», — пишут авторы статьи.
Проблемы и направления развития
Для вычислительного хранения все еще только начинается. Главный аналитик CCS Insight Бола Ротиби считает, что одна из проблем заключается в превращении менеджеров систем хранения в программистов, в то время как они слабо разбираются в кодировании.
Армстронг-Барнс не уверен, что интеллектуальные SSD и вычислительное хранение добьются такого же успеха, как GPU в обычных вычислениях. По его словам, данные не очень хорошо смешиваются, и в этом заключается проблема при добавлении рабочих нагрузок обработки данных из разных мест.
По мнению Барбаласа, нерешенной остается задача многопользовательской эксплуатации — когда функции вычислительного хранения предоставляются по требованию публичными облачными провайдерами. Данные хранятся в публичном облаке в нескольких пулах, и вычислительному хранению может потребоваться оперировать с определенным подмножеством данных, которые могут быть распределены между различными физическими серверами.
Несмотря на эти проблемы, причина, по которой люди задумываются о вычислительном хранении, заключается в экспоненциальном росте объемов данных. «Сегодня данные хранятся определенными способами, отражающими то, как развивались архитектуры процессоров, — говорит Адриан Ферн, основатель и технический директор Prizsm Technologies. — Но они не подходят для доступа к тем объемам данных, которые есть уже сейчас и которые будут экспоненциально расти по мере приближения к квантовой эпохе».