SlideShare a Scribd company logo
1© 2017 Rogue Wave Software, Inc. All Rights Reserved. 1
Approaches to
debugging mixed-
language HPC apps
Exhibitor Forum
SC17
2© 2017 Rogue Wave Software, Inc. All Rights Reserved. 2
Data modeling is critical for machine learning
• Data scientists iterate over huge datasets
• Legacy algorithms are critical
• Most popular languages
– R in scientific communities
– Python in engineering
• Focusing on Python
• Developers use it because
– Ease of use
– Clean syntax
– Extension libraries (many in C/C++)
3© 2017 Rogue Wave Software, Inc. All Rights Reserved. 3
Calling C/C++ from Python
• High performance libraries are written in C/C++ and Fortran
– Run faster
– Rewriting doesn’t make sense
– Advanced multi-threaded capabilities
• Fortunately there are many ways to call between the languages
4© 2017 Rogue Wave Software, Inc. All Rights Reserved. 4
Debugging multiple languages
• Debugging one language is difficult enough
– Especially with many threads/processes
• The language intersection is tougher
– Data comparison
– Glue code
• Issues are:
– Viewing data across language barriers
– Combined call stack
– Extraneous stack frames
5© 2017 Rogue Wave Software, Inc. All Rights Reserved. 5
Python Session Editor
Glue
code
Debugging Python Interpreter
6© 2017 Rogue Wave Software, Inc. All Rights Reserved. 6
Stopped in C/C++ Python Extension
Shows Python & C++
7© 2017 Rogue Wave Software, Inc. All Rights Reserved. 7
Stopped in C/C++ Python Extension
Shows Python & C++
8© 2017 Rogue Wave Software, Inc. All Rights Reserved. 8
Selected Python frame
C++
data
Python
Data
9© 2017 Rogue Wave Software, Inc. All Rights Reserved. 9
Data View
C++
data
Python
Data
10© 2017 Rogue Wave Software, Inc. All Rights Reserved. 10
Numpy
11© 2017 Rogue Wave Software, Inc. All Rights Reserved. 11
Python without filtering
Glue
code
No viewing of Python data and code
12© 2017 Rogue Wave Software, Inc. All Rights Reserved. 12
Python support in TotalView
• Designed for where Python calls C/C++ or vice versa
• Glue frames hidden from view
– Supported for SWIG
– User customizable
• Python information shown
– Code
– Data
13© 2017 Rogue Wave Software, Inc. All Rights Reserved. 13
Stack transformation facility
• Hides stack frames
• Transforms stack frames
• Backbone for:
– Python support
• Useful for any stack frames you want to hide
– Language differences
– Wrapper code
14© 2017 Rogue Wave Software, Inc. All Rights Reserved. 14
Demo
15© 2017 Rogue Wave Software, Inc. All Rights Reserved. 15
Few use cases
• Currently used with large scientific application at Lawrence
Livermore National Laboratory
• Helpful while learning or extending packages such as TensorFlow.
16© 2017 Rogue Wave Software, Inc. All Rights Reserved. 16
TensorFlow basics
• Open source
• Numerical computation
• Usage in machine learning
• Written in C++
– Called from Python
17© 2017 Rogue Wave Software, Inc. All Rights Reserved. 17
TensorFlow
Multithreaded application
Glue code removed
Added a rule for some wrappers
18© 2017 Rogue Wave Software, Inc. All Rights Reserved. 18
How does Rogue Wave help HPC?
TotalView debugger
• Troubleshooting and analysis tool
• Visibility into applications
• Control over applications
• Integrated Reverse Debugging
MemoryScape debugger
• Malloc API misuse
• Memory leaks
• Buffer overflows
• Invalid Read/Write
19© 2017 Rogue Wave Software, Inc. All Rights Reserved. 19
TotalView for HPC
• Comprehensive multi-core and multi-threaded analysis and debug environment
– Thread specific breakpoints
– Control individual thread execution
– View thread specific stack and data
– View complex data types easily
• Integrated Reverse debugging
• Mixed Language - Python C/C++
• Track memory leaks in running applications
• Supports C/C++ on Linux
• Active development for 30+ years
• Allowing the business to have
– Predictable development schedules
– Less time spent debugging
20© 2017 Rogue Wave Software, Inc. All Rights Reserved. 20
Summary
• Comments and questions
• Come see a live demo and learn more at our SC17 booth 1715
• For more information
– https://www.roguewave.com
– White Paper - https://www.roguewave.com/resources/white-
papers/mixed-language-debugging-python-c-cplusplus
– Videos - https://www.youtube.com/watch?v=LXSSstUdKnc
– Evaluation - https://www.roguewave.com/products-services/request-
evaluation
21© 2017 Rogue Wave Software, Inc. All Rights Reserved. 21

More Related Content

What's hot (19)

