SEEING IS UNDERSTANDING:DEBUGGING WITH THEMULTICORE VISUALIZEREclipseCon 2012                  William R. Swanson         ...
ABOUT US› William R. Swanson      – Lead IDE Developer, Tilera Corporation      – CDT Committer, developed Visualizer fram...
AGENDA› The Challenge of Multicore› An Answer: Visualization› The Multicore Visualizer & Framework (demo)› Extending the V...
MULTICORE SYSTEMS                                                         Ambric’s 336-core Am2045                        ...
MULTICORE SCALABILITY                            Debug elements exploding                                   - 100s of core...
THE MULTICORE CHALLENGE› We’re in “big data” era, moving to “big algorithm” era      – lots of processes/threads, complex ...
EXAMPLE: TILERA PROCESSORDistinct pipeline stages or modes can run on different tiles, can also re-affinitize dynamically ...
EXAMPLE: TILERA PROCESSOR› And this is ~100 cores!› Imagine debugging CPUs / GPUs with  100’s or 1000’s of cores...› where...
CURRENT TOOLS DON’T SCALE› Command-line GDB      – multiple shells, even for only a few processes, or      – for multithre...
CURRENT TOOLS DON’T SCALE› Eclipse’s Debug View      – way better for managing        large numbers of processes/threads  ...
THE BIG PICTURE: VISUALIZATION› Need for new ways of looking at applications...› One answer: visualization tools› Visualiz...
A VISUALIZATION FRAMEWORK› There’s also a need for a framework› Rather than having everyone recreate the wheel,   we need ...
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 a...
THE MULTICORE VISUALIZER› Visualizer is interactive – can select & interact with program  elements (cores, processes, thre...
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› DemoEclipseCon 2012
MULTICORE VISUALIZER› Demo:      – New Visualizer view in workbench      – Displays cpus, cores, processes & threads      ...
VISUALIZER FRAMEWORK                                                      VisualizerView                  (Selection handl...
ON BEYOND DEBUGGING› There’s a framework because one view isn’t sufficient› Multicore Visualizer is currently aimed at deb...
MULTIPLE VISUALIZERS› Displayed visualizer is based on current selection.› For multicore visualizer, the selection is DSF-...
MULTIPLE VISUALIZERS› Demo:      – problem count visualizer      – source text analysis graphEclipseCon 2012
SEEING IS UNDERSTANDING› Visualization is necessary as a “big picture” approach  to large applications on multicore hardwa...
WE NEED NEW TOOLS› The Multicore Visualizer is not an end, but a beginning.› Visualizer exemplifies new kinds of tools and...
IT TAKES MORE THAN ONE TOOL› Visualizer is just one of the projects currently being worked  on by the CDT Multicore Debug ...
MULTICORE DEBUG WORKGROUP› Joint effort to bring multicore debugging to the CDT     – Visualizer, Pin&Clone, Multiprocess ...
WORKGROUP PLANS› Process/Thread/Core sets, as supported by GDB› Global breakpoints› OS Awareness› Dynamic Printf› Fully-in...
PTC SETSProcess Thread Core (PTC) setscontrol groups of debug elements:     – Step threads numbered between 34 and 59     ...
GLOBAL BREAKPOINTS Applies to every processAuto attach when hit Un-started or short lived process                   Kernel...
OS AWARENESSSometimes examining OS Resources can help find bug      Message      Queues                    All Processes  ...
DYNAMIC-PRINTFSometimes tracing is necessary                        DYNAMIC PRINTF      COMPILED                     INSER...
SOME REFERENCES› Multicore Debug workgroup, http://wiki.eclipse.org/CDT/MultiCoreDebugWorkingGroup› CDT project, http://ww...
Q&A› Thanks for your time.› Reminder: you can provide feedback:› 1) go to www.eclipsecon.org› 2) on Visualizer session, cl...
Multicore Visualizer Demo Slides, Version 1.0, 3/22/2012EclipseCon 2012
Upcoming SlideShare
Loading in...5
×

Seeing is Understanding: Debugging with the Multicore Visualizer

2,350
-1

Published on

The latest development in Multicore Debugging in Eclipse, as presented at EclipseCon 2012

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,350
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
26
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Seeing is Understanding: Debugging with the Multicore Visualizer

  1. 1. SEEING IS UNDERSTANDING:DEBUGGING WITH THEMULTICORE VISUALIZEREclipseCon 2012 William R. Swanson Marc Khouzam
  2. 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. 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. 4. MULTICORE SYSTEMS Ambric’s 336-core Am2045 Plurality’s 256-core Hypercore Tilera 100-core Tile-GXIntel’s 80-core TeraflopClearSpeed 192-core CSX700 Coherent Logix’ 100-core HyperXAOCS 128-core ModemX Adapteva 64-core Epiphany 4 EclipseCon 2012
  5. 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. 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 CPUEclipseCon 2012
  7. 7. EXAMPLE: TILERA PROCESSORDistinct 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. 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. 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 onEclipseCon 2012
  10. 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. 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 shouldnt abbreviate the truth but rather get a new method of presentation. Edward TufteEclipseCon 2012
  12. 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. 13. THE MULTICORE VISUALIZER› New feature, currently optional› Being added to CDT in Juno.EclipseCon 2012
  14. 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 Natures 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 Natures 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 theyEclipseCon 2012
  15. 15. THE MULTICORE VISUALIZER› Visualizer is interactive – can select & interact with program elements (cores, processes, threads)› Can still use Debug View to get more detailEclipseCon 2012
  16. 16. THE MULTICORE VISUALIZER› Visualizer display scales to different cpu/core layouts:EclipseCon 2012
  17. 17. THE MULTICORE VISUALIZER› Based on “Grid View” visualization in the Tilera IDE:EclipseCon 2012
  18. 18. MULTICORE VISUALIZER› DemoEclipseCon 2012
  19. 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. 20. VISUALIZER FRAMEWORK VisualizerView (Selection handling, Menus, etc.) IVisualizer MulticoreVisualizer Model Object (DSF state data, GraphicCanvas provided by GDB)EclipseCon 2012
  21. 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 uponEclipseCon 2012
  22. 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 weightsEclipseCon 2012
  23. 23. MULTIPLE VISUALIZERS› Demo: – problem count visualizer – source text analysis graphEclipseCon 2012
  24. 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 aboutEclipseCon 2012
  25. 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. 26. IT TAKES MORE THAN ONE TOOL› Visualizer is just one of the projects currently being worked on by the CDT Multicore Debug WorkgroupEclipseCon 2012
  27. 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/MultiCoreDebugWorkingGroupEclipseCon 2012
  28. 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. 29. PTC SETSProcess Thread Core (PTC) setscontrol 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. 30. GLOBAL BREAKPOINTS Applies to every processAuto attach when hit Un-started or short lived process Kernel module requiredEclipseCon 2012
  31. 31. OS AWARENESSSometimes examining OS Resources can help find bug Message Queues All Processes Loaded Kernel Modules Semaphores Sockets All Threads Process Groups Shared Memory Segments File DescriptorsEclipseCon 2012
  32. 32. DYNAMIC-PRINTFSometimes tracing is necessary DYNAMIC PRINTF COMPILED INSERTED AT RUNTIME DEBUGGER PRINTF WITH GDBEclipseCon 2012
  33. 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/335027Contact: cdt-dev@eclipse.org EclipseCon 2012
  34. 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. 35. Multicore Visualizer Demo Slides, Version 1.0, 3/22/2012EclipseCon 2012
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×