Both Apple and Advanced Micro Devices are producing 64-bit processors for consumer PCs. Apple put its new PowerPC G5 chips into its latest line of Macintosh desktops, and AMD has several flavors of its Athlon 64 processor, which is found in computers from various manufacturers. Read the rest of the article at Houston Chronicle.
Could anybody enlighten me what standard applications will gain from 64 bit ? I mean just by recompiling them, no 64 bit tuning. Is there much to gain, besides a bigger address space and a bit faster “long long” aritmetic?
Comparing x86 and amd64 installation running gentoo on my desktop box. The main difference is performance. amd64 has twice the registers of x86. This gives you about a 20% boost in performance. amd64 also lets you have a noexec stack to help protect you from buffer overflows.
1 ) Faster “long long”, a mulitply is an order of about 4x faster. Expect even greater gains when doing divide.
2) Large memory space = more disk caching.
..a) any SQL server will see a huge gain. IBM’s UDB shows about a 10x speed up. I know MS SQL also has a large gain; but I haven’t seen anywhere where list actual numbers.
..b) Web Servers will also gain the ability to handle more users.
..c) Movie editting also needs the larger memory space.
..d) Photoshop can always use more memory; something to do with number of layers and number of un-dos.
..e) along with c, DVD encoding is faster.
..f) Some of the newer 3D games are getting to the point where the game designers need 64bit systems for the game edittors. They’ll also be more apt to relesae 64bit versions of their games (more realistic).
I short anything thats multi-media or heavily graphic will like the larger address space.
For things that don’t need larger address spaces, accounting software needs the larger number handling abilities. You can’t do accounting using REAL numbers! 32bits is only 16 nibbles which means you can only do math on 15 digits using BCD numbers; this translate into ~9,999,999,999,999.99 which wont even handle the gross national product. Using 64bits you get 32 nibbles which gives you 31 digits in BCD. With the extra digits you actually have room to use more then 2 decimal places; my accounts payable system at work uses 17 digits for storage and around 19 digits for printing reports (of course we use a 64bit system).
“For things that don’t need larger address spaces, accounting software needs the larger number handling abilities. You can’t do accounting using REAL numbers!”
This doesn’t make a “64-bit” system. Double precision floating point math doesn’t require a “64-bit system”. For what it’s worth, a P6 processor uses 80-bit floating point internally. As to your accounts payable system – your post doesn’t follow logically.
It seems like a a pretty simple reason why there aren’t that many 64-bit apps. Most apps don’t need to be 64-bit. Sure there are scientific, server, and other related apps that could use a boost from 64-bit CPUs, but for desktop systems there’s not much. Photo and video editing programs probably would want to take advantage of this, but it might be a while before they get totally rewritten to support this. Other than power users, 64-bits aren’t needed to surf the web and read email.
Not everyone writing software actually owns 64 bit machines to work on.
Linus has the following arguement (on some linux mailing list somewhere)
He says that 64bits is simply simpler to program. No need for ugly hacks for apps that require more than the addressing limits.
He says that even if you don’t use anywhere near those limits yourself, you’ll benefit from code that is simpler and therefore more easily tested and therefore more robust.
Saying “I don’t need 64bits” is, therefore, rather selfish and to your own detriment 😉
> 1 ) Faster “long long”, a mulitply is an order of about 4x
> faster. Expect even greater gains when doing divide.
Agreed on this one for doing arithmetic on 64bit numbers.
> 2) Large memory space = more disk caching.
Well this is only true if you have more than 4(2?) GB of memory.. While this is quite common for servers, desktop station have rarely the need for >1GB of memory currently.
I am a linux user and I want a 64 bit machine because I can recompile most of free applications I use but most people are using M$ Winblows and, while M$ don’t sell a 64-bit Windows, the software houses won’t port your applications to 64 bit. It is sad but it is the truth.
If linux or some *BSD was the number one operating system of world we could use ARMs, Sparcs, MIPs, PowerPCs or any microprocessor in our personal computers.
@JCS
Using x87 floating point IEEE754 arithmatic is not accurate enough for financial applications. It has to do with the fact that the standard approximates values for large scales. I recently had a problem with the number 1.4 which internally resolved to 1.400001 and 0.35 became 0.349999999xxxx where x is a whole bunch of random numbers that I can not remember off hand. There are tricks for getting around these kind of problems but that complicates the code. Better to use slower but more precise decimal types. For that, 64bits is a boon. Since I work on 64 bit UN*X systems already, I don’t have a performance problem
@JCS
(Oops accidently submitted)
this link has articles to explain the problm:
http://cch.loria.fr/documentation/IEEE754/
Regards.
What’s with all this noise about 64-bit computing? Sun, HP, DEC/Compaq, …, have been producing 64-bit CPUs for a long time. I’ve been running on 64-bits since 1996. People have managed to live and work with such machines for quite long.
Oh well… I just hate the fact that, now that mainstream-type computers managed to break the 32-bit barrier, everyone is getting a heads-up and talking of 64-bit issues and stuff…
It’s disappointing that the article linked didn’t mention Linux – I’d have thought that Gentoo on an Athlon 64 would have been ideal, since you tend to re-compile everything natively on that machine.
This isn’t the only site to ignore Linux on Athlon 64’s – I complained to the Trusted Reviews site about their Evesham Athlon 64 laptop review at http://www.trustedreviews.com/article.aspx?page=479
The author told me basically that Linux was too difficult to install and people didn’t use it, so he didn’t review it (I suggested trying Knoppix next time – is there an Athlon 64 version of Knoppix yet?). It seems silly to me to do a review of a 64-bit machine and only run 32-bit OS and apps on it, but that’s exactly what reviewers in magazines and on Web site are mostly doing at the moment (they’re lazily all sitting on their backsides until MS very belatedly finally releases 64-bit Windows for AMD 64 chips).
Financial Programmer:
“Using x87 floating point IEEE754 arithmatic is not accurate enough for financial applications. It has to do with the fact that the standard approximates values for large scales. I recently had a problem with the number 1.4 which internally resolved to 1.400001 and 0.35 became 0.349999999xxxx where x is a whole bunch of random numbers that I can not remember off hand. There are tricks for getting around these kind of problems but that complicates the code. Better to use slower but more precise decimal types. For that, 64bits is a boon. Since I work on 64 bit UN*X systems already, I don’t have a performance problem ”
Floating point implementations on 64-bit systems with 64-bit FPUs are actually more prone to rounding errors than x87. The only thing a 64-bit system buys you is a long long type – a 64-bit integer. I assume you are using this type to perform decimal math? Frankly, 80-bit floating point is more than adequate for my field (engineering).
“Floating point implementations on 64-bit systems with 64-bit FPUs are actually more prone to rounding errors than x87. The only thing a 64-bit system buys you is a long long type – a 64-bit integer. I assume you are using this type to perform decimal math?”
I think he said BCD?
AHHHHHH JCS you are driving me NUTS.
you can not use Binary representations of real numbers when you need accuracy.
when you do, you loose numbers.
that is why BCD was invented, that is why calculators use it.
4 bits are used to represent the numbers 0-9. what does that mean? well it means when you say 1.4, you get 1.4, not 1.40001.
this has limitations that depend on the size of your registers. a 32 bit register can have only 8 digits, 64 bit can have 16 digits….128 bit registers can have 32 digits and so on.
now….for most applications, floating point is fine, but there are many situations where the number you see MUST be the exact value and not an estimate.
“AHHHHHH JCS you are driving me NUTS. ”
Perhaps if you understood the argument…
Hardware real DECIMAL types are relatively rare and NOT a function of being a 64-bit system. “Long long” integer math in hardware is, but that isn’t quite the same thing.
If I haven’t completely misunderstood something you don’t exactly need 64bit processors for native “long long” arithmetic. I think it’s enough with any processor that supports mmx, and doesn’t sse2 provide 128bit integer arithmetic?
The 128bits se registers are for olding 4 32bits value. This is where the MD in SIMD comes from…