PDF
OpenShift As A DevOps Platform
Lalatendu Mohanty
 
PPTX
DevOps and Git: Solving for CI/CD at Scale
Perforce
 
PPTX
Why is Open Source so Good: Thirty Years of Lessons Learned
Mark Atwood
 
PDF
Bringing Some Spatial Love to your Application with OpenShift - Mongo Berlin ...
OpenShift Origin
 
PDF
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
Xpand IT
 
PPTX
How to Work Efficiently in a Hybrid Git-Perforce Environment
Perforce
 
PPTX
Why developers love helix team hub
Perforce
 
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
PDF
Putting Drupal in the Cloud with Red Hat's OpenShift PaaS #DrupalCon/Prague
OpenShift Origin
 
PDF
Enterprise-Grade DevOps Solutions for a Start Up Budget
DevOps.com
 
PDF
Building Domain-specific PaaS with OpenShift Origin: The TRESOR Healthcare P...
OpenShift Origin
 
PDF
Kangaroot open shift best practices - straight from the battlefield
Kangaroot
 
ODP
DevOps, PaaS and the Modern Enterprise CloudExpo Europe presentation by Diane...
OpenShift Origin
 
PPTX
Kiss.ts - The Keep It Simple Software Stack for 2017++
Ethan Ram
 
PDF
Enterprise DevOps Series: Using VS Code & Zowe
DevOps.com
 
PDF
DevOps Spain 2019. Beatriz Martínez-IBM
atSistemas
 
PDF
HKG18-318 - OpenAMP Workshop
Linaro
 
PPTX
DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale
Gene Kim
 
PDF
There is no such thing as “Vanilla Kubernetes”
Kangaroot
 
OpenShift As A DevOps Platform
Lalatendu Mohanty
 
DevOps and Git: Solving for CI/CD at Scale
Perforce
 
Why is Open Source so Good: Thirty Years of Lessons Learned
Mark Atwood
 
Bringing Some Spatial Love to your Application with OpenShift - Mongo Berlin ...
OpenShift Origin
 
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
Xpand IT
 
How to Work Efficiently in a Hybrid Git-Perforce Environment
Perforce
 
Why developers love helix team hub
Perforce
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
Putting Drupal in the Cloud with Red Hat's OpenShift PaaS #DrupalCon/Prague
OpenShift Origin
 
Enterprise-Grade DevOps Solutions for a Start Up Budget
DevOps.com
 
Building Domain-specific PaaS with OpenShift Origin: The TRESOR Healthcare P...
OpenShift Origin
 
Kangaroot open shift best practices - straight from the battlefield
Kangaroot
 
DevOps, PaaS and the Modern Enterprise CloudExpo Europe presentation by Diane...
OpenShift Origin
 
Kiss.ts - The Keep It Simple Software Stack for 2017++
Ethan Ram
 
Enterprise DevOps Series: Using VS Code & Zowe
DevOps.com
 
DevOps Spain 2019. Beatriz Martínez-IBM
atSistemas
 
HKG18-318 - OpenAMP Workshop
Linaro
 
DOES SFO 2016 - Greg Maxey and Laurent Rochette - DSL at Scale
Gene Kim
 
There is no such thing as “Vanilla Kubernetes”
Kangaroot
 

Similar to Approaches to debugging mixed-language HPC apps (20)

PPTX
How to debug machine learning call stacks
Rogue Wave Software
 
PPTX
Debugging CUDA applications
Rogue Wave Software
 
PDF
Updates on webSpoon and other innovations from Hitachi R&D
Hiromu Hota
 
PDF
Top 10 Programming Languages | Programming Languages For Beginners | Computer...
Edureka!
 
PPTX
Advanced technologies and techniques for debugging HPC applications
Rogue Wave Software
 
PPTX
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
Rogue Wave Software
 
PDF
An Incomplete Data Tools Landscape for Hackers in 2015
Wes McKinney
 
PPTX
What You Missed: Red Hat Summit 2016
NetApp
 
PPTX
Efficient Data Formats for Analytics with Parquet and Arrow
DataWorks Summit/Hadoop Summit
 
PDF
High-Performance Python On Spark
Jen Aman
 
PDF
High Performance Python on Apache Spark
Wes McKinney
 
PDF
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Shuo LI
 
PDF
Overview of webSpoon @ Pentaho Bay Area Meetup
Hiromu Hota
 
PDF
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
Edge AI and Vision Alliance
 
PPTX
Multi-Lingual Accumulo Communications
Accumulo Summit
 
PPTX
Introduction to webprogramming using PHP and MySQL
anand raj
 
PDF
"Vision for All?," a Presentation from Intel
Edge AI and Vision Alliance
 
PDF
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
VMware Tanzu
 
PDF
Python and R for quantitative finance
Luca Sbardella
 
PDF
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Embarcadero Technologies
 
