SlideShare a Scribd company logo
GPU Support in Spark and
GPU/CPU Mixed Resource
Scheduling at Production Scale
Yonggang Hu, IBM, Distinguished Engineer
Junfeng Liu, IBM, Architect
About us
• Yonggang Hu
Distinguished Engineer, IBM
Chief Architect at Spectrum Computing, IBM.
Vice President and Application Architect at JPMorgan Chase
Working on distributed computing, grid, cloud and big data for the
past 20 years.
• Junfeng Liu
IBM Spectrum Computing Architect, focusing on Big data
platform design and implementation. Successfully delivering
solutions to key customers.
2
Agenda
• GPU and Spark integration motivation
• The challenges of production deployments
• Solutions
• Demo
• IBM® Spectrum Conductor with Spark
3
Spark and GPU
Spark apps are
CPU intensive
Need to handle
more data and
bigger models
Machine Learning
Predictive analytics,
Logistic regression, ALS
Kmeans, etc.
Graph Analytics
Security, Fraud Detection
Social Network Analytics
GraphX
Video/Speech Analytics
Object Recognition
Dialog
Financial Risk Analytics
Market simulation
Credit risk, home-grown,
apps from Murex, Misys
Spark-enable existing GPU appsGPU-enable Spark apps 4
Various ways to integrate Spark and GPUs
• Use GPUs for accelerating Spark Libraries and operations without
changing interfaces and programming model
– IBM Open source project: https://github.com/IBMSparkGPU
– Nvidia GTC 2016 talk,
• http://on-demand.gputechconf.com/gtc/2016/presentation/s6280-rajesh-bordawekar-accelerating-spark.pdf
• http://on-demand.gputechconf.com/gtc/2016/video/S6211.html
• Automatically generate CUDA code from the source Spark Java code
– Nvidia GTC 2016 talk: http://on-demand.gputechconf.com/gtc/2016/presentation/s6346-kazuaki-
ishizaki-gpu-programming-java-programmers.pdf
• Integrate Spark with GPU-enabled application and system
(e.g., Spark integrated with Caffe, TensorFlow and customer
applications)
5
Production challenges
• However
– Identification of GPU execution vs. CPU
execution in DAG
– Data preparation for GPU execution
– Low resource utilization for CPU or GPU or
both
• Cannot assume all compute hosts are identical and
have GPU resource available
• GPU is a lot more expensive !!!
– Overload and contention when running mixed
GPU and CPU workload
– Long tail and GPU / CPU tasks failover
– Monitoring and management
Stage 2Stage 1
collect
reduceByKey
Stage GPU
GPU Group CPU Group
6
A typical example
Personalized Medicine – Adverse Drug Reaction Workload
- 30X faster at learning speed and 4X speed up end-to-end
- Need to fully utilize both GPU and CPU resources to get economic benefits
7
Source: http://on-demand.gputechconf.com/gtc/2016/presentation/s6280-rajesh-bordawekar-accelerating-spark.pdf
4X is
not
enough
Scheduling granularity
• Scheduling at application level
– Mesos and YARN tag the GPU machine with label
– Schedule the application on GPU hosts based on resource requirement of application
– Coarse-grained scheduling leads to low utilization of CPU/GPU
• Scheduling at DAG level
– Need fine-grained sharing for GPU resources rather than reserving entire GPU
machines
– Identify GPU operation
– Optimize the DAG tree by decoupling GPU operations from CPU operations and by
inserting new GPU stages
– Reduce GPU wait time, enable sharing of GPUs among different jobs and therefore
improve the overall GPU utilization
8
GPU task recognition
• GPU and CPU tasks mixed together
• Need to separate the workloads for scheduling control
GPUFunction()
Python-C Wrapper to
Invoke Native
Function
Function
implemented by
CUDA/OpenCL
GPU libraryPython-C/C++ Wrapper
9
GPU task recognition
• Mark the GPU workload by DAG
operation
– Go through the DAG tree to identify
stages with GPU requirement
– Optimize the distribution by inserting
GPU stage
10
Policies
• Resource manager needs to be able to identify the GPU
hosts and manage along with CPU resources
• Prioritization policy - share GPU resources among
applications
• Allocation policy – control GPU and CPU allocation
independently – multi-dimensional scheduling
• Fine-grained policy to schedule tasks according to
GPU-optimized DAG plan
11
Adaptive scheduling
• CPU and GPU tasks are convertible in
many applications
• Scheduling needs adaptive capability
– If GPU is available, use a portion of GPU
– Otherwise run rest of tasks on CPU
dstInBlocks.join(merged).mapV
alues {
….
if (useGPU) {
loadGPULib()
callGPU ()
}
else {
//CPU version
}
}
12
Adaptive scheduling
CPU
CPU
CPU
GPU
GPU
GPU
Driver
Executors Executors
Executors
Tasks
--------------
Node 0 Node 1 Node n
13
Efficiency considerations
• Do we need to wait for a GPU resource if there
is a CPU available?
• Do we need rerun the CPU tasks on GPU if
tasks on CPU are long-tail?
• Do we need to have failover cross-resource
type?
14
Defer scheduling
• Traditional defer scheduling
– Wait for data locality
– Cache, Host, Rack
• Resource-based defer scheduling
– Necessary if the GPU can greatly speed up task execution
– Wait time is acceptable
15
Evaluation
• Machine Learning – ALS on GPU
– IBM Spark on GPU project
– Various ML implementation on GPU
– https://github.com/IBMSparkGPU
• MovieLensALS Example
– Spark Example, without modification
– Binary compatible with Spark Application
– Data Source
• http://grouplens.org/datasets/movielens/
Evaluation
Single Application Multiple Applications
Future work
• Global optimization
– Consider the cost of additional shuffle stage
– Consider data locality of CPU and GPU stages
– Add time dimension to MDS (multi-dimensional
scheduling)
– Optimize global DAG tree execution
– Use historical data to optimize future execution, e.g,
future iteration
18
Fine grain, dynamic allocation of
resources maximizes efficiency of Spark
instances sharing a common resource
pool. Multi-tenant, multi-framework
support. Eliminates cluster sprawl.
2
Run Spark natively on a shared
infrastructure without the dependency of
Hadoop. Reduce application wait time,
improving time to results.
1
Building a Spark-Centric Shared Service
with IBM spectrum Conductor
End-to-End Enterprise Class Solution
Improve Time to Results
Proven architecture at extreme scale, with
enterprise class workload management,
multi-version support for Spark,
monitoring, reporting, and security
capabilities.
3
Reduce Administration Costs
Increase Resource Utilization
• IBM STC Spark Distribution
• IBM Platform Resource Orchestrator /
Session Scheduler, application service
manager.
• IBM Spectrum Scale FPO
4
19
http://www-03.ibm.com/systems/spectrum-computing/products/conductor/
IBM Spectrum Conductor with Spark
IBM Bluemix Spark Cloud Service in
production – thousands of users and
tenants
Third party audited benchmark
indicated significant performance /
throughput / SLA advantages
https://ibm.biz/Bd4Tyw
20
IBM Spectrum Conductor with Spark
Monitor and Reporting with Elastic (ELK)
 Integrated Elastic Search, Logstash, Kibana for customizable monitoring
 Built-in monitoring Metrics
 Cross Spark Instance Groups
 Cross Spark Applications within Spark Instance Group
 Within Spark Application
 Built-in monitoring inside Zeppelin Notebook
