Why such a Linux/Windows difference on the same computer

Jure Repinc (JLP)
Jure Repinc (JLP)
Joined: 22 Jan 05
Posts: 13
Credit: 7,393,020
RAC: 0
Topic 187471

Hi,

On my older computer with AMD Athlon 1200 and 512 MiB of memory I'm runing Windows XP with SP2 and Mandrake Linux 10.1. In both OSes I have BOINC 4.19 installed and runing.

The problem is that BOINC is runig a lot slower in Linux while other things are running at about the same speed as expected.

This is the info from the BOINC benchmark:

Linux:
Measured floating point speed: 632.92 million ops/sec
Measured integer speed: 1442.49 million ops/sec
CPU Time: ~64000 sec

Windows:
Measured floating point speed: 1043.79 million ops/sec
Measured integer speed: 2515.06 million ops/sec
CPU Time: ~38500 sec

I don't know about this on my AMD Athlon 64 machines as you still have not released any 64-bit client compiled for AMD64. But why is there such a strange difference on AMD Athlon 1200?

Bruce Allen
Bruce Allen
Moderator
Joined: 15 Oct 04
Posts: 1,109
Credit: 172,125,663
RAC: 0

Why such a Linux/Windows difference on the same computer

> Hi,
>
> On my older computer with AMD Athlon 1200 and 512 MiB of memory I'm runing
> Windows XP with SP2 and Mandrake Linux 10.1. In both OSes I have BOINC 4.19
> installed and runing.
>
> The problem is that BOINC is runig a lot slower in Linux while other things
> are running at about the same speed as expected.
>
> This is the info from the BOINC benchmark:
>
> Linux:
> Measured floating point speed: 632.92 million ops/sec
> Measured integer speed: 1442.49 million ops/sec
> CPU Time: ~64000 sec
>
> Windows:
> Measured floating point speed: 1043.79 million ops/sec
> Measured integer speed: 2515.06 million ops/sec
> CPU Time: ~38500 sec
>
> I don't know about this on my AMD Athlon 64 machines as you still have not
> released any 64-bit client compiled for AMD64. But why is there such a strange
> difference on AMD Athlon 1200?

The Windows compiler is (obviously) doing a better job of code optimization. This might be fixable by tweaking some of the compiler flags used in building the Linux version of the core client.

Cheers,
Bruce

Director, Einstein@Home

Rom Walton
Rom Walton
Joined: 29 Oct 04
Posts: 8
Credit: 58,627
RAC: 0

Here is a thread that

Here is a thread that describes the differences and has an FAQ for building an optimized client.

http://setiweb.ssl.berkeley.edu/forum_thread.php?id=11180#75851

----- Rom
My Blog

CACP
CACP
Joined: 22 Jan 05
Posts: 1
Credit: 402,353
RAC: 0

Hi there, Take a look at

Hi there,

Take a look at http://boinc.us.tt/

Salut,

CACP

Professor Desty Nova
Professor Desty Nova
Joined: 22 Jan 05
Posts: 13
Credit: 18,816,409
RAC: 9,711

> This is the info from the

> This is the info from the BOINC benchmark:
>
> Linux:
> Measured floating point speed: 632.92 million ops/sec
> Measured integer speed: 1442.49 million ops/sec
> CPU Time: ~64000 sec
>
> Windows:
> Measured floating point speed: 1043.79 million ops/sec
> Measured integer speed: 2515.06 million ops/sec
> CPU Time: ~38500 sec

The benchmark diferences is due to a bug in BOINC 4.19 for windows. They are higher than should be. It is corrected in BOINC 4.66.
Is the CPU time, the time it takes to process one E@H WU? if it is, does it happen in other projects?

Professor Desty Nova
Researching Karma the Hard Way

Jure Repinc (JLP)
Jure Repinc (JLP)
Joined: 22 Jan 05
Posts: 13
Credit: 7,393,020
RAC: 0

It may be that the GCC

