Intel® Advisor Help
For medium-large targets, several methods are available to minimize the amount of data collected and target execution time. Minimizing the data collected reduces the amount of data you need to examine in the Intel® Advisor Memory Access Patterns Report; it also reduces the size of the generated result. To minimize execution time with the Memory Access Patterns tool, consider reducing the data set processed by the application.
Selecting the Target Application Precisely
One way to reduce the amount of data collected is selecting the target application precisely. So, for example, if the target application is invoked as part of a shell script, you can hint the Advisor to work with a specific process instead of collecting data for the whole set of the invoked processes. Select the child application:
Within Microsoft Visual Studio* go to Project > Intel Advisor XE 2016 Project Properties and specify the child application name in Analysis Target tab > Refinement Analysis Type > Memory Access Patterns Analysis.
Within the Intel Advisor standalone GUI go to File > Project Properties... and specify the child application name in Analysis Target tab > Refinement Analysis Types > Memory Access Patterns Analysis.
Using the advixe-cl command line with the following command:
advixe-cl --collect map --project-dir <pdir> --executable-of-interest=<string> -- <application>
where <pdir> is the project root directory, and <application> is the name of the target program.
Reducing the Input Data Set
The Memory Access Patterns tool collects data as it executes the loops that are either marked for deeper analysis in Survey Report, or defined by annotations in the source code. The overhead of the Memory Access Patterns tool depends on a number of loops selected for analysis and a number of stride diagnostics detected during the analysis. To minimize increased program run times, choose input data sets that minimize the number of instructions executed within a parallel site while thoroughly exercising your program's control flow paths. For example, the same data sharing problem will be detected whether you execute a loop once or a million times - but executing a loop a million times takes much longer.
Using the Stop Button to Minimize Data Collection
Clicking the Stop button in the Check Memory Access Patterns group of the Advisor workflow tab stops data collection, finalizes and displays the partially collected data. You might click this button if you already see many types of problems reported during collection and do not wish to wait for additional analysis to occur.
In Advisor CLI, use the --stop command to interrupt the collection, retain and finalize the collected data to make it available via Memory Access Patterns report.
Using Pause Collection and Resume Collection Annotations to Minimize Data Collection
The Memory Access Patterns tool recognizes all annotations, including:
Pause Collection: Stops data collection to skip uninteresting parts of the target program's execution. This minimizes the data collected, speeds up the analysis of medium-large applications, and minimizes execution time.
Resume Collection: Resumes data collection previously paused to collect data about the interesting parts of your program.
Place Pause Collection and Resume Collection annotations outside the parallel site code regions, which are defined by parallel site begin and parallel site end annotations.