How to debug machine learning call stacks
Rogue Wave Software
 
Debugging CUDA applications
Rogue Wave Software
 
Updates on webSpoon and other innovations from Hitachi R&D
Hiromu Hota
 
Top 10 Programming Languages | Programming Languages For Beginners | Computer...
Edureka!
 
Advanced technologies and techniques for debugging HPC applications
Rogue Wave Software
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
Rogue Wave Software
 
An Incomplete Data Tools Landscape for Hackers in 2015
Wes McKinney
 
What You Missed: Red Hat Summit 2016
NetApp
 
Efficient Data Formats for Analytics with Parquet and Arrow
DataWorks Summit/Hadoop Summit
 
High-Performance Python On Spark
Jen Aman
 
High Performance Python on Apache Spark
Wes McKinney
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Shuo LI
 
Overview of webSpoon @ Pentaho Bay Area Meetup
Hiromu Hota
 
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
Edge AI and Vision Alliance
 
Multi-Lingual Accumulo Communications
Accumulo Summit
 
Introduction to webprogramming using PHP and MySQL
anand raj
 
"Vision for All?," a Presentation from Intel
Edge AI and Vision Alliance
 
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
VMware Tanzu
 
Python and R for quantitative finance
Luca Sbardella
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Embarcadero Technologies
 
Ad

More from Rogue Wave Software (20)

PPTX
The Global Influence of Open Banking, API Security, and an Open Data Perspective
Rogue Wave Software
 
PPTX
No liftoff, touchdown, or heartbeat shall miss because of a software failure
Rogue Wave Software
 
PDF
Disrupt or be disrupted – Using secure APIs to drive digital transformation
Rogue Wave Software
 
PPTX
Leveraging open banking specifications for rigorous API security – What’s in...
Rogue Wave Software
 
PPTX
Adding layers of security to an API in real-time
Rogue Wave Software
 
PPTX
Getting the most from your API management platform: A case study
Rogue Wave Software
 
PPTX
The forgotten route: Making Apache Camel work for you
Rogue Wave Software
 
PPTX
Are open source and embedded software development on a collision course?
Rogue Wave Software
 
PDF
Three big mistakes with APIs and microservices
Rogue Wave Software
 
PPTX
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
 
PPTX
PSD2 & Open Banking: How to go from standards to implementation and compliance
Rogue Wave Software
 
PPTX
Java 10 and beyond: Keeping up with the language and planning for the future
Rogue Wave Software
 
PPTX
How to keep developers happy and lawyers calm (Presented at ESC Boston)
Rogue Wave Software
 
PPTX
Open source applied - Real world use cases (Presented at Open Source 101)
Rogue Wave Software
 
PPTX
How to keep developers happy and lawyers calm
Rogue Wave Software
 
PPTX
Open source and embedded software development
Rogue Wave Software
 
PDF
Open source software: The infrastructure impact
Rogue Wave Software
 
PPTX
Plan a successful enterprise Linux migration
Rogue Wave Software
 
PPTX
Will you survive the API avalanche?
Rogue Wave Software
 
PDF
Identifying and managing the risks of open source software for PHP developers
Rogue Wave Software
 
The Global Influence of Open Banking, API Security, and an Open Data Perspective
Rogue Wave Software
 
No liftoff, touchdown, or heartbeat shall miss because of a software failure
Rogue Wave Software
 
Disrupt or be disrupted – Using secure APIs to drive digital transformation
Rogue Wave Software
 
Leveraging open banking specifications for rigorous API security – What’s in...
Rogue Wave Software
 
Adding layers of security to an API in real-time
Rogue Wave Software
 
Getting the most from your API management platform: A case study
Rogue Wave Software
 
The forgotten route: Making Apache Camel work for you
Rogue Wave Software
 
Are open source and embedded software development on a collision course?
Rogue Wave Software
 
Three big mistakes with APIs and microservices
Rogue Wave Software
 
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
 
PSD2 & Open Banking: How to go from standards to implementation and compliance
Rogue Wave Software
 
Java 10 and beyond: Keeping up with the language and planning for the future
Rogue Wave Software
 
How to keep developers happy and lawyers calm (Presented at ESC Boston)
Rogue Wave Software
 
Open source applied - Real world use cases (Presented at Open Source 101)
Rogue Wave Software
 
How to keep developers happy and lawyers calm
Rogue Wave Software
 
Open source and embedded software development
Rogue Wave Software
 
Open source software: The infrastructure impact
Rogue Wave Software
 
Plan a successful enterprise Linux migration
Rogue Wave Software
 
Will you survive the API avalanche?
Rogue Wave Software
 
Identifying and managing the risks of open source software for PHP developers
Rogue Wave Software
 
Ad

Recently uploaded (20)

PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 

