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

Faster compiles and fortcom.exe questions

Greynolds__Alan
Beginner
1,142 Views
Assuming I don't want to give upANY advanced optimizations (including global/inter-procedurals),

1. What else can be done to speed up my compiles?
2. fortcom.exe doesn't appear to be multi-threaded (as watched by Task Manager). Why?
2. Is fortcom.exe itself compiled/optimized with processor dispatch so it makes use of the latest processor capabilities but at the same time time still works on older ones?

Al Greynolds
www.ruda.com
0 Kudos
7 Replies
Steven_L_Intel1
Employee
1,142 Views
Delete all the files with names ending with "libFNP.dll" from the compiler BIN folder. That will probably help at this time. Don't delete FNP_Act_Installer.dll.

The compiler is not multithreaded nor does it use processor dispatch. The latter is not likely to be helpful for the compiler. We have done work towards threading the compiler, but it is still a "future". You might want to consider, if you are using Visual Studio 08, separating your project into several static library projects which Visual Studio can then build in parallel. I've seen this do amazing things on a Core i7 system with 8 threads. This may or may not be successful for you depending on how you use modules.
0 Kudos
Greynolds__Alan
Beginner
1,142 Views
Thanks for the info Steve.

Actually, I see these *_libFNP.dll files in the 11.0.x directories but not 10.1.030 which is the one I'm currently trying to spped up.

Al

0 Kudos
Steven_L_Intel1
Employee
1,142 Views
Ah. In that case, never mind about the libFNP.dll files. That's 11.0 only and the effect of deleting them is a workaround for a bug that will be fixed in a future update.

What options are you using? For which platform are you compiling?
0 Kudos
Greynolds__Alan
Beginner
1,142 Views
What options are you using? For which platform are you compiling?

/O3 /Qipo /Qprec-div- /Qprec-sqrt- /fp:fast=2 /Qcomplex-limited-range /Qunroll-aggressive /Qopt-multi-version-aggressive /Qvec-guard-write /Qpad

Windows XP Professional

I have a single .f90 file that contains "includes" to all the source files in the application so /Qipo sees all the source at once.

Al
0 Kudos
Steven_L_Intel1
Employee
1,142 Views
Well, /Qipo is often time-consuming, especially with large applications. If you have a single .f90 file you don't need /Qipo and may want to just try /Qip. I don't see /QxW or a similar instruction set switch in there - that would likely make the program run faster (since you're using 10.1) - without it you're not going to get vectorization.
0 Kudos
Greynolds__Alan
Beginner
1,142 Views
Well, /Qipo is often time-consuming, especially with large applications. If you have a single .f90 file you don't need /Qipo and may want to just try /Qip. I don't see /QxW or a similar instruction set switch in there - that would likely make the program run faster (since you're using 10.1) - without it you're not going to get vectorization.

I do have /QxN (Pentium-4 Xeon) and /Qopenmp /Qparallel. I just missed them in the cut-and-paste. Switching from /Qipo to /Qip only reduced my compile time by a few percent.
0 Kudos
Steven_L_Intel1
Employee
1,142 Views
Ok. I don't think there's more you can do here other than perhaps remove /Qip and see if the default interprocedural analysis gives you the performance you want with less compile time overhead.
0 Kudos
Reply