It may be that the GCC compiler is not doing as good job as windows compiler. But I still think this is way too much difference. I have not seen any other app to be so much slower because it has been compiled by GCC. This one is almost twice as slow! Something must be wrong.

Oh and I can see the source code for BOINC client which I can compile with my own optimisations. But if I understand it correctly BOINC is only a framework and then a sepearate binary is downloaded which does the actual work. Where can I find the source code for that Einstein@Home client so that I can compile it. It would also be required to make 64-bit binaries for AMD64 as I have BOINC compiled in 64-bits and optimized for AMD6 but it fails when it tries to download the 64-bit binary for AMD64.

Bernd Machenschalk
Bernd Machenschalk
Moderator
Administrator
Joined: 15 Oct 04
Posts: 3,869
Credit: 185,096,043
RAC: 39,425

There are quite some threads

There are quite some threads in the forums here that discuss runtimes on different architectures, clients and OS, e.g. "curious run times" and "3 Different Versions". To summarize:

- The benchmarks are technically wrong in most Windows clients. Apparently the MS compiler identifies some part of them as having no effect (well, it's a benchmark) and thus doesn't compile them at all. Should be fixed in 4.66, I've not tested it myself yet.

- Our App is definetly running faster on Windows than on Mac / Linux, probably due to the different compilers we use. We tried to narrow the gap as much as we could (see "WOW the new einstein app.4.46 is 100 % faster"), but it's still there.

- There is no 64-Bit optimized App (yet), neither for Intel nor AMD nor PPC, and this will probably stay so at least until we are public (see e.g. "Upgraded Boinc client" in Q&P).

BM

BM

Jure Repinc (JLP)
Jure Repinc (JLP)
Joined: 22 Jan 05
Posts: 13
Credit: 7,393,020
RAC: 0

Have you maybe tried to

Have you maybe tried to contact GCC developers and ask them why the code their compiler makes is so much slower in this case. Maybe they can help to optimise it or even better improve their compiler so other similar apps don't get the same slowdown.

Anyways, thanks for all the help and answers. It is still better to run at half the speed then not run at all. Just keep optimizing the client to keep our processors as busy as possible.

Megadon
Megadon
Joined: 11 Feb 05
Posts: 11
Credit: 20,834
RAC: 0

You need to compile your own

You need to compile your own for linux you will get much better results. Windows is still faster, but not by the huge margin your seeing... Here's a link on how to compile boinc for linux. It makes a big difference.

http://www.pperry.f2s.com/boinc-compile.htm

Edit: Ooops I see you're are compiling your own nvrmnd... maybe the link will help anyways...

Seti-Cruncher
Seti-Cruncher
Joined: 9 Feb 05
Posts: 70
Credit: 7,114
RAC: 0

> You need to compile your

Message 2408 in response to message 2407

> You need to compile your own for linux you will get much better results.

Couldn't agree more. :) In fact, every Linux user has a duty to do it to avoid dragging down other peoples' credits. ;)

> Windows is still faster, but not by the huge margin your seeing...

Hmm. First, Windows is not faster - it just cheats. The Microsoft compiler optimises the loops out of existance and basically just "guesses" the result. Second, my own efforts at compiling the Boinc client have actually resulted in better overall benchmark scores than the Windows versions.

> Here's a link on how to compile boinc for linux. It makes a big difference.
>
> http://www.pperry.f2s.com/boinc-compile.htm

A very good place to start. :)

> Edit: Ooops I see you're are compiling your own nvrmnd... maybe the link will
> help anyways...

I'm sure there will be others who will learn from this thread. :)

Be lucky,

Neil

Megadon
Megadon
Joined: 11 Feb 05
Posts: 11
Credit: 20,834
RAC: 0

Innnnneresting.... I didn't

Innnnneresting.... I didn't realize that the "cheating" that windows was doing was effecting it's benchmarks that greatly. It makes sense though...

Is that bobby the kitten btw? ;-)

and yes, all linux users should compile there own or be forced to use Windows!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.