Difference between revisions of "GPU621/Striking"
(→Progress) |
(→Progress) |
||
Line 33: | Line 33: | ||
<table> | <table> | ||
− | <tr><td colspan="3">[[File:Parallel_stack_view.png| | + | <tr><td colspan="3">[[File:Parallel_stack_view.png|500px|thumb|left|alt text]]</td></tr> |
<tr><td>Callout Letter</td><td>Element Name</td><td>Description</td></tr> | <tr><td>Callout Letter</td><td>Element Name</td><td>Description</td></tr> | ||
<tr><td>A</td><td>Call Stack Segment or Node</td><td>Contains a series of method contexts for one or more threads. </td></tr> | <tr><td>A</td><td>Call Stack Segment or Node</td><td>Contains a series of method contexts for one or more threads. </td></tr> | ||
Line 58: | Line 58: | ||
<table border="1" width="800"> | <table border="1" width="800"> | ||
<tr><td width="400">[[File:qsort_set1.png|300px|thumb|left|alt qsort_set1]]</td> | <tr><td width="400">[[File:qsort_set1.png|300px|thumb|left|alt qsort_set1]]</td> | ||
− | <td width="400">[[File:qsort_set2.png| | + | <td width="400">[[File:qsort_set2.png|350px|thumb|left|alt qsort_set2]]</td></tr> |
<tr><td>Recursive calling parallel_qsort of spawning parallel_qsort in the first parallel_qsort function which main thread has responsible for</td> | <tr><td>Recursive calling parallel_qsort of spawning parallel_qsort in the first parallel_qsort function which main thread has responsible for</td> | ||
<td>The moment right after a spawning thread works in second parallel_qsort calling which Main Thread had finished</td></tr> | <td>The moment right after a spawning thread works in second parallel_qsort calling which Main Thread had finished</td></tr> | ||
<tr><td>[[File:qsort_set4_1.png|300px|thumb|left|alt qsort_set4_1]]</td> | <tr><td>[[File:qsort_set4_1.png|300px|thumb|left|alt qsort_set4_1]]</td> | ||
− | <td>[[File:qsort_set4_done.png| | + | <td>[[File:qsort_set4_done.png|350px|thumb|left|alt qsort_set4_done]]</td></tr> |
<tr><td>For two level parallel_qsort function calling and two level spawning call to parallel_qsort, two Threads are working for this; Worker3 and Worker2</td> | <tr><td>For two level parallel_qsort function calling and two level spawning call to parallel_qsort, two Threads are working for this; Worker3 and Worker2</td> | ||
<td>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. | <td>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. |
Revision as of 11:55, 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
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
- 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 |
For two level parallel_qsort function calling and two level spawning call to parallel_qsort, two Threads are working for this; Worker3 and Worker2 | 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. |
- 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