β¨ Spark RAPIDS on Kubernetes πβ‘
π Overview
Welcome to Spark RAPIDS on Kubernetes, where we accelerate data processing workloads using the power of NVIDIA GPUs and Apache Spark, all running in a Kubernetes environment. π
By leveraging the RAPIDS cuDF library, this project showcases how you can drastically speed up Spark jobs with GPU accelerationβwhile saving on costsβall without changing your existing Spark code. This is ideal for scaling AI, machine learning, and data processing workloads.
π¦ Repo Features
- π¦ Ready-to-Use Blueprints: Includes IaC templates for setting up an EKS Cluster, NVIDIA Device Plugin, CloudWatch, Prometheus, Spark History Server, and more.
- π Spark RAPIDS Sample Scripts: Pre-configured Spark RAPIDS scripts to demonstrate the power of GPU acceleration, ready to run on Kubernetes.
- π Benchmark Scripts: Ready-to-use benchmark scripts to measure performance differences between CPU and GPU-accelerated Spark jobs, helping you evaluate the benefits of GPU processing.
- π³ Dockerfiles: Well-documented Dockerfiles to help you build and push multi-arch images for Spark RAPIDS on Kubernetes, tailored for your deployment needs.
- π Website Documentation: A fully-featured Docusaurus website providing detailed guides, installation steps, and examples to help you get started with Spark RAPIDS on Kubernetes.
- π Scalability with Kubernetes: Use Kubernetes and Amazon EKS to automatically scale your workloads, ensuring efficient resource usage for large-scale data sets and computations.
πΌ Why Spark RAPIDS?
- π Performance Boost: Process data up to 10x faster by offloading tasks to GPUs, especially for large-scale jobs.
- πΈ Cost Savings: By reducing job execution times, you save on infrastructure costs, using fewer compute resources to achieve faster results.
- π§ Ease of Use: No need to change your Spark codeβjust enable the RAPIDS plugin, and you're ready to go!
βοΈ Spark RAPIDS Features
- πͺ GPU-Accelerated Spark: Tap into the power of NVIDIA GPUs with the RAPIDS cuDF library to supercharge your Spark jobs for faster performance.
- π Unified Data & AI Pipelines: Seamlessly combine ETL processes with AI/ML workflows in a single pipeline, leveraging the power of GPU-based acceleration.
- π Advanced Shuffle: Boost performance with GPU-to-GPU communication using UCX for faster and more efficient data shuffling operations.
- πΈ Cost Efficiency: By processing workloads faster on GPUs, you save on infrastructure costs while speeding up large-scale jobs.
- 𧩠Plug-and-Play: Enable GPU acceleration with minimal configuration. Run your existing Spark jobs without modifying your codeβjust enable the RAPIDS plugin.
π Project Structure
Hereβs what you'll find in the project:
.
βββ README.md # Project overview and instructions
βββ benchmarks # Bechmarks scripts
βββ docker # Sample Dockerfiles
βββ examples # Spark RAPIDS job examples
βββ infra # Terraform scripts for cluster setup
βββ scripts # Utility scripts for deployment
βββ website # Docusaurus documentation website
βββ ADOPTERS.md # List of project adopters
βββ CONTRIBUTING.md # Guidelines for contributing to the project
βββ LICENSE # License information
π Learn More
For detailed guides, examples, and best practices on using Spark RAPIDS, check out:
To learn more and dive into detailed examples, check out NVIDIA's documentation and explore the spark-rapids-examples.
π Getting Started
Ready to dive in? Follow the installation guide to set up your Kubernetes environment with Spark RAPIDS, Karpenter, and the Spark Operator.
Letβs accelerate your data processing workflows and save on costs with GPU-accelerated Spark jobs! π‘π»
π€ Support
This project is free to use, and we'd love to see contributions from the community! If you have any questions, feel free to raise an issue on GitHub or provide feedback.