You are not logged in.
Pages: 1
Hi all,
I recently upgraded my box to fancy new hardware: AMD Athlon64 X2 2.4 GHz, ASUS A8N SLI Mobo, 1 Gb ram, 2x SATA2 120 Mb discs, Radeon X300 VGA card. Once I got the box re-assembled, I first (rather anxiously) installed Arch Linux 0.7.1. All went very smoothly and starting from scratch in the morning, by lunch time I had a full XFCE4 desktop with browser, email, editors, multimedia etc...
I then thought I should install a 64-bit Linux distro to make full use of my high-power hardware... So I tried Arch64 but I just could not get the installation to boot. Then I decided to install my old favourite, Gentoo linux. After spending a whole day on it, from early morning to late night, I manged to install and setup the base. The following day I installed also a full XFCE4 desktop etc, an almost identical setup to Arch Linux.
Next step was to try performance comparisons: I have an antenna simulation program I have written (based on NEC2) which is quite heavy with floating point (long double complex variables) arithmetic. The test was a shocker to me: With a moderate job, the program took 33 sec in standard Arch and 30 sec in the fully optimized (including kernel) Gentoo linux!! :shock: What gives? Where happened to all that detailed optimization Gentoo Linux affords? Where is the supposed performance advantage of a 64-bit dual processor? A standard binary i686 distro is almost as fast as a 64-bit natively-compiled and optimized power distro! :oops:
Over the next few days I re-installed Gentoo at least two more times to make sure I followed the complex procedure correctly, but there was little difference, if any. Bad news for me (and Gentoo)?? Good new for Arch (and other 32-bit distros)? Or have I still left behind mistakes in Gentoo?
I hope my experience may be useful to others. And of course, I would be greateful for any advice on this.
Thanks in advance
Regards
Neoklis ... Ham Radio Call: 5B4AZ
Offline
I think you're one in many who've been seeing a new light on the Gentoo myth. Whilst Gentoo binaries may end up being more optimised, in a technical sense, the optimal performance may only account for less then 0.001% of speed increase!
Of course, Gentoo users (including myself in the past) always justify their efforts with anecdotal evidence of it "feeling" more responsive, and also that warm fuzzy feeling that it's getting the most of that processor of yours. But you have to say that, wouldn't you, if you'd spent the weekend compiling a base install!
To me, Gentoo's advantage was not in squeezing every last drop of optimisation out of GCC, but rather in the USE flags, which ensures that your applications are always built with the features you need/don't need.
Offline
Where is the supposed performance advantage of a 64-bit dual processor?
You have a 64 bit 2.4Ghz processor. Compare it to a 32 bit 2.4Ghz processor...
except in extreme number crunching, compiling your stuff for 64 bit isn't likely to make that much change. Basically now you have 64 bits transferred at a time, so a boolean expression takes up 64 bits instead of one bit like you would expect, or 32 bits like happens on 32 bit processors. This doesn't slow anything down, but it doesn't speed it up either. My understanding (and I'm no computer architecture guru, so I may be totally worng) is that he speedup comes when processing 'long integer' and 'double precision' data types. These used to take two 32 bit words to store and meant more time to transfer and manipulate in memory and in the processor than floats and ints (32 bits each). In 64 bit, I believe the two data types are equivalent. Meaning Java's got redundant data types now (int == long), just like C++ (int == short)
Dusty
Offline
I'm with the Dusterino on this one...I think in order to truly take advantage of the 64-bit processor, the applications you run have to be written specifically to use that extra allocated space in the processor. If you're working with datatypes that don't really take advantage of the expanded environment, there won't be much performance difference.
My guess would be that switching between Arch and Gentoo on a regular 32-bit system would yield similar results...the 64-bit part of the equation probably doesn't play a big factor here.
Offline
If you're working with datatypes that don't really take advantage of the expanded environment, there won't be much performance difference.
That's an interesting point. As programmers we're told to use float instead of double unless we need the extra precision. So all the apps use floats... but now theoretically it doesn't matter.
Offline
elasticdog wrote:If you're working with datatypes that don't really take advantage of the expanded environment, there won't be much performance difference.
That's an interesting point. As programmers we're told to use float instead of double unless we need the extra precision. So all the apps use floats... but now theoretically it doesn't matter.
First my thanks for all the replies. Then I like to say that its now clear to me that the small performance difference is due to the fact that the "machine" works with 64-bit data all the time, so access time are the same. So switching to a 32 bit system only means that the x86 instructions sub-set is being used instead, while the cpu/mobo still transacts in 64 bit data. My test program works with large matrices of "complex long double" data, which must be as bad as it gets! Still, the new machine is a lot faster than the old one, so I should be happy with it
Regards
Neoklis ... Ham Radio Call: 5B4AZ
Offline
The 32-bit vs. 64-bit distinction has virtually no effect on floating point operations since those are handled in floating point hardware which actually uses dedicated 80-bit wide registers. Nor does 64-bit do much for data transfer to/from memory since even 32-bit processors have a 64-bit wide external data bus.
So where does it help? If you have C code that uses "long long" data types extensively (which nowadays includes file offsets) you'll see a speed boost because integer operations on 64-bit numbers are reduced from a dozen instructions or so to just one.
Now, if you really want to speed up your test program, recode it to use single precision floats and then build with SSE optimizations. May require some hand tuned assembly language, but when you're done you'll be able to do four floating point operations per instruction instead of just one. You'll see some loss of precision, but for a 4X speed boost it may be worth it
Offline
The number of registers can definitely make a big difference, and not necessarily the software you're running (which could also help explain why there wasn't much difference in your test). If you're interested in reading it, I found a decent article on the Tech Report about 64-bit processors: 64-bit computing in theory and practice
Offline
I always thought that Gentoo was another name for the placebo effect.
From what I understand, the 64bit userspace out there still isnt quite ready. Having to run things in a chroot just seems like such a dirty solution to me.
iphitus
Offline
Never noticed any great increase in system performance ....in 32 bit
true in a 64 bit distro system does seem quicker but nothing dramatic
but at what cost multimedia is still mostly 32 bit anyway ......
No for the time being I'm running 32 bit
Gentoo they may be ahead on the 64 front but I cannot wait days for gnome to install lol
Mr Green
Offline
Pages: 1