Open main menu

CDOT Wiki β

Changes

GPU621/Group 6

2,057 bytes added, 11:53, 27 November 2018
Intel Parallel Studio Inspector
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, making it much harder to determine what the issue is. Below is a list of errors that Intel Inspector can find. These are the more common errors, and for a longer list of problem types, you can find them on the [https://software.intel.com/en-us/inspector-user-guide-windows-problem-type-reference Intel website here].
[[File:Deterministic_diagram.png]]
'''It Intel Inspector can be used with the following'''
#OpenMP
#TBB (Thread Build Blocks)
#MPI (Message Passing Interface
'''== Memory Errors''' == # Memory errors refer to any error that involves the loss, misuse, or incorrect recall of data stored in memory. === Memory leaks ===# Memory corruptionThese are a resource leak that occurs when a computer program incorrectly manages to release memory when it is no longer needed. # Allocation and deallocation API mismatches This may lead to extensive response times due to excessive paging, leading to slower applications. # Inconsistent memory API usage # Illegal memory access=== Memory corruption ===# Uninitialized Memory corruption is when a computer program violates memory readsafety, things like buffer overflow and dangling pointers.
'''Threading Errors'''=== Allocation and deallocation API mismatches ===# Data racesThis problem occurs when the program attempts to deallocate data using a function that is not mean for the allocator used for the data. For example, a common mistake is when # Heap races# Stack races# Deadlocksdata is allocated using new[], a problem will occur if you just use the delete function, instead of delete[].
'''New ===Inconsistent memory API usage===This problem occurs when memory is allocated to API that is not used within the program. An API is a set of subroutine definitions, communication protocols, and tools for 2019'''building software, and when those tools are introduced into a program but not used, unneeded memory is used.
#Find persistence ===Illegal memory access===This is when a program attempts to access data the it does not have the right permissions to use. ===Uninitialized memory read===This problem occurs when the program attempts to read from a variable that has not been initialized.  ==Threading Errors==Threading errors like missing refer to problems that occur due to the specific use of threads within a program. ===Race Conditions===Race conditions are defined as a condition where the output is dependent on uncontrollable events sequence or redundant cache flushestiming. (Persistent memory There are multiple types of race conditions, such asa data race is a type of race condition that occurs when multiple threads attempt to perform an emerging class of memory storage technology.)operation on shared data, a heap race that performs operations on a shared heap, #Detect deadlocks or a stack race, which performs on std::shared_mutex (C++17 standard)a shared stack.#Experience improved compatibility with some antiviruses.#Use ===Deadlocks===A deadlock is when a multiple processes attempt to access the same resource at the latest operating systems same time, and Microsoft Visual Studio*the waiting process is holding a resource that the first process needs to finish. = Testing Intel Inspector = You can find some online tutorials for [Intel Inspector here https://software.intel.com/en-us/articles/inspector-tutorials].
'''Levels of Analysis'''
32
edits