Difference between revisions of "DPS921/Intel Parallel Studio Inspector"
(→Choose Analysis Type) |
(→Choose Analysis Type) |
||
Line 126: | Line 126: | ||
Inspector allows you to choose between predefined types of analysis. | Inspector allows you to choose between predefined types of analysis. | ||
− | [[File:ConfAnalysis.png]] | + | [[File:ConfAnalysis.png|800px]] |
Choose the type of analysis using a drop down menu | Choose the type of analysis using a drop down menu | ||
Line 150: | Line 150: | ||
'''Custom Analysis types:''' users can create their own types based on selected preset type. | '''Custom Analysis types:''' users can create their own types based on selected preset type. | ||
− | [[File:MemoryLevs.png| | + | [[File:MemoryLevs.png|500px]] |
In this screenshot, it show cases the different levels for memory error analysis. | In this screenshot, it show cases the different levels for memory error analysis. |
Revision as of 12:11, 29 November 2020
Contents
Project Description
The scope of the project is to do determine how useful Intel Inspector is and how to use the debugging feature. The topics we are going to cover today is; what is Intel Parallel Studio Inspector, what are the pros and cons, and how to use Intel Parallel Studio Inspector. The goal of this is to educate ourselves and our classmate the importance of Intel Parallel Studio Inspector and how to use it.
What is Intel Parallel Studio Inspector
Intel Inspector is an easy-to-use memory and threading error debugger for C, C++, and Fortran applications that run on windows and Linux. It helps find and fix problems- such as memory leaks and deadlocks-before they hinder productivity and time-to-market. Inspector is a correctness checking program that helps you find and fix problem like memory leaks and deadlocks. There are two distinct side of the inspector coin design to target specific type of problem: threading error and memory error. Inspector is a correctness checking program that helps you find and fix problem like memory leaks and deadlocks. There are two distinct side of the inspector coin design to target specific type of problem: threading error and memory error.
Reliability: find deadlocks and memory errors that cause lockups & crashes
Security: Find memory and threading vulnerabilities used by hackers
Accuracy: Identify memory corruption and race conditions to eliminate erroneous results
Different Deadlock Analysis Level
The threading and memory focus each level of analysis. Which progressive gets more details in cost of higher overhead. Each level are level 1: detects deadlock, level 2: detect deadlocks & data races, and level 3: locate deadlocks & data races.
Detect Deadlocks: when two or more threads are permanently stuck because no thread will give up its current lock until it can take the next one. But that lock is being held by another thread in the same position.
Detect deadlocks & data races: will do exactly what I explained earlier plus detect data races. Data races is when the outcome of an operation can change depending on what order the thread reached in.
Locate deadlocks & data races: is more detail with a smaller granularity deeper default stack frame depth and configurable scope.
Different Memory Leak Analysis Level
The three levels for memory error analysis are detect leaks, detect memory problems and locate memory problems.
Detect Leaks: just tracks whether the memory allocating gets deallocated.
Detect Memory Problems: Expands on detect leaks by also detecting bad interaction of memory such as invalid memory access, as well as enabling real time analysis.
Locate Memory Problems: Is similar to detect memory problems but more detailed. With a deeper default stack frame depth and guard zones which shows offsets of memory accesses of allocated blocks.
In the inspector the button “Reset Leak Tracking”, stops tracking all currently allocated memory for leaks, discarding associated tracking data without reporting it. The button “Find Leaks” creates a report on the leak status of all currently allocated memory, then stops tracking those blocks. The button “Reset Growth Tracking” discards all currently-tracked memory growth data. Memory currently allocated won’t count towards growth. The button “Measure Growth” creates a report on how much memory usage has grown since the last reset. Does not reset tracking information.
Pros vs Cons
Pros
- The pro of using intel inspector is to fix problems such as memory leaks and deadlocks
- Intel inspector is a dynamic memory and threading error checking instrument to inspect serial and multi-threaded programs
- It is specialized in memory and threading error
- It is much more targeted than other debugging tools
- It integrates with Visual Studio and has his own application
- It has a view windows of the error code on the display
- It can analyze an executable file
Cons
- Hard to navigate
- Takes time to get use to it
- Outdated UI
- Hard and confusing to configurating projects
- It doesn’t support OpenMP and TBB
- It can provide false positive and false negative
- Some version of the inspector is paid version, you have to pay for it
Sample Code for Intel Inspector
TBD
How to use Intel Parallel Studio Inspector
There are two ways to use the Intel Parallel Studio Inspector
Run Inspector directly from Visual Studio
This is the easiest and fastest way that requires no additional configuration.
Once you downloaded intel Inspector application, you need to restart your Visual Studio for the feature to work.
Inside Visual Studio, there are two ways of accessing the inspector debugger. The first way is to go to the tools drop down menu and locate “Intel Inspector”, then you should be able to click on what you want to debug.
Second way is to locate the inspector icon, few directions right on tools. There will be a drop down menu that should lets you choice what choice of debugging you want to do or start a new analysis.
Run the application via Inspector
Before we start, I want to be able to show you how the Inspector UI looks like as a whole.
Working with intel inspector application requires passing it a compiled version of your program. Additionally, you may need to link some libraries (lib, dll, and etc.)
Configure a Project
Intel suggests using small data set sizes and load threads with small chunks of work.
This will reduce the run time and the speed of the analysis.
On the left side, right click on the project so that you get a drop-down menu and click “new analysis” to configure a project the way you want it.
Choose Analysis Type
Inspector allows you to choose between predefined types of analysis.
Choose the type of analysis using a drop down menu
Memory Error Analysis:
• Detect Leaks
• Detect Memory Problems
• Locate Memory Problems
Threading Error Analysis:
• Detect Deadlocks
• Detect Deadlocks and Data Races
• Locate Deadlocks and Data Races
Custom Analysis types: users can create their own types based on selected preset type.
In this screenshot, it show cases the different levels for memory error analysis.
Types at the top have smaller scope but faster in execution.
Types at the bottom have larger scope but they are considerably slower.
Group Members
Reference
Progress
Update 1: Sunday November 8th 2020 - Created basic topic to research for Intel Parallel Studio Inspector