64-bit Computing Will Be With Us for a While |
Post Reply |
Author | ||||
Soaranden
P1 Joined: 14 Feb 2009 Points: 627 |
Post Options
Thanks(0)
Posted: 29 Jan 2010 at 10:09pm |
|||
I think 64-bit computing will be with us for a while. I recently came across this interesting tidbit of information:
"A 64-bit PC can track 2^64 addresses, yielding a theoretical memory ceiling of about 16 exabytes — 16 billion gigabytes." That would be a lot of RAM. |
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
64-bit hasn't really taken off yet - apart from running 64-bit operating systems, 95% of the apps people run are 32-bit.
Even where apps are 64-bit, they don't really take advantage of the platform at all. The only place 64-bit shines is in mathematical modelling, and server farms where they use the memory. Other than that, it is wasted. Best regards, Vulcan. |
||||
dale_tem
First Officer Joined: 03 Nov 2009 Location: Berkshire, UK Points: 352 |
Post Options
Thanks(0)
|
|||
MS has moved to only 64 bit server. Exchange 2007 is 64 bit only and Server 2008 R2 is 64 bit only. Outperforms the 32 bit versions by 7 times I've been told from tests.
The servers perform better due to more address space in memory (iirc) and this results in less disk access.
Servers make use of 64 bit but thats about it. (In the Microsoft world)
Windows 7 should of been 64 bit only, but they chickened out mainly due to crappy peripheral suppliers who haven't written any 64 bit drivers for their stuff. All the new stuff is coming out with 64 bit drivers but some of the older stuff from the last 5 years is 32 bit drivers only and they won't rewrite the drivers as the product is no longer sold.
I expect the next desktop OS to be 64 bit only
|
||||
Dale
|
||||
Marmite
Chief Pilot Joined: 11 Apr 2008 Points: 1029 |
Post Options
Thanks(0)
|
|||
That as may be, but we're still stuck with 32-bit applications (mostly non-MS) running on servers |
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
@dale_tem: 64-bit does shift more data, but on its own doesn't make it faster.
The biggest advantage of 64-bit is the number of registers. Software designed for 64-bit can use 8 more registers than 32-bit code. In a 32-bit system you have the 32-bit registers: eax, ebx, ecx, edx, esi, edi, ebp, esp In a 64-bit system you have the 64-bit registers: rax, rbx, rcx, rdx, rsi, rdi, rbp, rsp, r8 through r15. This saves you having to push stuff onto the stack (stored in the slower memory) as well as reducing memory accesses so speeds the whole thing up wildly. The big issue with 32-bit code on 64-bit OS is that it still does stuff the 32-bit way. Not all 64-bit code can make best use of the fact there are more registers in 64-bit mode, as M$ screwed up with the 64-bit design and can still require data to be pushed onto the stack when making API calls (when more than 4 parameters need to be passed). When calling your own functions though you can make use of all the registers available making a big difference to performance. stdcall (typical in 32-bit on MS systems): http://en.wikipedia.org/wiki/Stdcall#stdcall fastcall (typical in 64-bit on MS systems): http://en.wikipedia.org/wiki/Fastcall#Microsoft_x64_calling_convention The #1 reason I love assembler:
They failed to actually assign any value to k in the example, so it is actually undefined, and is bad coding practise. The C++ code above, if coded directly in assembler would be:
By only using the registers to pass variables, I got code that takes 16 cycles to execute down to 12 cycles. I can reduce it to 1 cycle by inlining the function (93% faster). Overall their example is pretty poor. Using pure assembler to prove the point is better.
You'll note I didn't need to mess with the base pointer, and in fact I could actually use it in my functions if I was careful, but no API calls could be made otherwise Windows would go nuts. In 64-bit code:
No advantage, unless MessageBox is 64-bit and is faster than its 32-bit counterpart, but I also have to trash a register in the process to move more than 4 bytes in a signle instruction (if this was real code it would be hand optimized to move only 4 bytes to memory directly and leave the register intact). In fact, I suspect little of Windows is actually any different, except for the memory manager and kernel. There is no seperate 64-bit API, and all the calls, even from 64-bit apps, are using the Win32 APIs. The only code that could be fully 64-bit are those written from scratch to use all the processor features available in 64-bit and avoid Windows functions as much as possible, especially in speed critical regions. Best regards, Vulcan. |
||||
Marmite
Chief Pilot Joined: 11 Apr 2008 Points: 1029 |
Post Options
Thanks(0)
|
|||
All that was needed...
|
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
That wouldn't explain the difference sufficiently.
My 32-bit and 64-bit code examples demonstrate very nicely that where Windows is concerned, there is practically no difference between the two, and that the only time 64-bit can be made to show its benefits is in code where it is part of the design, and not used retrospectively. Best regards, Vulcan. |
||||
Marmite
Chief Pilot Joined: 11 Apr 2008 Points: 1029 |
Post Options
Thanks(0)
|
|||
But that has nothing to do with the OP
|
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
Well kinda. Addressing memory is just a small part of what 64-bit offers. It is all to do with the processor. The memory is just an aside, but the thing everyone jumps on for two reasons:
1) It takes very little to understand it 2) it is about the only advantage to most people. 32-bit is still perfectly adequate. XP forever! Best regards, Vulcan. |
||||
Magic Man
Chief Pilot Joined: 02 Apr 2008 Location: South Wales Points: 5336 |
Post Options
Thanks(0)
|
|||
|
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
You can sit there and laugh, but these optimizations are why *nix and OSX are typically 6 to 10 times faster than Windows, independent of the word-size of the data.
I suggest you know nothing about high performance computing - quite a world away from mundane and often bloated websites. You never did offer a reason to why Explorer.exe on Win 7 keeps locking .exe files whilst browsing folders, preventing them being overwritten or deleted for approximately 2 minutes after the last access, or providing a fix to prevent it. To re-cap: it is like the file is protected, dissimilar in behavior to not having permission to overwrite or delete the file where you get the categoric "You do not have permission to perform this action" message box. Best regards, Vulcan. |
||||
Magic Man
Chief Pilot Joined: 02 Apr 2008 Location: South Wales Points: 5336 |
Post Options
Thanks(0)
|
|||
Sorry? you having one of your wild moments again?
Ha!, what's up with you now? I was laughing at Marmites comment which basically aluded to the fact that, as others have hinted at before, you seem to relish posting pages of stuff to somehow 'prove' your superiority when you know nobody else here realy cares about it, when a simple answer, as Marmite hinted at, would sufice.
Please 'mate', don't take the high horse here, I, in no way, claim to be an expert. What does "high performance computing" even mean? And then to stick your nose even higher in the air and try and insinuate (again) that you are better than me because you see my job as in some way less challenging than yours...? What a pompous arse.
What? You've lost it now. The reason why? I don't know, I don't care. Nobody here does. Ask Microsoft.
Please, don't go down the road again of trying to prove your superiority, you know what has happened in the past, you ended up looking like a tool. I think we both know you have some issues with the fine lines between bumping up a secret online image of oneself online, plain fantasy and the cold hard truth... Don't make a fool of yourself.
No doubt you'll come back with even more tosh but a simple search of your posts and their conclusions will lead anyone to the same thoughts... I'll leave it here.
Edited to add 'pompous'...
|
||||
dale_tem
First Officer Joined: 03 Nov 2009 Location: Berkshire, UK Points: 352 |
Post Options
Thanks(0)
|
|||
My word Vulcan, you are anal about computers aren't you?
I always reply to the question in the same style as it was posted. A generalised comment about 64 bit was replied with another general comment about 64 bit. Not OTT indepth information about 64 bit that only a few people even in computing care about.
|
||||
Dale
|
||||
MartinW
Moderator in Command Joined: 31 Mar 2008 Location: United Kingdom Points: 26722 |
Post Options
Thanks(0)
|
|||
Sorry? you having one of your wild moments again?
Did you mean wild or weird? He has those all the time, the occurrences that are out of the ordinary are the ones we would perceive as normal behavior.
I'm afraid our pal Pointy loves to blow his own trumpet and impress us with his ''coding'', or anything for that matter. Usually his activities have the opposite effect though.
|
||||
VulcanB2
Chief Pilot Joined: 02 Apr 2008 Points: 13365 |
Post Options
Thanks(0)
|
|||
I'm not trying to impress anyone - I couldn't give a stuff, not to mention the time it takes to write the damn thing. As it was I edited it several times to correct minor coding errors as I hadn't actually built and tested it first.
I was trying to explain exactly what 64-bit really means, but that in reality few people will ever use what is available, and demonstrated with an example. Anyone who is a half-reasonable software engineer would know what I wrote - it's not rocket science, but is the best way to truly explain the details. If you don't care - fine, but who knows who else is reading who might? I read stuff in forums all the time that is not directly related to the topic at hand, but maybe just adds a piece to the jigsaw I've been looking for, for something else.
Anal? I think the word you are looking for is "geek". I started coding when I was 4, and been doing it ever since. I usually "reply to the question in the same style as it was posted" but this subject has come up a few times, and people think it is just about the memory. It's not, and that is what I was trying to explain. If people gave a rats arse about details once in a while, things may be in a better state than they are. Soaranden is obviously interested as he raised the point about the amount of RAM available in 64-bit in the first place. I'm just filling in the picture. Do with the information as you please, but don't insult me for providing it.
HPC (actually High Performance Technical Computing) is the art of writing extremely high performance code for engineering tasks, such as computational fluid dynamics, simulation, etc.. It is written in such a way to use the system to its optimum, taking advantage of the architecture of the system being used. It is the ultimate software design challenge, and is the basis of clustered computing and distributed computing for solving very complex problems (such a prime number factorization to brute-force RSA crypto, and simulation of nuclear weapons tests for example). Best regards, Vulcan. |
||||
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |