"Runtime Checks (all)" Problems in Ifort 2013

"Runtime Checks (all)" Problems in Ifort 2013



I'm curious what happened with the /check:all option in Ifort 2013 that would adversely impact my application run-times.  I solved all of my previous numerical issues with the /fp:source flag.  As an aside, for only a 20% performance hit max, I get digit for digit identical answers on everything from Core 2 x86 to AVX x64 CPUs with /fp:source - I'm not sure why you all don't make this the default.  But, one of my builds is a "/check:all" build, which mainly comes in useful to detect bad user input (resulting in array bounds errors in some arbitrary place in the code).  So, here are some of the typical run speeds for my app:


Regular build (Ifort 2011): 40 minutes

Regular build and fp:source (Ifort 2013): 45 minutes

With Runtime Checks (Ifort 2011): 95 minutes

With Runtime Checks and fp:source (Ifort 2013): 224 Minutes  (what??)


In addition, it complained that:

ifort: warning #10182: disabling optimization; runtime debug checks enabled

In order to turn off this warning, I disabled all optimization ("O0" instead of "O2") for the /check:all build, and the run time went up to 344 minutes.


So, what happened to /check:all in Ifort 2013?  Why is it running so much more slowly?  Is warning 10182 a lie, considering that me manually disabling optimization gives me an even worse run time than the compiler disabling the optimization?



2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

There's a new /check:stack option which is causing the difference you see. This inserts checks for stack corruption around calls, and is also what triggers the warning you mention. Try turning off just that option and see what you get.

Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today