Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
17 Views

Problem analyzing the Optimization report generated by Intel C++ Compiler 11.1

Dear all,


We have found that the "Optimization Report" button in the Source View toolbar doesn't work. So we have installed Intel C++ Compiler 11.1 and built our product using that compiler. Before building the code we have set the compiler options in the KDevelop to obtain the optimization report as follows:

-opt-report -opt-report-file -opt-report-level max

The report is generated properly with the following information:

86 FUNCTIONS HAD VALID STATIC PROFILES

IPO CURRENT QUALITY METRIC: 50.0%

IPO POSSIBLE QUALITY METRIC: 50.0%

IPO QUALITY METRIC RATIO: 100.0%


We have some questions regarding the above report:

1. What does "86 functions" mean? Does it include the total number of functions declared in all the .h files available to the compiler during compile time?

2. What is STATIC PROFILE & DYNAMIC PROFILE? The report says all 86 functions had valid STATIC PROFILE, no DYNAMIC PROFILE. Is it good or bad?

3. According to Intel documentation Possible Quality Metric indicates the number of possible DYNAMIC PROFILE, measured as a percentage of CURRENT QUALITY. But as no function had DYNAMIC PROFILE, then how this percentage be 50.0%?

4. What is Rejected Profile?

5. Is the above report generated by the compiler is good for our product, if not how can we enhance the performance, this is not cleared from the report.


NB: We are using this performance analyzer for the first time, that's why this lot of questions come... If you please clarify these queries, then we can proceed further to enhance our product.

We are using Intel Core 2 Duo Processor and we had run the compiler in Ubuntu 8.04.




Thanks & Regards,
// Suranjit
0 Kudos
4 Replies
Highlighted
Employee
17 Views

Quoting - Suranjit Sinha
Dear all,


We have found that the "Optimization Report" button in the Source View toolbar doesn't work. So we have installed Intel C++ Compiler 11.1 and built our product using that compiler. Before building the code we have set the compiler options in the KDevelop to obtain the optimization report as follows:

-opt-report -opt-report-file -opt-report-level max

The report is generated properly with the following information:

86 FUNCTIONS HAD VALID STATIC PROFILES

IPO CURRENT QUALITY METRIC: 50.0%

IPO POSSIBLE QUALITY METRIC: 50.0%

IPO QUALITY METRIC RATIO: 100.0%


We have some questions regarding the above report:

1. What does "86 functions" mean? Does it include the total number of functions declared in all the .h files available to the compiler during compile time?

2. What is STATIC PROFILE & DYNAMIC PROFILE? The report says all 86 functions had valid STATIC PROFILE, no DYNAMIC PROFILE. Is it good or bad?

3. According to Intel documentation Possible Quality Metric indicates the number of possible DYNAMIC PROFILE, measured as a percentage of CURRENT QUALITY. But as no function had DYNAMIC PROFILE, then how this percentage be 50.0%?

4. What is Rejected Profile?

5. Is the above report generated by the compiler is good for our product, if not how can we enhance the performance, this is not cleared from the report.


NB: We are using this performance analyzer for the first time, that's why this lot of questions come... If you please clarify these queries, then we can proceed further to enhance our product.

We are using Intel Core 2 Duo Processor and we had run the compiler in Ubuntu 8.04.




Thanks & Regards,
// Suranjit

Hi Suranjit,

First at all, I suggest you to visit C++ compiler forum - http://software.intel.com/en-us/forums/intel-c-compiler/to discuss your questions.

STATIC PROFILE, I understand that Intel C++ compiler analyze your code when compiling time - in your case, 80 functions have been scanned forperformance analysis. "IPO"report told you possibility ofusing optimized algorithms in your code.

DYNAMIC PROFILE,it means thatyou can get performance data after running your code. Intel C++ compiler provides "GPO" option toinsert probes and collect dataat run time.

At this forum,the purpose is to support the developers who are using Intel VTunePerformance Analyzer& Intel Thread Profiler (these toolscan generate/analyze performance data without rebuilding user's code)

Regards, Peter
0 Kudos
Highlighted
Beginner
17 Views


Hi Suranjit,

First at all, I suggest you to visit C++ compiler forum - http://software.intel.com/en-us/forums/intel-c-compiler/to discuss your questions.

STATIC PROFILE, I understand that Intel C++ compiler analyze your code when compiling time - in your case, 80 functions have been scanned forperformance analysis. "IPO"report told you possibility ofusing optimized algorithms in your code.

DYNAMIC PROFILE,it means thatyou can get performance data after running your code. Intel C++ compiler provides "GPO" option toinsert probes and collect dataat run time.

At this forum,the purpose is to support the developers who are using Intel VTunePerformance Analyzer& Intel Thread Profiler (these toolscan generate/analyze performance data without rebuilding user's code)

Regards, Peter

Hi Peter,

Thanks, I will contact with C++ Compiler forum accordingly.
0 Kudos
Highlighted
Black Belt
17 Views

DYNAMIC PROFILE at compile time refers to the availability of profile data collected by building your application with -prof-gen options and running your training workload. STATIC PROFILE refers to assumptions the compiler makes on loop size and branch probabilities without reference to data sets.
As Peter said below, these compiler "profiles" aren't directly related to the profiling which is undertaken by VTune and Thread Profiler, which would be topical on this forum, but also would be a form of dynamic profiling.
However, as you indicated, there is an option in VTune to use the opt-report automatically in the VTune analyzer. That usage is topical here. I don't see that it should be dependent on the presence of Profile Guided Optimization data, so I don't have an answer for your question as to why it didn't work.
0 Kudos
Highlighted
Employee
17 Views

Quoting - tim18
However, as you indicated, there is an option in VTune to use the opt-report automatically in the VTune analyzer. That usage is topical here. I don't see that it should be dependent on the presence of Profile Guided Optimization data, so I don't have an answer for your question as to why it didn't work.

Good point! This is toview the report generated by compiler in VTune analyzer, and note that still is STATIC PROFILE. See reference URL - http://software.intel.com/en-us/articles/intel-vtune-performance-analyzer-for-linux-viewing-compiler...
0 Kudos