SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
SEEING IS UNDERSTANDING:
DEBUGGING WITH THE
MULTICORE VISUALIZER
EclipseCon 2012




                  William R. Swanson
                      Marc Khouzam
ABOUT US
› William R. Swanson
      – Lead IDE Developer, Tilera Corporation
      – CDT Committer, developed Visualizer framework and UI
      – 22 years in parallel hardware, software & developer UI tools


› Marc Khouzam (@marckhouzam)
      – Lead CDT developer, Ericsson
      – CDT Committer, lead of Debug component (DSF-GDB)
      – 15 years in Telecom:
           › Multicore chips
           › Multi CPU boards
           › Multi board nodes
           › Need better tools!
EclipseCon 2012
AGENDA
› The Challenge of Multicore
› An Answer: Visualization
› The Multicore Visualizer & Framework (demo)
› Extending the Visualizer (demo)
› The CDT Multicore Debug Workgroup
› Current Projects, Future Plans

› After the talk: demo on 24-core machine.




EclipseCon 2012
MULTICORE SYSTEMS

                                                         Ambric’s 336-core Am2045


                                                     Plurality’s 256-core Hypercore


                           Tilera 100-core Tile-GX



Intel’s 80-core Teraflop

ClearSpeed 192-core CSX700
                                                                Coherent Logix’
                                                                100-core HyperX
AOCS 128-core ModemX
                             Adapteva 64-core Epiphany
                                                                                      4
 EclipseCon 2012
MULTICORE SCALABILITY

                            Debug elements exploding
                                   - 100s of cores
                                   - 100s of processes
                                   - 1000s of threads



                            Can be a literal
                            embarrassment of riches...



                            How to view and control on
                            that scale?

EclipseCon 2012
THE MULTICORE CHALLENGE
› We’re in “big data” era, moving to “big algorithm” era
      – lots of processes/threads, complex interactions
      – ever-increasing need for a “big picture” overview




                  CPU
                                       IN
                  CPU
        IN               OUT
                  ...
                                                            OUT
                  CPU




EclipseCon 2012
EXAMPLE: TILERA PROCESSOR
Distinct pipeline stages or modes can run on different tiles,
 can also re-affinitize dynamically to help load-balancing.



Data In


 Data Out                                            Data In




                                                    Data
                                                    Out
EXAMPLE: TILERA PROCESSOR
› And this is ~100 cores!
› Imagine debugging CPUs / GPUs with
  100’s or 1000’s of cores...
› where the app is NOT data-parallel or lock-step SIMD!

› We’re going to need better tools to handle this!
CURRENT TOOLS DON’T SCALE
› Command-line GDB
      – multiple shells, even for only a few processes, or
      – for multithreaded GDB, having to remember which thread you’re on




EclipseCon 2012
CURRENT TOOLS DON’T SCALE
› Eclipse’s Debug View
      – way better for managing
        large numbers of processes/threads
      – but...
      – for big apps, essentially a flat list
      – too much repetitive detail
      – can’t easily see overall layout/behavior
      – difficult to find and interact with “important”
        processes/threads...




      – (like this one) ------------------------------------->


EclipseCon 2012
THE BIG PICTURE: VISUALIZATION
› Need for new ways of looking at applications...
› One answer: visualization tools
› Visualization is the “big picture”: the important stuff made
  easily visible.

› What this means is that we shouldn't abbreviate the truth
  but rather get a new method of presentation.
  Edward Tufte




EclipseCon 2012
A VISUALIZATION FRAMEWORK
› There’s also a need for a framework
› Rather than having everyone recreate the wheel,
   we need a platform to support visualization
› In the Eclipse spirit it should be flexible and extensible
› Should handle boilerplate code:
        - view/workbench interaction
        - selection
        - toolbars and context menus
› Visualizations should be able to focus on presentation.




EclipseCon 2012
THE MULTICORE VISUALIZER
› New feature, currently optional
› Being added to CDT in Juno.




