The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are...

15
The Path to Multi-core Tools Paul Petersen

Transcript of The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

• 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.

Multi-core ToolsThe Path To

Multi-core ToolsThe Path To

Multi-core ToolsThe Path To

Multi-core ToolsThe Path To