So, have a box running a new-ish, fairly high-end Intel multi-core chip
(which one doesn't really matter here). Decided to see if the OS
installed on the machine made much of a difference in execution time for
programs compiled using gfortran 4.8.2. For the test suite, I used the
familiar single-thread polyhedron benchmark suite (latest and greatest
incarnation freshly downloaded). For compiler flags, used nothing
particularly fancy...
-ffast-math -funroll-loops -ftree-vectorize -O3
First, took the machine, did completely fresh install of RHEL 6.5
(64-bit). Installed gfortran 4.8.2 (since it doesn't come with RHEL),
and ran the PB suite overnight. Then, took the exact same machine, wiped
RHEL off it, installed fresh copy of Windows 7 Professional, SP 1
(64-bit). Installed gfortran 4.8.2. Ran the PB suite overnight.
In looking at average execution times, the differences are striking.
Execution times for the PB suite under RHEL were 20-40% faster on
average, than under Windows 7. This is consistent with comparing
http://www.polyhedron.com/fortran-compiler-comparisons/64-bit-fortran-execution-time-benchmarks-linux64-amd-phenom-ii
and
http://www.polyhedron.com/fortran-compiler-comparisons/fortran-execution-time-benchmarks-64-bit-windows-7-amd-phenom-ii
So, all things being equal, faster under Linux than under Windows.
So (the question) -- why? I have a couple of ideas, but I was wondering
if there is a short-form 'correct answer' (correct, as in, better than
my 'couple of ideas').
Thanks in advance...