the path to multi-core tools paul petersen. multi-coretoolsthepathto 2 outline motivation where are...
TRANSCRIPT
![Page 1: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/1.jpg)
The Path to Multi-core Tools
Paul Petersen
![Page 2: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/2.jpg)
2Multi-core ToolsThe Path To
Outline
• Motivation
• Where are we now
• What is easy to do next
• What is missing
![Page 3: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/3.jpg)
3Multi-core ToolsThe Path To
Motivation
• Look at the way parallel software is written– Threads & Locks
• This has not really changed for decades– The names and details change
• Ultimately the languages leave it up to the user to get right– This means the user will sometimes get it
wrong
![Page 4: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/4.jpg)
4Multi-core ToolsThe Path To
Where Are We Now
• Breakpoint Debuggers– State inspection tools– MS Visual Studio– Totalview, Gdb, Idb
• Profilers– VTune™ Performance Analyzer
• Structural – Function or Loop
• Statistical– HW or SW based
• Runtime Analysis– Intel® Thread Checker– Intel® Thread Profiler
• Libraries– OpenMP– Threading Building Blocks
• Higher-level abstractionfor multi-core codes
• Understandable by analysis tools
![Page 5: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/5.jpg)
5Multi-core ToolsThe Path To
Intel® Thread Checker
• Observes the interaction in a concurrent application through memory references and synchronization operations– Compiler or binary instrumentation – Execution driven simulation
• Detect incorrect threading api usage and asynchronous memory references
![Page 6: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/6.jpg)
6Multi-core ToolsThe Path To
Thread Checker - UI
![Page 7: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/7.jpg)
7Multi-core ToolsThe Path To
Intel® Thread Profiler
• Observes the interactions in a concurrent application through the synchronization operations– Compiler or binary instrumentation – Event trace generation and analysis
• Detects bottlenecks through critical path analysis– In a concurrent application not all computation
is equally important
![Page 8: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/8.jpg)
8Multi-core ToolsThe Path To
Thread Profiler – Timeline View
![Page 9: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/9.jpg)
9Multi-core ToolsThe Path To
Tooltips provide object
information
Thread Profiler – Summary View
Let’s filter and group
this by object
![Page 10: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/10.jpg)
10Multi-core ToolsThe Path To
What Is Easy To Do Next
• Enhance our current tools– Additional serial analysis
• Detect opportunities for parallel execution
– Improve efficiency• Focus capabilities
– Expand platform coverage• Example - managed languages like C# or Java
– Mining the data we have now• Suggest which problems should be tackled first
![Page 11: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/11.jpg)
11Multi-core ToolsThe Path To
What Is Missing
• Performance Projections– What-If analysis is very hard to do accurately– You need a very details system model, and
very accurate understanding of what will change by running on a different system
– Changing the number of threads, can cause non-linear scaling problems by exposing a bottleneck that did not appear to be significant as smaller thread counts
![Page 12: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/12.jpg)
12Multi-core ToolsThe Path To
What Else Is Missing
• Defect Detection– Moving from asynchronous memory access
detection • To non-atomic object access detection.
– Users typically assume that modifications to “objects” are atomic
• But they have a hard time describing what is the “object” at any point in time.
![Page 13: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/13.jpg)
13Multi-core ToolsThe Path To
And Everything Else…
• A tool is, among other things, a device that provides a mechanical or mental advantage in accomplishing a task
• This talk has focused on a collection of analysis tools specifically designed to aid in understanding threaded applications
![Page 14: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/14.jpg)
• Multi-core software poses many challenges that sequential software does not face
• We have the first round of tools specifically designed for the problems faced by the way parallel software is written
• These tools are limited to mostly just observing what happened, and reporting interesting facts about the program.
• They have a hard time generalizing these observations
Conclusion
![Page 15: The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing](https://reader030.vdocument.in/reader030/viewer/2022032723/56649d055503460f949d9010/html5/thumbnails/15.jpg)
Multi-core ToolsThe Path To
Multi-core ToolsThe Path To
Multi-core ToolsThe Path To
Multi-core ToolsThe Path To