Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Compilation time v12.0

Gerald_Duff
Beginner
1,358 Views
Hello,
Compiling, with v12 very slow (around 20 times slower than with v11.1). Is it normal or am I missing something ?
(v12 update 1 or 2 are not faster)
Regards
0 Kudos
10 Replies
TimP
Honored Contributor III
1,358 Views
RAM and maybe stack usage seem to have increased, although I haven't seen a scientific comparison. It might put you "over the edge" in certain specific situations. If it's of sufficient concern to you, and not the result of insufficient RAM for the task at hand, you might consider submitting your case on premier.intel.com.
0 Kudos
jeremy_h
New Contributor I
1,358 Views
I noticed moving from CVF to 11.1, it does compile slightly slower. The big difference is if there are AUTOMATIC statements, this seems to grab a GB or so of working set. If you are running in a small memory environment (e.g. in a small VM) then it can easily take 20 minutes(!) to compile something with many AUTOMATICs. With 2GB of memory, it goes back down to a few seconds.
0 Kudos
Steven_L_Intel1
Employee
1,358 Views
If you have an example source we can try compiling, we'd appreciate it.
0 Kudos
jeremy_h
New Contributor I
1,358 Views
I apologize for hijacking a thread, however it might be related. It goes to show that there can be subtle differences between compilers when compiling large programs.

While pursuing a minimal faulty program, I found the problem was not AUTOMATIC, it just happened to occur only in a module with by far the most AUTOMATICs. Here is the offending line:

CHARACTER*4763 ZOUTLINE (7220)/7220*' '/

You can give me a dozen reasons why this is awful code. The problem, such as it is, only shows up in a VM image with less then a GB of memory, then it takes about 20 minutes to compile. With 2GB of memory, even this garbage takes only a couple of seconds to compile.

Same behavior with 11.1 and XE2011, in IA-32 mode. The VM OS is 32-bit XP.
0 Kudos
jimdempseyatthecove
Honored Contributor III
1,358 Views
What happens when you take the initialization off the statement (and initialize/wipe at program startup)?
0 Kudos
jimdempseyatthecove
Honored Contributor III
1,358 Views
An alternative is to place ZOUTLINE in a module (by itself), then if it compiles slow, it does so only once.

Jim Dempsey
0 Kudos
jeremy_h
New Contributor I
1,358 Views
Yes it is the init that takes the time. The fix is trivial - use a computer with at least 2GB of memory. I am not suggesting this is a compiler issue that needs fixing. It is an example of how an unusual construct slipped into legacy code can make a large performance difference between compilers.
0 Kudos
Steven_L_Intel1
Employee
1,358 Views
The problem with large initializations is that the compiler has to map out the data as it will appear and then write object code to do the initialization. Unlike some operating systems, the Microsoft object language doesn't have repeat counts or other things that would help compress this information.

We are aware that large initializations can take a lot of compile time. We've made some significant improvements in version 11.1, and continue to work on this.

Again, I would like to ask for an example source that compiles much slower in 12.0 than in 11.1.
0 Kudos
Gerald_Duff
Beginner
1,358 Views
Thanks for the answers, any sources compiled very slowly, with every compilation options I tried (for instance, the attached file takes around 12s to compile with v12.154).

My collegues which also where using v12 (also on windows xp) did not encountered this problem on the same sources.


Yesterday, I updated to v12.175 and it seems that it corrects the problem, everything compile now as quickly as v11.1. (The attached file compiles within less than 1 seconds)

Regards
0 Kudos
Steven_L_Intel1
Employee
1,358 Views
Ok - thanks. Since Update 3 seems to solve the problem for you, I think we'll declare success.
0 Kudos
Reply