The
Intel Advisor workflow is based on many years of experience parallelizing numerous programs. The workflow has several representations:
-
The
Intel Advisor GUI provides the
Advisor Workflow tab. This tab presents simplified workflows that help you understand how you can use the
Intel Advisor.
-
Once you get familiar with the
Advisor Workflow tab, you can start using the full
Intel Advisor workflow (described later) and adjust its use to your program's specific circumstances.
These workflows have common steps:
- You use the
Intel Advisor
Survey tool to perform a detailed profile analysis of your running program. The displayed output helps you propose one or several places in your program that could benefit significantly from adding vectorization or parallelism. The places to pay attention to are called
sites and each site must contain one or more
tasks. If you have previously tuned programs to minimize their execution time, you may recognize that the Survey tool
profiles your running program.
- Once you are done with the Survey analysis, you can run the
Trip Counts tool to collect data about loop calls and iterations. The collected data finally appears in the
Intel Advisor Survey report.
- You can mark parts of your source code (loops) for deeper analysis using check boxes in the Survey Report, or add
Intel Advisor annotations into your source code to mark the proposed code regions. Once you're done selecting the source code parts for more thorough analysis, you can start using other
Intel Advisor tools.
- You use the
Intel Advisor
Suitability (available in the Threading workflow),
Dependencies, and
Memory Access Patterns (MAP) tools to perform detailed analysis of your running serial program. These tools predict what would happen after you add vectorization or threading parallelism into your source code. They display a report showing the predicted performance gain and parallel overhead (Suitability tool), the likely data sharing problems (Dependencies tool), and the structure of the application's memory accesses (MAP tool). To experiment with different possible improvements, modify your source code and run the tools again. The displayed output from these tools can help you decide whether to keep the proposed parallel code regions, or propose different regions. After you modify your sources to fix the reported problems or modify your annotations, run the Dependencies, Suitability, and MAP tools again.
- You use your editor to modify your program's sources to fix data sharing problems. In some cases, data sharing problems are accidental and can be fixed by privatizing the use of certain memory locations. In other cases, you can propose synchronization by adding lock annotations into your sources to mark the places where you will later add parallel locking code to fix data sharing problems. You must rely on your knowledge of the program's sources and their execution paths to decide the best way to fix the reported data sharing conflicts.
- You use the
Intel Advisor
Dependencies tool again to check whether the likely data sharing problems have been fixed. After you modify your sources to fix the reported data sharing problems, repeat this step until the tool reports that the data sharing problems have been fixed, and then consider using the
Suitability tool again to measure the predicted performance of the modified sources.
- To add vectorization, use your code editor to either modify the source code so that the compiler adds vectorization automatically, or insert specific pragmas into the source code to order the compiler to add vectorization.
- To add threading parallelism, you use your editor to modify your program's sources to replace annotations with source code from a parallel framework that implements parallelism and locks. For example, you might select the Intel® Threading Building Blocks (Intel® TBB), OpenMP*, or Intel® Cilk™ Plus, which are provided as a part of
Intel Parallel Studio XE suite products.
After you build and test your parallel program, you use other products in the Intel software suite to examine your running parallel program. These tools help you check, debug, and tune your parallel program.
To view the topics that you can display by clicking links in the
Advisor Workflow tab, see the topic
Using the Advisor Workflow Tab. The full workflow steps are presented graphically in the topic Full Workflow Diagram.