EclipseCon 2012
THE MULTICORE VISUALIZER
› Visualizer presents an overview of application debug state
› Doesn’t replace the Debug View, it augments it
› Analogy: adding pictures to a journal article.
      – Pictures don’t replace the text, instead they provide
        high-level context that makes it easier to parse the details.
                  When in the Course of          just powers from the             When in the Course of          are endowed by their
                  human events it becomes        consent of the governed, —       human events it becomes        Creator with certain
                  necessary for one people to    That whenever any Form of        necessary for one people to    unalienable Rights, that
                  dissolve the political bands   Government becomes               dissolve the political bands   among these are Life,
                  which have connected them      destructive of these ends, it    which have connected them      Liberty and the pursuit of
                  with another and to assume     is the Right of the People to    with another and to assume     Happiness. — That to
                  among the powers of the        alter or to abolish it, and to                                  secure these rights,
                  earth, the separate and        institute new Government,                                       Governments are instituted
                  equal station to which the     laying its foundation on                                        among Men, deriving their
                  Laws of Nature and of          such principles and                                             just powers from the
                  Nature's God entitle them, a   organizing its powers in                                        consent of the governed, —
                  decent respect to the          such form, as to them shall                                     That whenever any Form of
                  opinions of mankind            seem most likely to effect                                      Government becomes
                  requires that they should      their Safety and Happiness.                                     destructive of these ends, it
                  declare the causes which       Prudence, indeed, will
                  impel them to the              dictate that Governments         among the powers of the
                  separation.                    long established should not      earth, the separate and
                                                 be changed for light and         equal station to which the
                  We hold these truths to be     transient causes; and            Laws of Nature and of
                  self-evident, that all men     accordingly all experience       Nature's God entitle them, a
                  are created equal, that they   hath shewn that mankind          decent respect to the
                  are endowed by their           are more disposed to             opinions of mankind
                  Creator with certain           suffer, while evils are          requires that they should      is the Right of the People to
                  unalienable Rights, that       sufferable than to right         declare the causes which       alter or to abolish it, and to
                  among these are Life,          themselves by abolishing         impel them to the              institute new Government,
                  Liberty and the pursuit of     the forms to which they are      separation.                    laying its foundation on
                  Happiness. — That to           accustomed. But when a                                          such principles and
                  secure these rights,           long train of abuses and         We hold these truths to be     organizing its powers in
                  Governments are instituted     usurpations, pursuing            self-evident, that all men     such form, as to them shall
                  among Men, deriving their      invariably the same Object       are created equal, that they



EclipseCon 2012
THE MULTICORE VISUALIZER
› Visualizer is interactive – can select & interact with program
  elements (cores, processes, threads)
› Can still use Debug View to get more detail




EclipseCon 2012
THE MULTICORE VISUALIZER
› Visualizer display scales to different cpu/core layouts:




EclipseCon 2012
THE MULTICORE VISUALIZER
› Based on “Grid View” visualization in the Tilera IDE:




EclipseCon 2012
MULTICORE VISUALIZER
› Demo




EclipseCon 2012
MULTICORE VISUALIZER
› Demo:
      – New Visualizer view in workbench
      – Displays cpus, cores, processes & threads
      – Sample program to debug: multi-process, multi-threaded
      – View updates automatically as program layout changes
      – Shows execution state of cpus, cores, processes, threads
      – Click/drag selection, updating of Debug View
      – Debug View state reflected in Visualizer
      – Breakpoint handling (resume, step, etc.)
      – Commands accessible from toolbars, context menu, and shortcuts
      – Variables view (as usual) reflects current selection
      – Displays crashed processes/threads in red
      – Can click on problem thread(s) to select and view source
      – Especially handy where there are multiple failures!
EclipseCon 2012
VISUALIZER FRAMEWORK

                                                      VisualizerView

                  (Selection handling, Menus, etc.)
                                                           IVisualizer


                                                       MulticoreVisualizer




                                                           Model Object
                                                            (DSF state data,
                           GraphicCanvas                   provided by GDB)



EclipseCon 2012
ON BEYOND DEBUGGING
› There’s a framework because one view isn’t sufficient
› Multicore Visualizer is currently aimed at debugging on
  homogenous multicore platforms; there are others
› Can extend multicore visualizer to suit your platform

› Also potential visualization uses beyond debugging
      – Visualizations of selected data
      – Use of “overlays” to select different kinds/views of data
      – Static code analysis displays, etc.
› Framework includes examples you can build upon



EclipseCon 2012
MULTIPLE VISUALIZERS
› Displayed visualizer is based on current selection.
› For multicore visualizer, the selection is DSF-GDB data
› Can also base visualizer on other information:
      – Selected projects (example: display of warnings/errors)
      – Selected text (program text, etc.)
