Intel® Advisor Help

4. Check Dependencies and Fix Problems

Predict data sharing problems for the annotated tasks. Fix the reported sharing problems.

The Dependencies tool performs extensive analysis of your running serial application's executable to predict data sharing problems. Use the Dependencies Report window to help you understand and decide how to fix the data sharing problems.

For each data sharing problem, you can:

Understanding the Problems

In a serial program, the exact order of the operations are known. However, in code that executes as multiple parallel tasks, an operation can execute before, after, or simultaneously with an operation in the other task. When parallel tasks access or modify a shared memory location, data sharing problems can occur.

Use the information in the Dependencies Report and Dependencies Source windows with your knowledge about your program to understand why data accesses in your tasks might conflict with each other. Focus on one problem at a time and view the observations for that problem. You are interested in accesses to memory locations in the task. In addition to the task's code region marked by the task annotations, you must consider any code called from the task's code region as well. That is, you need to understand all the data accesses that might be executed during the execution of the task.

There are several types of sharing problems, where each type usually has a different solution:

Next Steps

For each problem reported in the Dependencies Report, you need to carefully examine the source code of the task that causes the problem and read the relevant parts of this help, starting with Understanding Data Sharing Problems. If you modify the sources to fix problems by restructuring code or by adding annotations, rebuild the program and run the Dependencies tool again. Once you fix all the problems, run the Suitability tool again.

When accept the placement of parallel tasks and their enclosing parallel sites, proceed to 5. Add Parallel Framework.

See Also