GPU-accelerated libraries, DataFrame and APIs:
- Layered on top of NVIDIA CUDA, RAPIDS is a suite of open-source software libraries and APIs that provide GPU parallelism and high-bandwidth memory speed through DataFrame and graph operations, achieving speedup factors of 50x or more on typical end-to-end data science workflows. For Spark 3.0, new RAPIDS APIs are used by Spark SQL and DataFrames for GPU accelerated memory efficient columnar data processing and query plans.
- With Spark 3.0 the Catalyst query optimizer has been modified to identify operators within a query plan that can be accelerated with the RAPIDS API, and to schedule those operators on GPUs within the Spark cluster, when executing the query plan.
- A new Spark shuffle implementation, built upon GPU accelerated communication libraries including Remote direct memory access (RDMA), dramatically reduces the data transfer among Spark processes. RDMA allows GPUs to communicate directly with each other, across nodes, at up to 100Gb/s, operating as if on one massive server.
GPU-aware Scheduling in Spark
- Spark 3.0 adds integration with the cluster managers (YARN, Kubernetes, and Standalone) to request GPUs, and plugin points to allow it to be extended to run operations on the GPU. This makes GPUs easier to request and use for Spark application developers, allows for closer integration with deep learning and AI frameworks such as Horovod and TensorFlow on Spark, and allows for better utilization of GPUs.