› Anything that’s selectable can potentially have a
  visualization associated with it.

› Visualizers report a weight indicating what they can handle
› The visualizer view selects the right visualizer for the
  current selection, based on visualizers’ reported weights


EclipseCon 2012
MULTIPLE VISUALIZERS
› Demo:
      – problem count visualizer
      – source text analysis graph




EclipseCon 2012
SEEING IS UNDERSTANDING


› Visualization is necessary as a “big picture” approach
  to large applications on multicore hardware
› You can’t debug what you can’t see
› What you can see, you can understand.
› What you understand, you can reason and feel sure about




EclipseCon 2012
WE NEED NEW TOOLS

› The Multicore Visualizer is not an end, but a beginning.
› Visualizer exemplifies new kinds of tools and approaches
  needed for multicore and the “big application” era.
› These new tools are going to come from YOU
  the Eclipse developer community.
› The Visualizer framework provides a platform for
  development of more (and better!) visualizations.

› Let’s make sure our favorite platform, Eclipse,
  is ready for the tasks ahead!



EclipseCon 2012
IT TAKES MORE THAN ONE TOOL




› Visualizer is just one of the projects currently being worked
  on by the CDT Multicore Debug Workgroup

EclipseCon 2012
MULTICORE DEBUG WORKGROUP
› Joint effort to bring multicore debugging to the CDT
     – Visualizer, Pin&Clone, Multiprocess debug, etc

› Support for those that want to add new features

› Monthly conference calls (open to all interested and free )
     – http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup




EclipseCon 2012
WORKGROUP PLANS
› Process/Thread/Core sets, as supported by GDB
› Global breakpoints
› OS Awareness
› Dynamic Printf

› Fully-integrated GDB console
       › complete GDB console that can be used jointly with Eclipse
› Scalability and performance
       › Ability for GDB to handle 100s or 1000s of threads/processes
› and more…



EclipseCon 2012
PTC SETS

Process Thread Core (PTC) sets
control groups of debug elements:

     – Step threads numbered between 34 and 59



     – Step all threads running on core 2



     – Stop everything running on cores 5 to 7,
       preventing new threads from being started



 EclipseCon 2012
GLOBAL BREAKPOINTS


 Applies to every process


Auto attach when hit


 Un-started or short lived process




                   Kernel module required
EclipseCon 2012
OS AWARENESS
Sometimes examining OS Resources can help find bug

      Message
      Queues
                    All Processes

  Loaded Kernel
    Modules
                     Semaphores


       Sockets
                     All Threads


 Process Groups
                    Shared Memory
                      Segments

 File Descriptors



EclipseCon 2012
DYNAMIC-PRINTF
Sometimes tracing is necessary




                        DYNAMIC PRINTF
      COMPILED
                     INSERTED AT RUNTIME   DEBUGGER
       PRINTF              WITH GDB




EclipseCon 2012
SOME REFERENCES
› Multicore Debug workgroup,
 http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup


› CDT project, http://www.eclipse.org/cdt
› CDT Wiki, http://wiki.eclipse.org/CDT
› GDB, http://sourceware.org/gdb/


› Multicore Visualizer, http://bugs.eclipse.org/335027


Contact:
 cdt-dev@eclipse.org
 EclipseCon 2012
Q&A
› Thanks for your time.

› Reminder: you can provide feedback:
› 1) go to www.eclipsecon.org
› 2) on Visualizer session, click “EVALUATE”
› 3) Vote (               ) and add comments!

› Enjoy the rest of EclipseCon!




EclipseCon 2012
Multicore Visualizer Demo Slides, Version 1.0, 3/22/2012




EclipseCon 2012

Contenu connexe

Similaire à Seeing is Understanding: Debugging with the Multicore Visualizer

Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0New Media Days
 
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...Hugh McKee
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMJonas Bonér
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfHiroshi Ono
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfHiroshi Ono
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfHiroshi Ono
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfHiroshi Ono
 
Favoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingFavoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingEmiliano Soldi
 
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsWhat Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsTodd Hoff
 
Management High-level overview of the OMG Data Distribution Service (DDS)
Management High-level overview of the OMG Data Distribution Service (DDS)Management High-level overview of the OMG Data Distribution Service (DDS)
Management High-level overview of the OMG Data Distribution Service (DDS)Gerardo Pardo-Castellote
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the CloudDewey Sasser
 
Melbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureMelbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureSaul Caganoff
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Burr Sutter
 
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdf
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdfMaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdf
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdfAhmed Mohamed
 
THE INNOVATION & TECHNOLOGY
THE INNOVATION & TECHNOLOGYTHE INNOVATION & TECHNOLOGY
THE INNOVATION & TECHNOLOGYDeepak Pareek
 

Similaire à Seeing is Understanding: Debugging with the Multicore Visualizer (17)

Astd 2009
Astd 2009Astd 2009
Astd 2009
 
Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0
 
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...
Akka and Kubernetes, the beginning of a beautiful relationship - Container Da...
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
 
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdfstateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
stateyouredoingitwrongjavaone2009-090617031310-phpapp02.pdf
 
Favoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingFavoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile Scaffolding
 
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsWhat Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
 
Management High-level overview of the OMG Data Distribution Service (DDS)
Management High-level overview of the OMG Data Distribution Service (DDS)Management High-level overview of the OMG Data Distribution Service (DDS)
Management High-level overview of the OMG Data Distribution Service (DDS)
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the Cloud
 
Melbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureMelbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new Architecture
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
 
What is Complexity For?
What is Complexity For?What is Complexity For?
What is Complexity For?
 
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdf
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdfMaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdf
MaLeNe2021-Evolving_Autonomous_Networks-L_Ciavaglia.pdf
 
THE INNOVATION & TECHNOLOGY
THE INNOVATION & TECHNOLOGYTHE INNOVATION & TECHNOLOGY
THE INNOVATION & TECHNOLOGY
 

