Difference between revisions of "GPU621/Striking"
(→Progress) |
(→Progress) |
||
Line 52: | Line 52: | ||
The debugging example below is used for five odd numbers to be sorted. This is the easiest way to figured out how the threads work together with the simple data. | The debugging example below is used for five odd numbers to be sorted. This is the easiest way to figured out how the threads work together with the simple data. | ||
+ | |||
*How to start debugging | *How to start debugging | ||
− | + | The following sequence may guides you start to debug on the visual Studio. | |
# put breakpoints where you want to take a look by hitting the key F9 in the line or left-click at the front of a line | # put breakpoints where you want to take a look by hitting the key F9 in the line or left-click at the front of a line | ||
# Run the program in Debug mode by hitting the green button (or key F5) | # Run the program in Debug mode by hitting the green button (or key F5) | ||
Line 64: | Line 65: | ||
## F9 to put/remove breakpoints in a line | ## F9 to put/remove breakpoints in a line | ||
− | * | + | *#Data flow of parallel_qsort |
<table border="0" width="800"> | <table border="0" width="800"> | ||
<tr align="left"><td>[[File:dataflow.png|250px|thumb|left|alt dataflow]]</td><td>Explanation will be here soon.</td></tr> | <tr align="left"><td>[[File:dataflow.png|250px|thumb|left|alt dataflow]]</td><td>Explanation will be here soon.</td></tr> | ||
</table> | </table> | ||
− | * | + | *#Parallel Stacks |
<table border="0" width="800"> | <table border="0" width="800"> |
Revision as of 12:38, 8 December 2016
Striking
Our project: Debugging Threads in Intel Parallel Studio
Group Members
Progress
Oct 17th:
- Picked topic
- Picked presentation date.
Oct 20th:
- Created Wiki page
Nov 6th - 13th:
- There are great resources about Intel Parallel Debugger Extension for Microsoft Visual Studio like below.
- Debugging Threads in Intel Parallel Studio - [Dr. Dobbs Article]
- Intel® Parallel Debugger Extension, Added Aug 2, 2012 - [[3]]
- Intel Parallel Composer Parallel Debugger Extension Tutorial - [Mittie Sylvian's Video]
However, Intel Parallel Debugger Extension has been deprecated from the version Intel Composer XE 2013 at the end of 2012. I have noticed this from the Intel User Forum.
Nov 14th - 23th:
- Links about Debug Multithreaded Applications in Visual Studio
- How to: Use the Threads Window
- How to: Use the Parallel Watch Window
- Using the Parallel Stacks Window
- Main features descriptions in Parallel Stacks window
Callout Letter | Element Name | Description |
A | Call Stack Segment or Node | Contains a series of method contexts for one or more threads. |
B | Blue Highlight | Present the call path of the current thread. |
C | Arrow lines | Connect nodes to make up the entire call path for the thread(s). |
D | Tooltip on Node Header | Shows the ID and user-defined name of each thread whose call path shares this node. |
E | Method Context | Represents one or more stack frames in the same method. |
Sample code to use debugging
- Sample code can be downloaded from here Intel(R) Cilk(TM) quick sort
The debugging example below is used for five odd numbers to be sorted. This is the easiest way to figured out how the threads work together with the simple data.
- How to start debugging
The following sequence may guides you start to debug on the visual Studio.
- put breakpoints where you want to take a look by hitting the key F9 in the line or left-click at the front of a line
- Run the program in Debug mode by hitting the green button (or key F5)
- Go to the menu Debug -> Windows to open the windows you need
- Choose the windows that you need (e.g. Memory, Threads, Parallel Stacks, Local or Auto and so on.)
- Hit the function keys to run a program
- F10 to run codes line by line (Step Over)
- F11 to go into a subroutine (Step Into)
- Shit +F11 to get out of a subroutine (Step Out)
- F9 to put/remove breakpoints in a line
- Data flow of parallel_qsort
Explanation will be here soon. |
- Parallel Stacks
Recursive calling parallel_qsort of spawning parallel_qsort in the first parallel_qsort function which main thread has responsible for | The moment right after a spawning thread works in second parallel_qsort calling which Main Thread had finished |
The moment that Main Thread is working for getting out of the previous spawning thread calling to parallel_qsort and 3d and 4th element values in the data array are exchanging in memory. | For two level parallel_qsort function calling and two level spawning call to parallel_qsort, two Threads are working for this; Worker3 and Worker2 |
- Debugging Tips
- Hit F9 at the front of a line to put the breakpoints
- Run the program in Debug mode first and then open the windows you need.
- Open the windows like Memory, Threads, Parallel Stacks, and Local or Auto.
- Hit F10 or F11 to run codes line by line
- F9 to put or remove breakpoints
Links about Intel® Parallel Studio XE 2017