Approaches to debugging mixed-language HPC apps

  • 1. 1© 2017 Rogue Wave Software, Inc. All Rights Reserved. 1 Approaches to debugging mixed- language HPC apps Exhibitor Forum SC17
  • 2. 2© 2017 Rogue Wave Software, Inc. All Rights Reserved. 2 Data modeling is critical for machine learning • Data scientists iterate over huge datasets • Legacy algorithms are critical • Most popular languages – R in scientific communities – Python in engineering • Focusing on Python • Developers use it because – Ease of use – Clean syntax – Extension libraries (many in C/C++)
  • 3. 3© 2017 Rogue Wave Software, Inc. All Rights Reserved. 3 Calling C/C++ from Python • High performance libraries are written in C/C++ and Fortran – Run faster – Rewriting doesn’t make sense – Advanced multi-threaded capabilities • Fortunately there are many ways to call between the languages
  • 4. 4© 2017 Rogue Wave Software, Inc. All Rights Reserved. 4 Debugging multiple languages • Debugging one language is difficult enough – Especially with many threads/processes • The language intersection is tougher – Data comparison – Glue code • Issues are: – Viewing data across language barriers – Combined call stack – Extraneous stack frames
  • 5. 5© 2017 Rogue Wave Software, Inc. All Rights Reserved. 5 Python Session Editor Glue code Debugging Python Interpreter
  • 6. 6© 2017 Rogue Wave Software, Inc. All Rights Reserved. 6 Stopped in C/C++ Python Extension Shows Python & C++
  • 7. 7© 2017 Rogue Wave Software, Inc. All Rights Reserved. 7 Stopped in C/C++ Python Extension Shows Python & C++
  • 8. 8© 2017 Rogue Wave Software, Inc. All Rights Reserved. 8 Selected Python frame C++ data Python Data
  • 9. 9© 2017 Rogue Wave Software, Inc. All Rights Reserved. 9 Data View C++ data Python Data
  • 10. 10© 2017 Rogue Wave Software, Inc. All Rights Reserved. 10 Numpy
  • 11. 11© 2017 Rogue Wave Software, Inc. All Rights Reserved. 11 Python without filtering Glue code No viewing of Python data and code
  • 12. 12© 2017 Rogue Wave Software, Inc. All Rights Reserved. 12 Python support in TotalView • Designed for where Python calls C/C++ or vice versa • Glue frames hidden from view – Supported for SWIG – User customizable • Python information shown – Code – Data
  • 13. 13© 2017 Rogue Wave Software, Inc. All Rights Reserved. 13 Stack transformation facility • Hides stack frames • Transforms stack frames • Backbone for: – Python support • Useful for any stack frames you want to hide – Language differences – Wrapper code
  • 14. 14© 2017 Rogue Wave Software, Inc. All Rights Reserved. 14 Demo
  • 15. 15© 2017 Rogue Wave Software, Inc. All Rights Reserved. 15 Few use cases • Currently used with large scientific application at Lawrence Livermore National Laboratory • Helpful while learning or extending packages such as TensorFlow.
  • 16. 16© 2017 Rogue Wave Software, Inc. All Rights Reserved. 16 TensorFlow basics • Open source • Numerical computation • Usage in machine learning • Written in C++ – Called from Python
  • 17. 17© 2017 Rogue Wave Software, Inc. All Rights Reserved. 17 TensorFlow Multithreaded application Glue code removed Added a rule for some wrappers
  • 18. 18© 2017 Rogue Wave Software, Inc. All Rights Reserved. 18 How does Rogue Wave help HPC? TotalView debugger • Troubleshooting and analysis tool • Visibility into applications • Control over applications • Integrated Reverse Debugging MemoryScape debugger • Malloc API misuse • Memory leaks • Buffer overflows • Invalid Read/Write
  • 19. 19© 2017 Rogue Wave Software, Inc. All Rights Reserved. 19 TotalView for HPC • Comprehensive multi-core and multi-threaded analysis and debug environment – Thread specific breakpoints – Control individual thread execution – View thread specific stack and data – View complex data types easily • Integrated Reverse debugging • Mixed Language - Python C/C++ • Track memory leaks in running applications • Supports C/C++ on Linux • Active development for 30+ years • Allowing the business to have – Predictable development schedules – Less time spent debugging
  • 20. 20© 2017 Rogue Wave Software, Inc. All Rights Reserved. 20 Summary • Comments and questions • Come see a live demo and learn more at our SC17 booth 1715 • For more information – https://www.roguewave.com – White Paper - https://www.roguewave.com/resources/white- papers/mixed-language-debugging-python-c-cplusplus – Videos - https://www.youtube.com/watch?v=LXSSstUdKnc – Evaluation - https://www.roguewave.com/products-services/request- evaluation
  • 21. 21© 2017 Rogue Wave Software, Inc. All Rights Reserved. 21