This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Polyhedron b'marks | Linux vs Windows



On 6/1/2014 6:57 PM, Evan Cooch wrote:
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...
Differences that large would make one suspect you didn't clean out competing Windows processes, or you have ridiculously small RAM, or something is wrong with your Windows gfortran. To a smaller extent, your excessive unrolling (as you didn't set e.g. --param max-unroll-times=...) could hurt more on Windows. Failing to set -march=native ought not to incur many differences if both are set the same. If -march=native incurs failures, gfortran 4.9 might be a fairer test (assuming it has corrected those failures).

--
Tim Prince


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]