21
Demo
22
THANK YOU.
Visit us at the IBM booth in the expo
www.ibm.com/spectrum-conductor
yhu@ca.ibm.com
jfliu@ca.ibm.com

More Related Content

PDF
GPU Support In Spark And GPU/CPU Mixed Resource Scheduling At Production Scale
PDF
Exploiting GPUs in Spark
PDF
GPU Computing With Apache Spark And Python
PDF
CUDA performance study on Hadoop MapReduce Cluster
PDF
Leveraging GPU-Accelerated Analytics on top of Apache Spark with Todd Mostak
PDF
CaffeOnSpark: Deep Learning On Spark Cluster
PDF
Spark on Mesos
PDF
Exploiting GPUs in Spark
GPU Support In Spark And GPU/CPU Mixed Resource Scheduling At Production Scale
Exploiting GPUs in Spark
GPU Computing With Apache Spark And Python
CUDA performance study on Hadoop MapReduce Cluster
Leveraging GPU-Accelerated Analytics on top of Apache Spark with Todd Mostak
CaffeOnSpark: Deep Learning On Spark Cluster
Spark on Mesos
Exploiting GPUs in Spark

What's hot (20)

PDF
Deploying Accelerators At Datacenter Scale Using Spark
PDF
Hadoop + GPU
PDF
Serverless Machine Learning on Modern Hardware Using Apache Spark with Patric...
PDF
High Performance Python on Apache Spark
PDF
Easy and High Performance GPU Programming for Java Programmers
PDF
Distributed Deep Learning with Apache Spark and TensorFlow with Jim Dowling
PDF
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
PDF
Deep Learning Pipelines for High Energy Physics using Apache Spark with Distr...
PDF
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
PDF
Spark Summit EU talk by Josef Habdank
PDF
Enterprise Scale Topological Data Analysis Using Spark
PPTX
April 2016 HUG: CaffeOnSpark: Distributed Deep Learning on Spark Clusters
PDF
Spark Summit 2016: Connecting Python to the Spark Ecosystem
PDF
Project Hydrogen: Unifying State-of-the-Art AI and Big Data in Apache Spark w...
PPTX
Parallel Linear Regression in Interative Reduce and YARN
PDF
Top 5 Mistakes When Writing Spark Applications
PPTX
Prediction as a service with ensemble model in SparkML and Python ScikitLearn
PPTX
Hadoop Scheduling - a 7 year perspective
PDF
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
PDF
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Deploying Accelerators At Datacenter Scale Using Spark
Hadoop + GPU
Serverless Machine Learning on Modern Hardware Using Apache Spark with Patric...
High Performance Python on Apache Spark
Easy and High Performance GPU Programming for Java Programmers
Distributed Deep Learning with Apache Spark and TensorFlow with Jim Dowling
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
Deep Learning Pipelines for High Energy Physics using Apache Spark with Distr...
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
Spark Summit EU talk by Josef Habdank
Enterprise Scale Topological Data Analysis Using Spark
April 2016 HUG: CaffeOnSpark: Distributed Deep Learning on Spark Clusters
Spark Summit 2016: Connecting Python to the Spark Ecosystem
Project Hydrogen: Unifying State-of-the-Art AI and Big Data in Apache Spark w...
Parallel Linear Regression in Interative Reduce and YARN
Top 5 Mistakes When Writing Spark Applications
Prediction as a service with ensemble model in SparkML and Python ScikitLearn
Hadoop Scheduling - a 7 year perspective
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Ad