Dernier

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Seeing is Understanding: Debugging with the Multicore Visualizer

  • 1. SEEING IS UNDERSTANDING: DEBUGGING WITH THE MULTICORE VISUALIZER EclipseCon 2012 William R. Swanson Marc Khouzam
  • 2. ABOUT US › William R. Swanson – Lead IDE Developer, Tilera Corporation – CDT Committer, developed Visualizer framework and UI – 22 years in parallel hardware, software & developer UI tools › Marc Khouzam (@marckhouzam) – Lead CDT developer, Ericsson – CDT Committer, lead of Debug component (DSF-GDB) – 15 years in Telecom: › Multicore chips › Multi CPU boards › Multi board nodes › Need better tools! EclipseCon 2012
  • 3. AGENDA › The Challenge of Multicore › An Answer: Visualization › The Multicore Visualizer & Framework (demo) › Extending the Visualizer (demo) › The CDT Multicore Debug Workgroup › Current Projects, Future Plans › After the talk: demo on 24-core machine. EclipseCon 2012
  • 4. MULTICORE SYSTEMS Ambric’s 336-core Am2045 Plurality’s 256-core Hypercore Tilera 100-core Tile-GX Intel’s 80-core Teraflop ClearSpeed 192-core CSX700 Coherent Logix’ 100-core HyperX AOCS 128-core ModemX Adapteva 64-core Epiphany 4 EclipseCon 2012
  • 5. MULTICORE SCALABILITY Debug elements exploding - 100s of cores - 100s of processes - 1000s of threads Can be a literal embarrassment of riches... How to view and control on that scale? EclipseCon 2012
  • 6. THE MULTICORE CHALLENGE › We’re in “big data” era, moving to “big algorithm” era – lots of processes/threads, complex interactions – ever-increasing need for a “big picture” overview CPU IN CPU IN OUT ... OUT CPU EclipseCon 2012
  • 7. EXAMPLE: TILERA PROCESSOR Distinct pipeline stages or modes can run on different tiles, can also re-affinitize dynamically to help load-balancing. Data In Data Out Data In Data Out
  • 8. EXAMPLE: TILERA PROCESSOR › And this is ~100 cores! › Imagine debugging CPUs / GPUs with 100’s or 1000’s of cores... › where the app is NOT data-parallel or lock-step SIMD! › We’re going to need better tools to handle this!
  • 9. CURRENT TOOLS DON’T SCALE › Command-line GDB – multiple shells, even for only a few processes, or – for multithreaded GDB, having to remember which thread you’re on EclipseCon 2012
  • 10. CURRENT TOOLS DON’T SCALE › Eclipse’s Debug View – way better for managing large numbers of processes/threads – but... – for big apps, essentially a flat list – too much repetitive detail – can’t easily see overall layout/behavior – difficult to find and interact with “important” processes/threads... – (like this one) -------------------------------------> EclipseCon 2012
  • 11. THE BIG PICTURE: VISUALIZATION › Need for new ways of looking at applications... › One answer: visualization tools › Visualization is the “big picture”: the important stuff made easily visible. › What this means is that we shouldn't abbreviate the truth but rather get a new method of presentation. Edward Tufte EclipseCon 2012
  • 12. A VISUALIZATION FRAMEWORK › There’s also a need for a framework › Rather than having everyone recreate the wheel, we need a platform to support visualization › In the Eclipse spirit it should be flexible and extensible › Should handle boilerplate code: - view/workbench interaction - selection - toolbars and context menus › Visualizations should be able to focus on presentation. EclipseCon 2012
  • 13. THE MULTICORE VISUALIZER › New feature, currently optional › Being added to CDT in Juno. EclipseCon 2012
  • 14. THE MULTICORE VISUALIZER › Visualizer presents an overview of application debug state › Doesn’t replace the Debug View, it augments it › Analogy: adding pictures to a journal article. – Pictures don’t replace the text, instead they provide high-level context that makes it easier to parse the details. When in the Course of just powers from the When in the Course of are endowed by their human events it becomes consent of the governed, — human events it becomes Creator with certain necessary for one people to That whenever any Form of necessary for one people to unalienable Rights, that dissolve the political bands Government becomes dissolve the political bands among these are Life, which have connected them destructive of these ends, it which have connected them Liberty and the pursuit of with another and to assume is the Right of the People to with another and to assume Happiness. — That to among the powers of the alter or to abolish it, and to secure these rights, earth, the separate and institute new Government, Governments are instituted equal station to which the laying its foundation on among Men, deriving their Laws of Nature and of such principles and just powers from the Nature's God entitle them, a organizing its powers in consent of the governed, — decent respect to the such form, as to them shall That whenever any Form of opinions of mankind seem most likely to effect Government becomes requires that they should their Safety and Happiness. destructive of these ends, it declare the causes which Prudence, indeed, will impel them to the dictate that Governments among the powers of the separation. long established should not earth, the separate and be changed for light and equal station to which the We hold these truths to be transient causes; and Laws of Nature and of self-evident, that all men accordingly all experience Nature's God entitle them, a are created equal, that they hath shewn that mankind decent respect to the are endowed by their are more disposed to opinions of mankind Creator with certain suffer, while evils are requires that they should is the Right of the People to unalienable Rights, that sufferable than to right declare the causes which alter or to abolish it, and to among these are Life, themselves by abolishing impel them to the institute new Government, Liberty and the pursuit of the forms to which they are separation. laying its foundation on Happiness. — That to accustomed. But when a such principles and secure these rights, long train of abuses and We hold these truths to be organizing its powers in Governments are instituted usurpations, pursuing self-evident, that all men such form, as to them shall among Men, deriving their invariably the same Object are created equal, that they EclipseCon 2012
  • 15. THE MULTICORE VISUALIZER › Visualizer is interactive – can select & interact with program elements (cores, processes, threads) › Can still use Debug View to get more detail EclipseCon 2012
  • 16. THE MULTICORE VISUALIZER › Visualizer display scales to different cpu/core layouts: EclipseCon 2012
  • 17. THE MULTICORE VISUALIZER › Based on “Grid View” visualization in the Tilera IDE: EclipseCon 2012
  • 19. MULTICORE VISUALIZER › Demo: – New Visualizer view in workbench – Displays cpus, cores, processes & threads – Sample program to debug: multi-process, multi-threaded – View updates automatically as program layout changes – Shows execution state of cpus, cores, processes, threads – Click/drag selection, updating of Debug View – Debug View state reflected in Visualizer – Breakpoint handling (resume, step, etc.) – Commands accessible from toolbars, context menu, and shortcuts – Variables view (as usual) reflects current selection – Displays crashed processes/threads in red – Can click on problem thread(s) to select and view source – Especially handy where there are multiple failures! EclipseCon 2012
  • 20. VISUALIZER FRAMEWORK VisualizerView (Selection handling, Menus, etc.) IVisualizer MulticoreVisualizer Model Object (DSF state data, GraphicCanvas provided by GDB) EclipseCon 2012
  • 21. ON BEYOND DEBUGGING › There’s a framework because one view isn’t sufficient › Multicore Visualizer is currently aimed at debugging on homogenous multicore platforms; there are others › Can extend multicore visualizer to suit your platform › Also potential visualization uses beyond debugging – Visualizations of selected data – Use of “overlays” to select different kinds/views of data – Static code analysis displays, etc. › Framework includes examples you can build upon EclipseCon 2012
  • 22. MULTIPLE VISUALIZERS › Displayed visualizer is based on current selection. › For multicore visualizer, the selection is DSF-GDB data › Can also base visualizer on other information: – Selected projects (example: display of warnings/errors) – Selected text (program text, etc.) › Anything that’s selectable can potentially have a visualization associated with it. › Visualizers report a weight indicating what they can handle › The visualizer view selects the right visualizer for the current selection, based on visualizers’ reported weights EclipseCon 2012
  • 23. MULTIPLE VISUALIZERS › Demo: – problem count visualizer – source text analysis graph EclipseCon 2012
  • 24. SEEING IS UNDERSTANDING › Visualization is necessary as a “big picture” approach to large applications on multicore hardware › You can’t debug what you can’t see › What you can see, you can understand. › What you understand, you can reason and feel sure about EclipseCon 2012
  • 25. WE NEED NEW TOOLS › The Multicore Visualizer is not an end, but a beginning. › Visualizer exemplifies new kinds of tools and approaches needed for multicore and the “big application” era. › These new tools are going to come from YOU the Eclipse developer community. › The Visualizer framework provides a platform for development of more (and better!) visualizations. › Let’s make sure our favorite platform, Eclipse, is ready for the tasks ahead! EclipseCon 2012
  • 26. IT TAKES MORE THAN ONE TOOL › Visualizer is just one of the projects currently being worked on by the CDT Multicore Debug Workgroup EclipseCon 2012
  • 27. MULTICORE DEBUG WORKGROUP › Joint effort to bring multicore debugging to the CDT – Visualizer, Pin&Clone, Multiprocess debug, etc › Support for those that want to add new features › Monthly conference calls (open to all interested and free ) – http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup EclipseCon 2012
  • 28. WORKGROUP PLANS › Process/Thread/Core sets, as supported by GDB › Global breakpoints › OS Awareness › Dynamic Printf › Fully-integrated GDB console › complete GDB console that can be used jointly with Eclipse › Scalability and performance › Ability for GDB to handle 100s or 1000s of threads/processes › and more… EclipseCon 2012
  • 29. PTC SETS Process Thread Core (PTC) sets control groups of debug elements: – Step threads numbered between 34 and 59 – Step all threads running on core 2 – Stop everything running on cores 5 to 7, preventing new threads from being started EclipseCon 2012
  • 30. GLOBAL BREAKPOINTS Applies to every process Auto attach when hit Un-started or short lived process Kernel module required EclipseCon 2012
  • 31. OS AWARENESS Sometimes examining OS Resources can help find bug Message Queues All Processes Loaded Kernel Modules Semaphores Sockets All Threads Process Groups Shared Memory Segments File Descriptors EclipseCon 2012
  • 32. DYNAMIC-PRINTF Sometimes tracing is necessary DYNAMIC PRINTF COMPILED INSERTED AT RUNTIME DEBUGGER PRINTF WITH GDB EclipseCon 2012
  • 33. SOME REFERENCES › Multicore Debug workgroup, http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup › CDT project, http://www.eclipse.org/cdt › CDT Wiki, http://wiki.eclipse.org/CDT › GDB, http://sourceware.org/gdb/ › Multicore Visualizer, http://bugs.eclipse.org/335027 Contact: cdt-dev@eclipse.org EclipseCon 2012
  • 34. Q&A › Thanks for your time. › Reminder: you can provide feedback: › 1) go to www.eclipsecon.org › 2) on Visualizer session, click “EVALUATE” › 3) Vote ( ) and add comments! › Enjoy the rest of EclipseCon! EclipseCon 2012
  • 35. Multicore Visualizer Demo Slides, Version 1.0, 3/22/2012 EclipseCon 2012