DOC PREVIEW
The Path to Multi-core Tools

This preview shows page 1-2-3-4-5 out of 15 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

The Path to Multi-core ToolsPaul Petersen2Multi-core ToolsThe Path ToOutline• Motivation• Where are we now• What is easy to do next• What is missing3Multi-core ToolsThe Path ToMotivation• 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 wrong4Multi-core ToolsThe Path ToWhere 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 tools5Multi-core ToolsThe Path ToIntel® 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 references6Multi-core ToolsThe Path ToThread Checker - UI7Multi-core ToolsThe Path ToIntel® 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 important8Multi-core ToolsThe Path ToThread Profiler – Timeline View9Multi-core ToolsThe Path ToTooltips provide object informationThread Profiler – Summary ViewLet’s filter and group this by object10Multi-core ToolsThe Path ToWhat 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 first11Multi-core ToolsThe Path ToWhat 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 counts12Multi-core ToolsThe Path ToWhat 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.13Multi-core ToolsThe Path ToAnd 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• 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 observationsConclusionMulti-core ToolsThePathToMulti-core ToolsThePathToMulti-core ToolsThePathToMulti-core


The Path to Multi-core Tools

Download The Path to Multi-core Tools
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view The Path to Multi-core Tools and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view The Path to Multi-core Tools 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?