I've tested Geekbench for my computer for both Windows and Linux. It seems that Linux loses markedly in floating point performance.

Is there anything I can do about it? Install an optimization library? Change some setting? How can difference in floating point arithmetic be explained?

  • 1
    I don't know 'Geekbench' - but what is the purpose of providing a cross-platform benchmark suite when you can influence it via external libraries ... One explanation for the FP difference could be: it is an artifact of 'Geekbench'. Also note that benchmarking the 32-bit mode of your AMD64 isn't really useful, because one main advantage of the AMD64 architecture is the doublimg of the number of general purpose registers. – maxschlepzig Sep 24 '13 at 7:57
  • Sure. However, if it can be influenced by external libraries, how can I do that for Linux? Will it be a general speed up for all programs using FP? (Unfortunately only the 32bit mode is free of charge) – Gerenuk Sep 24 '13 at 8:02
  • 4
    The OS doesn't really have much to do with FP performance. It's far more likely to be a difference in the compiler that produced the executable(s). Or load on the machines while the tests were running. – Mat Sep 24 '13 at 8:10
  • 3
    Bizarrely enough, there's a whole thread of other people with exactly the opposite story: ubuntuforums.org/showthread.php?t=606396 ("My Geekbench score in Linux is much higher than the score in Windows, on this same dual booting machine. Mainly the floating point benchmark is the biggest difference.") I notice somewhere you need 32-bit libs for this and it's a pre-compiled black box. So maybe the results are unpredictable because -- well who knows, it's just software ;) If I wanted to benchmark two compilers, I'd benchmark two compilers. – goldilocks Sep 24 '13 at 8:51
  • 1
    Use an open-source benchmark - using closed source you never know who paid for it and why. Also note, that you always need to benchmark your application as a whole, general benchmarks can only give you a rough idea of how it might perform. – peterph Sep 24 '13 at 9:36

I would not rely on this software for benchmarking on linux. Here is a thread of complaints about the fact that geekbench mysterious profiles 32-bit linux systems faster than 64-bit systems on the same 64-bit hardware.

I suppose it's not inconceivable that that be accurate, but it seems pretty unlikely that gcc -- which compiles all GNU/linux binary distros and is possibly the most widely used compiler in the world -- would be so flawed and yet no one else has said boo about it. Meanwhile the makers of geekbench admit:

We've been able to reproduce the problem you reported. From what we can tell it's a problem with the compiler used to build Geekbench for Linux; the 64-bit code it generates is slower than the 32-bit code it generates. We're looking into ways to work around this issue.

In the meantime if you're not satisfied with Geekbench please let me know and I would be happy to refund your purchase.

They don't say which compiler they used to build geekbench, perhaps because if they did, the claim that "the 64-bit code it generates is slower than the 32-bit code" could be evaluated and investigated. It's certainly a very serious claim and one wonders why they would continue to use that compiler if this is the case.

No doubt geekbench is something that makes it nice and easy to print scores. I'm not sure how well it would score itself, however.

  • Thanks. Just to make sure I get this right: Apart from gcc and the compile process of the specific program (here Geekbench), there is no other factor influencing FP performance? No kernel options? No BIOS settings? No library to install? Are there processor specific libraries to enhance performance? I googled and didnt understand the software/hardware FP issue or what IntelMKL is :/ Which libraries are involved in a Linux FP call (potentially influencing speed)? (glibc?) – Gerenuk Sep 24 '13 at 10:28
  • I believe there are compiler flags which may influence fp performance in various platform specific ways. I would presume that if you are using a math library, the people who wrote the library have it packaged using those flags. Beyond that I don't know of anything. Floats are part of standard C, and glibc is the standard C library on GNU/linux. GPU's are optimized for floating point operations and often used in number crunching for that reason with special additional libraries, but your software would have to support that specifically, I think. – goldilocks Sep 24 '13 at 10:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.