Работа с Big Data при помощи GPU: ускорение работы баз данных в десятки раз



    Уже несколько лет дата-центры многих компаний работают с вычислениями с ускорением на GPU. Наша компания сейчас изучает этот вопрос, поскольку такой тип вычислений становится все более востребованным. Так, вычисления с ускорением на GPU можно (и нужно) использовать для ускорения требовательных к ресурсам приложений, созданных для работы в таких сферах, как глубокое обучение, аналитика и проектирование. Этот метод используют в дата-центрах крупных компаний, в лабораториях научно-исследовательских организациях, на предприятиях.

    Благодаря ускорению на GPU работают многие сервисы, обеспечивающие работу нейронных сетей или обрабатывающие данные, поступающие с умных автомобилей. Плюсом такого метода является то, что ресурсоемкая часть приложения, которая требует большой вычислительной мощности, обрабатывается на GPU, а все остальное выполняется на CPU. В последние несколько лет стали появляться комбинированные решения, на основе которых создаются высокоскоростные базы данных. Такие решения стоит использовать, например, для визуализации крупных массивов данных.

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

    Map-D




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

    При помощи Map-D можно строить и карту сообщений о различных катастрофах. Все это делается всего за несколько миллисекунд, при условии наличия готового массива первичных данных.

    Map-D — платформа, которая появилась несколько лет назад, и с тех пор это решение продолжает совершенствоваться. С его помощью можно проводить анализ больших массивов данных, где используется мощь параллельных вычислений GPU. Это ускоряет анализ массивов данных в 70-1000 раз, в зависимости от типа самих данных.

    База данных сервиса интегрируется в память большого числа GPU и отдельных кластеров. Она позволяет обрабатывать миллиарды базовых точек с практически мгновенным выводом результатов анализа в графическом виде. По словам создателей проекта, SQL база данных может обрабатываться Map-D с огромной скоростью.

    Kinetica


    Буквально в этом месяце обновился еще один интересный проект, который называется Kinetica. Принцип его работы примерно такой же, как и в предыдущем случае. Использовать решение предлагается в случаях, когда требуется работать с огромными массивами данных, которые требуется визуализировать. Данные перерабатываются «на лету» с быстрым выводом объективной картины результатов.

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

    По словам разработчиков, использование GPU означает работу 4000+ ядер на одно устройство, против 8-32 ядер в случае использования СPU. Kinetica включает нативный движок визуализации, плюс плагины от сторонних компаний. Все это, как утверждают создатели платформы, позволяет получать стократный прирост производительности по сравнению с CPU.

    BlazingDB




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

    Ключевым отличием платформы от прочих решений является предложение локальных и облачных инстансов со сторонних разработчиков. Если у вас уже есть данные в Amazon или Azure, вы можете добавить BlazingDB и сравнить прирост производительности.

    Ранее компания была некоммерческой, и только с июня разработчики начали пробовать монетизировать сервис. Для работы с BlazingDB понадобится Nvidia CUDA драйвер для Linux. К сожалению, единственная поддерживаемая сейчас платформа — это Ubuntu 14.04.

    Blazegraph




    Не все базы данных являются SQL-системами. Некоторые из них оптимизированы для специфических задач по работе с данными. Например, для работы с графами, где анализируется взаимосвязь отдельных объектов с визуализацией полученной после анализа информации.

    Такая работа требует ресурсов, и GPU-ориентированные вычисления как раз то, что нужно. Одна из платформ, «заточенных» под выполнение подобных задач — это Blazegraph. Отметим то, что это open-source решение, написанное на Java, с двумя методами ускорения вычислений на основе GPU.

    Разработчики говорят, что Blazegraph обеспечивает 200-300 кратный рост производительности по сравнению с CPU-решениями. Собственно, первое решение — это использование GPU для вычислений.

    Второй вариант — просто переписать свое ресурсоемкое приложение с использованием Blazegraph DASL. Это язык, разработанный для обеспечения выполнения параллельных операций на GPU. «Использование Spark с CUDA и GPU ускоряет выполнение многих приложений в 1000 раз, если сравнивать с выполнением тех же приложений на CPU», — говорят разработчики.

    PGStrom


    Это популярная open-source PostgreSQL база данных, у которой много положительных сторон. Во-первых, эта БД масштабируема, поддерживает NoSQL/JSON и некоторые другие функции.

    Интересно то, что она не поддерживает ускорение на основе GPU «из коробки». Для того, чтобы получить такую функцию, необходимо использовать сторонний проект, который называется PGStrom. При получении запроса PG-Strom определяет, может ли быть этот запрос выполнен при помощи GPU. Если это так, то создается GPU-оптимизированная версия запроса. Результат — перенаправление и выполнение запроса с GPU.

    Настройка PG-Strom — значительный труд. Он требует набора инструментов Nvidi CUDA и должен быть скомпилирован из иcходного когда. Но как только PG-Strom интегрируется в PostgreSQL, он начинает работать без необходимости что-то переписывать для использования на GPU.
    King Servers
    Хостинг-провайдер «King Servers»
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 3

      +2
      Спасибо за пост, давно искал что-то подобное, вот нужно теперь подумать про Жёсткий диски, для себя попробую PGstorm. Ещё раз спасибо за пост, актуально.
        0
        Наконец-то на Хабре появился интересный материал по данной тематике. Спасибо за PGStorm, буду пробовать.
          0
          --70-1000

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

          Only users with full accounts can post comments. Log in, please.