20

Native Execution Engines

Ускорение PySpark без изменения кода: SIMD, Arrow, Comet, Velox/Gluten, RAPIDS, Photon, Serverless K8s и Ray.

optimization platform engines
Native Execution Engines

Контрольные задания

Объяснить, почему SIMD не работает в стандартном Spark и как это решает Comet/Velox
Включить Comet и запустить TPC-H бенчмарк
Написать Pandas UDF с @pandas_udf и объяснить роль Arrow в передаче батчей
Выбрать движок по матрице для своего кейса
Запустить Sail и подключиться через SparkSession.builder.remote()

Уроки модуля

1 Проблема JVM: почему Tungsten не может использовать SIMD и при чём тут колоночное хранение 2 SIMD и векторные регистры: AVX-512, как процессор обрабатывает Parquet-колонку пачкой за один такт 3 Apache Arrow: in-memory columnar format, zero-copy передача и Record Batch как граница Python ↔ JVM ↔ C++ 4 Pandas UDF с Arrow: @pandas_udf, Series-батч вместо строки, скорость vs Row-at-a-time UDF 5 Spark Plugin API: SparkPlugin и QueryStage интерфейс для замены executor 6 Photon (Databricks): SIMD-движок на C++, что заменяет в Tungsten, 3–10× на Join и агрегациях 7 Apache DataFusion Comet: архитектура Rust + Arrow, как подключается к Spark 8 Comet: установка, операторы, ограничения и TPC-H бенчмарк 9 Gluten + Velox: Substrait IR и offloading вычислений в C++ Velox 10 RAPIDS cuDF: GPU acceleration, CUDA требования и профиль данных 11 RAPIDS: когда GPU не даёт прироста - малые данные, IO-bound запросы 12 Serverless Spark на K8s: EMR Serverless, Dataproc Serverless, pod templates и auto-scaling 13 Ray + RayDP: Spark ETL → Ray Actor для distributed ML, сравнение с MLlib 14 Выбор движка: Comet vs Velox vs RAPIDS vs Photon - матрица по кейсам 15 Sail: Rust-нативный движок с полным Spark API
Начать модуль