I've been ranting on about this for years, always falls under deaf ears or mockery.. Software developers are ripping people off!.. none more so than Microsoft themselves (I'm aware that this is not a complete revelation to most people here). But to further my point, MMX has been around for well over 10 years now, and how many softare applications use MMX opt codes?.. very very few, even games which benifit greatly from MMX don't use it.. the old excuse "to support older cpu's" no longer stands, most people own a computer with a CPU over 1Ghz, most CPU's above that frequency supports SSE, even at that, the excuse is pathetic and flawed, you can write software to check supported instruction sets when it loads and enable opt code optimised algortyhims.
Also, symetrical multi-processing platforms have been around as long as MMX itself, I've been ranting that developers need to write software to leverage threading properly for a longgg time, again people say "why bother?.. most people only have a 1 cpu system"... only conviently forgetting Xeon workstations/servers and P4 HTT because of their AMD's uniprocessor or nothing stance.. Now with the event of Dual-Core CPU's, the term 'I told you so', just doesn't express how right I was.
So, currently CPU's stand like this:
SMP/Dual-core/HTT support: virtually none, very little software exists that properly distributes heavy processing loads evenly across CPUs via use of threading mechanisms.
x86_64 support: linux and gcc supports it, not 100% stable, lots of multimedia apps compiled under linux for amd64 fails or breaks, mileage varies greatly between configs. Windows XP x64 is released but virtually no software exists to use it.
SIMD Instruction sets (MMX, 3DNOW, SSE, etc): little software properly leverages SIMD opt codes to increase performance for mathmatically intensive software, instead relying on the compilers default FPU math, I was curious about the difference myself, and SSE3 managed to do mathmatical calculations on average 3 times faster than the FPU on my 3.2Ghz Intel P4E.. that is no small margn my friends, that's significant performance loss. And for all you AMD advocets out there yelling "thats why Intel sucks".. SSE on AMD CPU's are still faster than AMD's superior FPU.. however when compairing AMD and Intel's top end CPU's and having them do math with SSE, Intel comes out top.
So software developers need to:
1) stop releasing bloated FPU only binaries, control memory allocation, stop trying to make your program do 1000000 things at once, make it do its 1 specific job, and do it RIGHT, feature freeze to focus on fixing bugs once and awhile!
2) put the app into sleep if it has no work to do while waiting on messages.
* if the program at any time hits 99%+ CPU usage:
3) read up on threads, Intel and MSDN has plenty of documentation on it.. share workload between worker threads efficentively and evenly.
4) include SIMD opt codes, this will make a BIGGG difference to the performance of the application.
If software developers continue to fail to utilise CPU's and their acompanied architecture properly then we're just getting ripped off being forced to throw more money into RAM and CPU upgrades on an annual basis.
</rant>
If anyone has any comments, feel free to make them. I want to hear people's thoughts on the subject.