Unusual compilation times between compiler versions

Unusual compilation times between compiler versions

Ritratto di larry.riche

I have a FORTRAN application in which I am experiencing a large difference in compile times between using different versions the Intel FORTRAN compiler. Using 11.1 the compilation takes hours (2-4 on average), using 12.1 the compilation takes minutes (5-10 on average). Both resulting applications behave the same, and deliver the same output. What could be possibly causing the extreme difference in compile time? I understand the may be a very vague questions with many possible answers. I'm just looking for general direction on how to resolve the issue, if possible.

8 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di Lorri Menard (Intel)

to make sure I understand, you went from multiple hours to multiple minutes, right?   So, a huge improvement in compile time? 

Does your application have many modules, and do you use the ONLY qualifier on module uses?   Do the modules have common blocks?  Those are the areas where we'd made some signficant compile-time performance improvements in that time frame.

           --Lorri

Ritratto di larry.riche

Hi Lorri,

Yes you correct, I am experiencing a huge improvement in compile times with the more recent version of the compiler. There are a large number of common blocks in the code, however I not seeing any use of modules or the ONLY qualifier. It's a bit difficult to tell though, because code is being compiled with Intel Fortran through a third party software.

Ritratto di Steve Lionel (Intel)

Do the COMMON blocks have DATA initialization and are large or there's lots of DATA statements?

Steve
Ritratto di larry.riche

Hi Steve, that is true the COMMON blocks have DATA initializations and there are a large number of DATA statements. Might there be any way of improving the compilation time using the older 11.1 version the Intel compiler?

Ritratto di iliyapolak

Hi Larry

If you are interested you can profile compilation time with Xperf tool.For example when you suspect data bound issues you can profile disk I/O readings.Anyway at least you will be given a hotspot(s) which could be helpful in order to understanding where is the bottleneck.

Ritratto di Steve Lionel (Intel)

Larry, the only thing I can suggest is to initialize the COMMON with executable code rather than DATA statements. Or, update your compiler.

Steve
Ritratto di mecej4

Using your current, slow-to-compile version, at the beginning of the program write the variables that are involved in the DATA statement(s) to an unformatted file and terminate execution as soon as the file has been written. Then, prepare a modified version of your program in which you have removed the DATA statements, and at the the beginning of the program read the unformatted file. Henceforth, use the modified version, as it should get compiled faster.

Accedere per lasciare un commento.