Viewers also liked (20)

PPTX
The Potential of GPU-driven High Performance Data Analytics in Spark
PPTX
TensorFrames: Google Tensorflow on Apache Spark
DOCX
Performance evaluation
PDF
Debugging Apache Spark - Scala & Python super happy fun times 2017
PPTX
Vasiliy Litvinov - Python Profiling
PDF
What’s eating python performance
PPTX
Denis Nagorny - Pumping Python Performance
PDF
The High Performance Python Landscape by Ian Ozsvald
PPTX
Boost.Python: C++ and Python Integration
PDF
Spark + Scikit Learn- Performance Tuning
PDF
Python profiling
PPT
GTC 2012: GPU-Accelerated Path Rendering
PPT
SIGGRAPH 2012: GPU-Accelerated 2D and Web Rendering
PDF
Accelerating Machine Learning Applications on Spark Using GPUs
 
PDF
PG-Strom - GPU Accelerated Asyncr
PDF
Deep learning on spark
PDF
GPU Ecosystem
PDF
Computational Techniques for the Statistical Analysis of Big Data in R
PDF
GPUs in Big Data - StampedeCon 2014
PPT
Enabling Graph Analytics at Scale: The Opportunity for GPU-Acceleration of D...
The Potential of GPU-driven High Performance Data Analytics in Spark
TensorFrames: Google Tensorflow on Apache Spark
Performance evaluation
Debugging Apache Spark - Scala & Python super happy fun times 2017
Vasiliy Litvinov - Python Profiling
What’s eating python performance
Denis Nagorny - Pumping Python Performance
The High Performance Python Landscape by Ian Ozsvald
Boost.Python: C++ and Python Integration
Spark + Scikit Learn- Performance Tuning
Python profiling
GTC 2012: GPU-Accelerated Path Rendering
SIGGRAPH 2012: GPU-Accelerated 2D and Web Rendering
Accelerating Machine Learning Applications on Spark Using GPUs
 
PG-Strom - GPU Accelerated Asyncr
Deep learning on spark
GPU Ecosystem
Computational Techniques for the Statistical Analysis of Big Data in R
GPUs in Big Data - StampedeCon 2014
Enabling Graph Analytics at Scale: The Opportunity for GPU-Acceleration of D...
Ad

Similar to GPU Support in Spark and GPU/CPU Mixed Resource Scheduling at Production Scale (20)

