Ускоритель RAPIDS 22.02 и 21.10 для Apache Spark

В прошлой статье мы говорили об ускорителе RAPIDS для Apache Spark. Сегодня рассмотрим, что появилось в версии RAPIDS 21.10 (релиз за январь) и 22.02 (релиз за февраль). Также в статье приведена оценка производительности выполнения запросов по сравнению с выполнением на CPU.

Ускоренный ускоритель RAPIDS для Apache Spark

RAPIDS для Apache Spark растет быстрым темпом как в функциональности, так и в производительности. Для оценки производительности можно измерить производительность основных операторов, которые используется для обработки и анализа данных.

Для тестирования использовались следующие запросы:

  • countDistinct подсчет уникальных значений;
  • window оконная функции;
  • intersect нахождение пересечения;
  • crossJoin соединения cross-join.

Эти запросы выполнялись в Google Cloud Platform (GCP) с 2xT4 GPU, каждый из которых имеет 1024 Гб памяти. Датасет был размером 3 Тб с различными типами данных. Больше информации можно посмотреть в репозитории spark-rapids-examples. Результаты производительности этих 4 запросов можно посмотреть на рисунке ниже. Как видим, скорость повышается в 1.5 раза для операции соединения и в 27 раз для подсчета уникальных значений по сравнению с выполнением на CPU. При этом наблюдается значительное снижение расходов на память. Значения могут варьироваться в зависимости от компьютера и сети.

Столбчатая диаграмма, показывающая разницу производительности между GPU и CPU
Оценка производительности в GCP, значения относительны выполнения на CPU

Новая функциональность

Версия RAPIDS 22.02 поддерживает Spark 3.2.1 и CUDA 11.x. В этом релизе основной фокус был на расширение операций ввода-вывода, обработки вложенных данных и возможностей машинного обучения (Machine Learning). Ускоритель RAPIDS 21.10 выпустил новый дополнительный модуль jar (Java ARchieve) для поддержки машинного обучения в Apache Spark.

Данный jar-модуль поддерживает метод главных компонент (Principal Component Analysis), о котором говорили тут. Для ETL-операций jar поддерживает форматы JSON. Добавлена поддержка точности целых чисел до 38 цифр (128 бит) в формате Parquet. Также появилась возможность выполнять операции: HashAggregate, Sort, Join SHJ и Join BHJ — на вложенных данных.

На рисунке ниже показано, как ускорилась обработка вложенных входных типов данных на примере 2 запросов. Также в новую версию RAPIDS были добавлены pos_explode, create_map, функции для регулярных выражений regexp_extract, regexp_replace.

Столбчатая диаграмма для сравнения запросов на вложенных данных при использовании RAPIDS GPU и просто CPU
Оценка производительности в GCP для вложенных типов данных

Код курса
MLSP
Ближайшая дата курса
по запросу
Продолжительность
ак.часов
Стоимость обучения
0 руб.

Еще больше подробностей о запуске Apache Spark на GPU с помощью библиотек RAPIDS вы узнаете на наших образовательных курсах в лицензированном учебном центре обучения и повышения квалификации руководителей и ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Записаться на курс

Смотреть раcписание

Источники
  1. Оригинал статьи
  2. Релизы

Добавить комментарий

Поиск по сайту