Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

remark: Some OpenMP processing was skipped to constrain compile time. Consider overriding limits (-qoverride-limits)

woodbird
Beginner
1,261 Views

I am using ICPC 2017

For some applications, I am receiving the remarks as displayed in the title.

 

 

However, the application in question does not even use OpenMP at all. For simplicity I enabled the -qopenmp flag for all executables in the same project. Some of them do use OpenMP. But the program in questions does not. Shall it -qopenmp has no effect, except linking an extra (useless and almost harmless) libiomp when the source does not have any #pragma omp?

In addition, this remark since to come when there are large functions to be inlined, or trying to inlining deep recursion of template functions. For example, an 16-iteration loop unrolled through meta programming, and each iteration itself unrolls a 4-iteration loop. It is difficult to provide a minimal example.

Add the -qoverride-limits option seems to disable the warning. However, it results in very long compile time and sometime excessive large memory usage.

Is there anyway simply to disable this warning? Usually remarks can be disabled with -disable-diag, but I cannot find the number of this remark anywhere in the reference manual. 

0 Kudos
4 Replies
Yuan_C_Intel
Employee
1,261 Views

Hi, Woodbird

I have escalated your question to engineer and will let you know when I have a confirmation on this.

Thanks.

0 Kudos
Martyn_C_Intel
Employee
1,261 Views

Hi,

      Please see https://software.intel.com/en-us/articles/fdiag25464  for a short description of internal compiler limits and working around them. Deeply nested inlining can certainly increase both memory requirements and the complexity of other optimizations. -qopenmp has much less impact on code that doesn't contain OpenMP directives, but still has some.

Which compiler version are you using? The diagnostic messages in the above article should be disabled by -diag-disable=25464  etc. They occur in compiler version 15.0.1 and later. Similar remarks in older compilers that don't have a number can't be disabled in this way. If you see a remark in a recent compiler that doesn't have a number, please let us know and we'll try to get it fixed.

You should probably test whether run-time performance is significantly worse than when you compile with -qoverride-limits. If it is, you may want to inline more selectively to get a better balance between compile time, compiler memory usage and run-time performance.

0 Kudos
SergeyKostrov
Valued Contributor II
1,261 Views
>>...However, the application in question does not even use OpenMP at all... Do you use /Qparallel or -qparallel option? >>...I am using ICPC 2017 >>... >>...Which compiler version are you using?.. Martin, I think a Beta or initial version of Intel C++ compiler 2017 for Linux was used.
0 Kudos
SergeyKostrov
Valued Contributor II
1,261 Views
On Windows platforms I use /Qwd option, like: ... /Qwd 111,114,161,171,174,175,177,181,193,279,280,304,373,424,444,488,593,673,810,869,981,1011,1418 ... but it doesn't disable all remarks, or warnings, and they simply ignored.
0 Kudos
Reply