Re: processors of the future: super-computer-on-a-chip?



Chris Thomasson wrote:
The following will be wrapped around the basic theme:

"in the year 20XX"


Okay... With the recent topic of how multithreading will interact with mega/giga/tera-core chips presented by Barry Kelly in "The Problem with Threads" discussion over in c.p.t.

http://groups.google.com/group/comp.programming.threads/msg/4416cc8e32fdf169?hl=en

http://groups.google.com/group/comp.programming.threads/browse_frm/thread/b192c5ffe9b47926/5301d091247a4b16?hl=en#5301d091247a4b16


as a programmer that makes frequent use of advanced thread synchronization techniques; I decided to ask the following questions to this group:




" How many cores do you think a chip could have, lets say 10 or 20+ years from now? "

Well, only partially playing devil's advocate here, I'll counter with the question:

"Who cares?"

I was glad to see that the Ed (A.) Lee who wrote the article referred to over at c.p.t. apparently wasn't the same Ed (K.) Lee whose contributions I've come to respect over the years. To me, the question of how to handle zillions of cores puts the cart before the horse: rather, I'd ask why most people would want such chips rather than simply assume that because it may be possible to build them well, then, clearly we must and also are obliged to come with ways to use them (at least beyond the ways we *already* know how to, as in the embarrassingly parallel applications noted there).

Just because it's become harder to improve single-thread performance doesn't mean that it's no longer useful to and that taking the path of least hardware resistance (by ignoring single-thread performance increases in favor of burgeoning core counts) is The Right Thing To Do. In fact, one could argue that because single-threaded operation characterizes such a large percentage of today's applications, and because software has historically changed so slowly compared with hardware, then there's relatively little reason to push multiple cores per chip beyond *at most* a few dozen for the immediate future while continuing to devote significant concentration to improving single-thread performance too.

IBM (nobody's fool these past few years) certainly doesn't seem to be relegating single-threaded performance to the back seat of its POWER architecture: instead, after pioneering dual-core products 5 years ago it has been steadily improving their single-threaded performance (with only one additional nod to multi-threading in its SMT facilities which, perhaps not coincidentally, likely offer some single-thread performance advantages as well to threads with sufficient ILP). And only Sun has introduced a product which has *conspicuously* traded off single-thread for multi-core performance (a product which Sun itself agrees is suitable only for certain niches rather than being really general-purpose).

Sure, there will be a few applications that could make really good use of huge numbers of slower cores, but will they fund the associated development sufficiently to overcome the resources available to develop commodity products (always the lament of anything special-purpose these days)? And for that matter aren't there any better uses we can come up with for chip area?

Maybe in a decade or more some real application shift in this direction will at least *start* to occur, but I don't expect it nearly as soon as it becomes *possible* to build such cores, so I don't find it particularly interesting save as an intellectual exercise for now. Until we can at least come up with ways for software to use such hypothetical hardware to solve some respectable range of problems far better than they can be solved using obvious extensions to today's mechanisms, it seems uncomfortably close to debating how many angels can dance on the head of a pin.

- bill
.