Re: Automatic parallelization - was Re: LISP Object Oriented?
- From: Paul Wallich <pw@xxxxxxxxx>
- Date: Wed, 31 Jan 2007 14:59:54 -0500
Tim Bradshaw wrote:
On Jan 30, 5:59 pm, Paul Wallich <p...@xxxxxxxxx> wrote:
The big question is whether inefficient use of cores is a bad thing.
It's a bad thing because it's making poor use of expensive silicon.
The only valid (as opposed to marketing) reason to out more cores on a
chip is that it is (or is hoped to be) the best way of getting more
performance out of the resources (silicon in other words) available.
If the cores are starving for memory then a better use of the
resources would be to deal with that problem.
If you can. Once you get off-chip, the cost of increasing memory bandwidth can make the cost of putting another few cores on the die look like small change. So the question is whether a bit more cache is gong to do you better than more cores, and that's (imo) a tradeoff that should be looked at. If more cores or more functional units will buy you more speed, even though not as much more as you'd like, you may still be happy.
(I may have misspoken when I said "inefficient use of cores" -- by definition, inefficiency is worse than efficiency, but in many cases partial utilization of resources is going to be the best you can do. See, for example, the terrible inefficiency of RAM chips, where only a few transistors out of millions are doing anything useful on a given clock cycle.)
(This is similar to the reason why processors typically don't
speculatively execute both sides of a branch: the maximum possible
utilization of that is 50%, so it's generally better to predict and
then speculatively execute the branch you predict to be taken, which
can do much better than 50% on typical code.)
Absolutely. Then take the example someone gave of striping certain loops across cores rather than unrolling them -- the prolog and postlog sequences will almost certainly involve less-efficient utilization of cores than a single-core loop, but you'll still be getting better speed.
In the short run (if things can be properly handled) it seems that the kindness of strangers should (ha!) keep multiple cores occupied fairly well (currently 76 processes visible on this machine, albeit not all simultaneously contending for CPU). But in the longer run, yeah, we're going to need different notations and ways of handling parallelism at many different levels of granularity (duh!)
And applications that are computation-intensive but not embarassingly parallel will probably be socially ostracized.
paul
.
- References:
- Automatic parallelization - was Re: LISP Object Oriented?
- From: George Neuner
- Re: Automatic parallelization - was Re: LISP Object Oriented?
- From: Marcus Breiing
- Re: Automatic parallelization - was Re: LISP Object Oriented?
- From: John Thingstad
- Re: Automatic parallelization - was Re: LISP Object Oriented?
- From: Paul Wallich
- Re: Automatic parallelization - was Re: LISP Object Oriented?
- From: Tim Bradshaw
- Automatic parallelization - was Re: LISP Object Oriented?
- Prev by Date: Re: All Your GUIs Are Belong to Us (Die, McCLIM! Die!!)
- Next by Date: Re: Automatic parallelization - was Re: LISP Object Oriented?
- Previous by thread: Re: Automatic parallelization - was Re: LISP Object Oriented?
- Next by thread: Re: Automatic parallelization - was Re: LISP Object Oriented?
- Index(es):
Relevant Pages
|