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.
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.
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.
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?
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.
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.