<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Compiler switch -- significant difference in execution time? in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835653#M54870</link>
    <description>&lt;DIV&gt;We noticed that one of our files/features was taking significantly longer in the most recent release. I decided to try to track this down today.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;It appears that switching between /fpe:0 (default -- floating-point exception, produce NaN) and /fpe:3 (underflow gives 0.0; abort on other IEEE exceptions) may be the culprit.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;For the test file, went from 3+ minutes to under 1 minute (same system timing).&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Has there been extensive illustrations done on impacts of various compiler switches on computation time? Is it published somewhere?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Linda&lt;/DIV&gt;</description>
    <pubDate>Thu, 09 Jun 2005 19:37:28 GMT</pubDate>
    <dc:creator>lklawrie1</dc:creator>
    <dc:date>2005-06-09T19:37:28Z</dc:date>
    <item>
      <title>Compiler switch -- significant difference in execution time?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835653#M54870</link>
      <description>&lt;DIV&gt;We noticed that one of our files/features was taking significantly longer in the most recent release. I decided to try to track this down today.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;It appears that switching between /fpe:0 (default -- floating-point exception, produce NaN) and /fpe:3 (underflow gives 0.0; abort on other IEEE exceptions) may be the culprit.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;For the test file, went from 3+ minutes to under 1 minute (same system timing).&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Has there been extensive illustrations done on impacts of various compiler switches on computation time? Is it published somewhere?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Linda&lt;/DIV&gt;</description>
      <pubDate>Thu, 09 Jun 2005 19:37:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835653#M54870</guid>
      <dc:creator>lklawrie1</dc:creator>
      <dc:date>2005-06-09T19:37:28Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835654#M54871</link>
      <description>The documentation for the various swicthes does say, in most cases, where choosing certain options affects performance.  Yes, /fpe:0 will hurt performance.</description>
      <pubDate>Thu, 09 Jun 2005 20:00:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835654#M54871</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2005-06-09T20:00:57Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835655#M54872</link>
      <description>&lt;DIV&gt;Ah yes, one of my least favorite features of the Intel compiler... you can't go to debug mode and expect the same "problem" to arise. (In this case a hard to track down NaN). Went to /fpe:0 -- all okay, one minor change (out of some 200 test files). Took off "fltconsistency" and have this pop up. Mostly wanted to see the speedier results over my full test suite. Have now spent most of afternoon trying to track down the problem in release mode by writing out successive debug statements (which sometimes, no change to code, allow the code to run successfully -- no NaN).&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Any pointers on where to look?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Linda&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 10 Jun 2005 04:56:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835655#M54872</guid>
      <dc:creator>lklawrie1</dc:creator>
      <dc:date>2005-06-10T04:56:07Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835656#M54873</link>
      <description>Intel compilers are unexpectedly free about re-association when you remove options like /fltconsistency.  First, however, if you had any reason for trying /fltconsistency, you should try /Qprec, which takes some of the precautions implied by /fltconsistency, without much effect on performance.&lt;BR /&gt;&lt;BR /&gt;I was just bitten by the compilation of d/(a + (b-c)) as d/((a+b)-c), which is fixed by /fltconsistency.  This may easily be a problem when using SSE code, in the case where b and c are nearly equal, and much larger than a.  I have started a personal campaign (with problem reports) for /Qprec and the like to be as careful about parentheses as /fltconsistency is.</description>
      <pubDate>Fri, 10 Jun 2005 06:50:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835656#M54873</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2005-06-10T06:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835657#M54874</link>
      <description>&lt;DIV&gt;I was done in by a statement:&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;(numerator)/(x-y+smallnumber). The programmer had set smallnumber to 1.E-30 but x and y were equal. So, in that mode (/fpe:3), it kept dividing by zero. Unfortunately, it didn't crash in debug mode so was difficult to track down.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Would the compiler switch /Qfpstkchk help these situations by crashing closer to the site of the bad number occurrence? Does it significantly impact runtime speed?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Linda&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 11 Jun 2005 22:01:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835657#M54874</guid>
      <dc:creator>lklawrie1</dc:creator>
      <dc:date>2005-06-11T22:01:10Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835658#M54875</link>
      <description>If you turned on optimization with /O in your debug build, you should have seen the same behavior as without debug.&lt;BR /&gt;In your case, the programmer is at fault for not using parentheses.  Unfortunately, ifort doesn't have any option to require their observance, other than /fltconsistency and its synonyms.  Left to right evaluation is not required by Fortran.</description>
      <pubDate>Sun, 12 Jun 2005 05:06:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835658#M54875</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2005-06-12T05:06:25Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835659#M54876</link>
      <description>&lt;DIV&gt;I don't think parentheses are going to make a difference here. Unless the compiler/run time is going to evaluate (x-y) as zero and then add smallnumber? So, you would paren the denominator as ((x-y)+smallnumber)?&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Does /Qfpstkchk help "stop" errors near where they occur without undue extra time added to run time? /fpe:3 more or less did that in CVF, without the extra run time addition. Obviously not in Intel compiler(s).&lt;/DIV&gt;</description>
      <pubDate>Sun, 12 Jun 2005 05:32:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835659#M54876</guid>
      <dc:creator>lklawrie1</dc:creator>
      <dc:date>2005-06-12T05:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler switch -- significant difference in execution time</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835660#M54877</link>
      <description>Yes, that's the programmer's intent.  Take the difference, then add the small number, in case the difference is zero or extremely small.  Parentheses should be used to express that, and you need a compiler option to perform the operations as specified.  You found out that you got the required order with /fltconsistency.  &lt;BR /&gt;As far as I know, checking for stack errors protects only against errors in function call argument declarations.</description>
      <pubDate>Sun, 12 Jun 2005 07:22:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Compiler-switch-significant-difference-in-execution-time/m-p/835660#M54877</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2005-06-12T07:22:50Z</dc:date>
    </item>
  </channel>
</rss>

