>Yes, indeed, but I also think that there are
>computationally heavy problems that are more easily
>parallelizable and that that is the logical course of
>action
But there is a problem here. Some apps would benefit hugely from dual or quad cores, others not at all. Would you be willing to accept a performance drop beyond even todays CPU's for those problems/apps that are (nearly) not parallizable ? I'm sure that depends on what apps, but even today, precious few people would prefer a dual 1.2 Ghz machine over a single 2 Ghz one, even if cost wasnt the issue. Few apps would benefit either, so if you are to compromise single threaded performance to enable multicore, its going to be a tough sell.
Case in point, I expect (but could obviously be wrong), multicore Dothan deratives will be slower in single threaded than single core P4/K8's, while faster (probably MUCH faster) in multithreaded apps. I think A64/Opteron holds better cards there, as I assume its the same core, so if they do not have to reduce clockfrequency (for power issues), there is no reason to assume a multicore K8 (K9) would be slower on single threaded apps.
>Maybe they'll enhance the interprocessor communication to a
>point where it all gets much smoother
I think Opteron with its HTT and ODMC is already a huge leap forward in this regard. It really hardly matters wether you are designing a single cpu board or a 8 way board, its about as easy. Sun is also working hard on this, both with their upcoming "thoughput computing" chips, and their "wireless" chipinterconnect. Imagine opteron ever getting that, no need for complex motherboards, not even traces for HTT, just put the chips next to each other to communicate at chipspeed. That would be as good as it gets really.
>and compilers so perfectly tuned for them that
>parallelization would require less effort
I'm sceptical on this, very sceptical. If you see how hard it already was to let compilers vectorize simple loops for SSE2,... multithreading is a completely different league of difficulty, its really not something a compiler could ever do IMHO. You'd have better chance of making this easier by using development tools or even languages that are better suited for that sort of development, but the bulk of the difficulty will still be upon the developper, and their skills are harder to upgrade than a cpu
= The views stated herein are my personal views, and not necessarily the views of my wife. =