Difference between revisions of "GPU621/Group 6"

From CDOT Wiki
Jump to: navigation, search
(Intel Parallel Studio Inspector)
(Intel Parallel Studio Inspector)
Line 9: Line 9:
  
 
Intel Inspector (successor of Intel Thread Checker) is a memory and thread checking and debugging  
 
Intel Inspector (successor of Intel Thread Checker) is a memory and thread checking and debugging  
tool to increase the reliability, security, and accuracy of C/C++ and Fortran applications.  
+
tool to increase the reliability, security, and accuracy of C/C++ and Fortran applications. It assists programmers
 +
by helping find both memory and threading errors that occur within programs. This can be very important, as memory errors
 +
can be incredibly difficult to locate without a tool, and threading errors are often non-deterministic, which means that
 +
even for the same input, they can show different behavior on different runs.
 +
 
 +
[[File:Deterministic_diagram.png]]
  
 
'''It can be used with the following'''
 
'''It can be used with the following'''

Revision as of 10:06, 27 November 2018

Group Members

  1. Shawn Pang
  2. Josh Tardif
  3. Vincent Logozzo
  4. eMail All

Intel Parallel Studio Inspector

Intel Inspector (successor of Intel Thread Checker) is a memory and thread checking and debugging tool to increase the reliability, security, and accuracy of C/C++ and Fortran applications. It assists programmers by helping find both memory and threading errors that occur within programs. This can be very important, as memory errors can be incredibly difficult to locate without a tool, and threading errors are often non-deterministic, which means that even for the same input, they can show different behavior on different runs.

Deterministic diagram.png

It can be used with the following

  1. OpenMP
  2. TBB (Thread Build Blocks)
  3. MPI (Message Passing Interface

Memory Errors

  1. Memory leaks
  2. Memory corruption
  3. Allocation and deallocation API mismatches
  4. Inconsistent memory API usage
  5. Illegal memory access
  6. Uninitialized memory read

Threading Errors

  1. Data races
  2. Heap races
  3. Stack races
  4. Deadlocks

New for 2019

  1. Find persistence errors like missing or redundant cache flushes. (Persistent memory is an emerging class of memory storage technology.)
  2. Detect deadlocks on std::shared_mutex (C++17 standard).
  3. Experience improved compatibility with some antiviruses.
  4. Use the latest operating systems and Microsoft Visual Studio*.

Levels of Analysis

  1. The first level of analysis has little overhead. Use it during development because it is fast.
  2. The second level (shown below) takes more time and detects more issues. It is often used before checking in a new feature.
  3. The third level is great for regression testing and finding bugs.

03-Choose-Level.png