PDF
The Convergence of HPC and Deep Learning
PDF
Transparent GPU Exploitation on Apache Spark with Kazuaki Ishizaki and Madhus...
PPT
Enabling a hardware accelerated deep learning data science experience for Apa...
PDF
Deep Learning on the SaturnV Cluster
PDF
Enabling a hardware accelerated deep learning data science experience for Apa...
PDF
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
PDF
Infrastructure for Deep Learning in Apache Spark
PDF
Spark summit 2019 infrastructure for deep learning in apache spark 0425
PPTX
IBM AI at Scale
PPTX
CPU VS GPU Performance a: a comparative analysis
PDF
Stage Level Scheduling Improving Big Data and AI Integration
PDF
Aplicações Potenciais de Deep Learning à Indústria do Petróleo
PDF
GIST AI-X Computing Cluster
PPTX
[DSC Europe 24] Thomas Kitzler - Building the Future – Unpacking the Essentia...
PDF
Deep Dive into GPU Support in Apache Spark 3.x
PDF
NVIDIA DGX User Group 1st Meet Up_30 Apr 2021.pdf
PDF
Using GPUs to handle Big Data with Java by Adam Roberts.
PPTX
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
PDF
Mauricio breteernitiz hpc-exascale-iscte
PDF
IBM Cloud Paris Meetup - 20190520 - IA & Power
The Convergence of HPC and Deep Learning
Transparent GPU Exploitation on Apache Spark with Kazuaki Ishizaki and Madhus...
Enabling a hardware accelerated deep learning data science experience for Apa...
Deep Learning on the SaturnV Cluster
Enabling a hardware accelerated deep learning data science experience for Apa...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Infrastructure for Deep Learning in Apache Spark
Spark summit 2019 infrastructure for deep learning in apache spark 0425
IBM AI at Scale
CPU VS GPU Performance a: a comparative analysis
Stage Level Scheduling Improving Big Data and AI Integration
Aplicações Potenciais de Deep Learning à Indústria do Petróleo
GIST AI-X Computing Cluster
[DSC Europe 24] Thomas Kitzler - Building the Future – Unpacking the Essentia...
Deep Dive into GPU Support in Apache Spark 3.x
NVIDIA DGX User Group 1st Meet Up_30 Apr 2021.pdf
Using GPUs to handle Big Data with Java by Adam Roberts.
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Mauricio breteernitiz hpc-exascale-iscte
IBM Cloud Paris Meetup - 20190520 - IA & Power

More from sparktc (13)

PDF
Apache Spark™ Applications the Easy Way - Pierre Borckmans
PPTX
Hyperparameter Optimization - Sven Hafeneger
PDF
Data Science Hub & the Data Science Community - Philippe Van Impe
PDF
Data Science and Beer - Kris peeters
PDF
Holden Karau - Spark ML for Custom Models
PDF
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
PDF
DeepLearning4J and Spark: Successes and Challenges - François Garillot
PDF
DeepLearning4J and Spark: Successes and Challenges - François Garillot
PPTX
Building Custom
Machine Learning Algorithms
with Apache SystemML
PPTX
The Internet of Everywhere — How The Weather Company Scales
PDF
STC Design - Engage
PPTX
How Spark Enables the Internet of Things: Efficient Integration of Multiple ...
PDF
Spark Summit EU: IBM Keynote
Apache Spark™ Applications the Easy Way - Pierre Borckmans
Hyperparameter Optimization - Sven Hafeneger
Data Science Hub & the Data Science Community - Philippe Van Impe
Data Science and Beer - Kris peeters
Holden Karau - Spark ML for Custom Models
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
DeepLearning4J and Spark: Successes and Challenges - François Garillot
DeepLearning4J and Spark: Successes and Challenges - François Garillot
Building Custom
Machine Learning Algorithms
with Apache SystemML
The Internet of Everywhere — How The Weather Company Scales
STC Design - Engage
How Spark Enables the Internet of Things: Efficient Integration of Multiple ...
Spark Summit EU: IBM Keynote

Recently uploaded (20)

PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
L1 - Introduction to python Backend.pptx
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Digital Strategies for Manufacturing Companies
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Essential Infomation Tech presentation.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Complete React Javascript Course Syllabus.pdf
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PDF
AI in Product Development-omnex systems
PPTX
ai tools demonstartion for schools and inter college
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Introduction to Artificial Intelligence
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
L1 - Introduction to python Backend.pptx
2025 Textile ERP Trends: SAP, Odoo & Oracle
Digital Strategies for Manufacturing Companies
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Essential Infomation Tech presentation.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
VVF-Customer-Presentation2025-Ver1.9.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Complete React Javascript Course Syllabus.pdf
Materi-Enum-and-Record-Data-Type (1).pptx
AI in Product Development-omnex systems
ai tools demonstartion for schools and inter college
Materi_Pemrograman_Komputer-Looping.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence

