Intel® Advisor Help
The
Intel®
Advisor
Dependencies tool
identifies data sharing problems and messages as it executes and analyzes your
running program. Based on its analysis as it encounters site, task, and other
Intel Advisor
annotations while executing your serial program, the
Dependencies Report window lists each problem and
message found.
A problem is a small group of closely related observations that indicate an:
In contrast, a message is simply an Informational remark related to analysis. In most cases, no action is required.
The Intel Advisor Dependencies tool generates the following problems and messages:
Problem Type Name | Severity and Cause |
---|---|
Error. Occurs when a task does not release a lock before the task ends. |
|
Error. Occurs when a task writes a value that a different task reads. If not fixed prior to conversion to parallel code, a Data Communication problem could result in a data race. |
|
Error. Occurs when a task writes a value that a different (child) task reads. If not fixed prior to conversion to parallel code, a Data Communication problem could result in a data race. |
|
Warning. Occurs when a task execution accesses a memory location more than once, under the control of different locks. |
|
Warning. Occurs when two or more locks are acquired in a different order in two task executions, potentially leading to a deadlock when the program's tasks execute in parallel. |
|
Error. Occurs when two tasks write to a shared memory location. That is, a task writes to a variable with a new value but does not read the same value generated by a prior task. If not fixed prior to conversion to parallel code, this Memory Reuse problem could result in a data race. |
|
Error. Occurs when two tasks write to a shared memory location, where a parent task overwrites a variable with a new value that was read by a previously executed child task in the same site. If not fixed prior to conversion to parallel code, this Memory Reuse, Child Task problem could result in a data race. |
|
Remark. Occurs when a task accesses a memory location marked by an ANNOTATE_OBSERVE_USES annotation. In this case, this problem provides informational feedback only and no action is required. This is useful for finding uses of specified memory locations while a task is executing. |
|
Error. Occurs when a site-begin annotation is executed but the corresponding site-end annotation is not executed before the thread or application exits. |
|
Error. Occurs when a task-begin annotation is executed but the corresponding task-end annotation is not executed before the site, thread, or application exits. |
|
Error. Occurs when an end-site annotation is executed but there is no active site. |
|
Error. Occurs when an end task annotation is executed but there is no active task. |
|
Warning. Occurs when a parallel site was executed but no task annotations were executed in the dynamic extent of the active parallel site. |
|
Warning. Occurs when a parallel site was executed but annotations for only one task instance were executed in the dynamic extent of the active parallel site. This may be the expected behavior, or it may indicate an error in the placement of annotations or a data set that is not well suited for parallelism. |
|
Error. Occurs when a task-begin annotation is executed that is not within an active parallel site. |
|
Remark. Occurs when execution enters a parallel site. This confirms that your program and its data are executing the annotations you inserted during execution of the Dependencies tool analysis. In this case, this message provides informational feedback only and no action is required. |
|
Remark. In this case, this message provides informational feedback and no action is required. |
|
Error. Occurs when an unhandled exception is detected that causes the application program to crash. |
When needed, you can add special-purpose annotations to inform tell the Dependencies tool about programming patterns such as such as user-defined memory allocation, inductive expressions, and reduction variables that look like sharing problems to the Dependencies tool but are actually safe. In addition, you can use the ANNOTATE_OBSERVE_USES annotation to request that the Dependencies tool provide additional detail about accesses within a specified memory region.