GPU Support in Spark and GPU/CPU Mixed Resource Scheduling at Production Scale

  • 1. GPU Support in Spark and GPU/CPU Mixed Resource Scheduling at Production Scale Yonggang Hu, IBM, Distinguished Engineer Junfeng Liu, IBM, Architect
  • 2. About us • Yonggang Hu Distinguished Engineer, IBM Chief Architect at Spectrum Computing, IBM. Vice President and Application Architect at JPMorgan Chase Working on distributed computing, grid, cloud and big data for the past 20 years. • Junfeng Liu IBM Spectrum Computing Architect, focusing on Big data platform design and implementation. Successfully delivering solutions to key customers. 2
  • 3. Agenda • GPU and Spark integration motivation • The challenges of production deployments • Solutions • Demo • IBM® Spectrum Conductor with Spark 3
  • 4. Spark and GPU Spark apps are CPU intensive Need to handle more data and bigger models Machine Learning Predictive analytics, Logistic regression, ALS Kmeans, etc. Graph Analytics Security, Fraud Detection Social Network Analytics GraphX Video/Speech Analytics Object Recognition Dialog Financial Risk Analytics Market simulation Credit risk, home-grown, apps from Murex, Misys Spark-enable existing GPU appsGPU-enable Spark apps 4
  • 5. Various ways to integrate Spark and GPUs • Use GPUs for accelerating Spark Libraries and operations without changing interfaces and programming model – IBM Open source project: https://github.com/IBMSparkGPU – Nvidia GTC 2016 talk, • http://on-demand.gputechconf.com/gtc/2016/presentation/s6280-rajesh-bordawekar-accelerating-spark.pdf • http://on-demand.gputechconf.com/gtc/2016/video/S6211.html • Automatically generate CUDA code from the source Spark Java code – Nvidia GTC 2016 talk: http://on-demand.gputechconf.com/gtc/2016/presentation/s6346-kazuaki- ishizaki-gpu-programming-java-programmers.pdf • Integrate Spark with GPU-enabled application and system (e.g., Spark integrated with Caffe, TensorFlow and customer applications) 5
  • 6. Production challenges • However – Identification of GPU execution vs. CPU execution in DAG – Data preparation for GPU execution – Low resource utilization for CPU or GPU or both • Cannot assume all compute hosts are identical and have GPU resource available • GPU is a lot more expensive !!! – Overload and contention when running mixed GPU and CPU workload – Long tail and GPU / CPU tasks failover – Monitoring and management Stage 2Stage 1 collect reduceByKey Stage GPU GPU Group CPU Group 6
  • 7. A typical example Personalized Medicine – Adverse Drug Reaction Workload - 30X faster at learning speed and 4X speed up end-to-end - Need to fully utilize both GPU and CPU resources to get economic benefits 7 Source: http://on-demand.gputechconf.com/gtc/2016/presentation/s6280-rajesh-bordawekar-accelerating-spark.pdf 4X is not enough
  • 8. Scheduling granularity • Scheduling at application level – Mesos and YARN tag the GPU machine with label – Schedule the application on GPU hosts based on resource requirement of application – Coarse-grained scheduling leads to low utilization of CPU/GPU • Scheduling at DAG level – Need fine-grained sharing for GPU resources rather than reserving entire GPU machines – Identify GPU operation – Optimize the DAG tree by decoupling GPU operations from CPU operations and by inserting new GPU stages – Reduce GPU wait time, enable sharing of GPUs among different jobs and therefore improve the overall GPU utilization 8
  • 9. GPU task recognition • GPU and CPU tasks mixed together • Need to separate the workloads for scheduling control GPUFunction() Python-C Wrapper to Invoke Native Function Function implemented by CUDA/OpenCL GPU libraryPython-C/C++ Wrapper 9
  • 10. GPU task recognition • Mark the GPU workload by DAG operation – Go through the DAG tree to identify stages with GPU requirement – Optimize the distribution by inserting GPU stage 10
  • 11. Policies • Resource manager needs to be able to identify the GPU hosts and manage along with CPU resources • Prioritization policy - share GPU resources among applications • Allocation policy – control GPU and CPU allocation independently – multi-dimensional scheduling • Fine-grained policy to schedule tasks according to GPU-optimized DAG plan 11
  • 12. Adaptive scheduling • CPU and GPU tasks are convertible in many applications • Scheduling needs adaptive capability – If GPU is available, use a portion of GPU – Otherwise run rest of tasks on CPU dstInBlocks.join(merged).mapV alues { …. if (useGPU) { loadGPULib() callGPU () } else { //CPU version } } 12
  • 14. Efficiency considerations • Do we need to wait for a GPU resource if there is a CPU available? • Do we need rerun the CPU tasks on GPU if tasks on CPU are long-tail? • Do we need to have failover cross-resource type? 14
  • 15. Defer scheduling • Traditional defer scheduling – Wait for data locality – Cache, Host, Rack • Resource-based defer scheduling – Necessary if the GPU can greatly speed up task execution – Wait time is acceptable 15
  • 16. Evaluation • Machine Learning – ALS on GPU – IBM Spark on GPU project – Various ML implementation on GPU – https://github.com/IBMSparkGPU • MovieLensALS Example – Spark Example, without modification – Binary compatible with Spark Application – Data Source • http://grouplens.org/datasets/movielens/
  • 18. Future work • Global optimization – Consider the cost of additional shuffle stage – Consider data locality of CPU and GPU stages – Add time dimension to MDS (multi-dimensional scheduling) – Optimize global DAG tree execution – Use historical data to optimize future execution, e.g, future iteration 18
  • 19. Fine grain, dynamic allocation of resources maximizes efficiency of Spark instances sharing a common resource pool. Multi-tenant, multi-framework support. Eliminates cluster sprawl. 2 Run Spark natively on a shared infrastructure without the dependency of Hadoop. Reduce application wait time, improving time to results. 1 Building a Spark-Centric Shared Service with IBM spectrum Conductor End-to-End Enterprise Class Solution Improve Time to Results Proven architecture at extreme scale, with enterprise class workload management, multi-version support for Spark, monitoring, reporting, and security capabilities. 3 Reduce Administration Costs Increase Resource Utilization • IBM STC Spark Distribution • IBM Platform Resource Orchestrator / Session Scheduler, application service manager. • IBM Spectrum Scale FPO 4 19 http://www-03.ibm.com/systems/spectrum-computing/products/conductor/
  • 20. IBM Spectrum Conductor with Spark IBM Bluemix Spark Cloud Service in production – thousands of users and tenants Third party audited benchmark indicated significant performance / throughput / SLA advantages https://ibm.biz/Bd4Tyw 20
  • 21. IBM Spectrum Conductor with Spark Monitor and Reporting with Elastic (ELK)  Integrated Elastic Search, Logstash, Kibana for customizable monitoring  Built-in monitoring Metrics  Cross Spark Instance Groups  Cross Spark Applications within Spark Instance Group  Within Spark Application  Built-in monitoring inside Zeppelin Notebook 21
  • 23. THANK YOU. Visit us at the IBM booth in the expo www.ibm.com/spectrum-conductor yhu@ca.ibm.com jfliu@ca.ibm.com

Editor's Notes

  • #5: The synergy is coming from two directions. There are many existing GPU applications, such as deep learning apps – Caffe, Torch, commercial or home grown apps doing risk calculation etc, They could leverage Spark to support data distribution and data parallelization of computation on multiple GPU card. On the other hand, it is already well known that many Spark apps are compute intensive – within each Spark task there are many parallizable elements – Instead of running them on CPU, running them on GPU will greatly improve the performance. For example, we have implemented some of Mllib functions on GPU and achieve great speed. Also if each node does more work, we can reduce communication and network traffic.
  • #6: IBM is actively working on and contributing to all three areas. Rajesh had a very talk on our work to accelerate Spark Mllib using GPU without changing Spark interface. Wei Tan presentation demonstrate how to use GPU to accelerate ALS. Our Japan team and Canada team worked on this thread. They had a talk at GTC 2016, and showed how to program GPU in pure Java using new parallel streaming API and JIT Cuda code generation.
  • #7: How to effectively map Spark partitions to GPU nodes, then to make sure data will fit into GPU memory and move necessary data to GPU. Data might need to shuffled and certain data format (columnar format) is more suitable for GPU access. Spark memory manager needs to consider GPU memory as well. Spark is not GPU aware – when it creates DAG, when it distributes partition, manages memory. There is no way you can monitor and control it. How many GPUs are there, how GPUs are being used, utilization, etc.?
  • #8: Builds a LBFGS – based logistic regression model to classify drug pairs
  • #20: Spark centric infrastructure with Conductor
  • #22: 21