Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyinSoftware"
From: Eric Grange (egrangeNO_at_SPAMglscene.org)
Date: 01/09/05
- Previous message: John Kaster (Borland): "Re: Status of the D2005 Personal/Standard version?"
- In reply to: Charles McAllister: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyin Software""
- Next in thread: John Herbster: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyinSoftware""
- Reply: John Herbster: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyinSoftware""
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 09 Jan 2005 09:15:43 +0100
> forgive me sometimes i think out loud. but let me see if i come come up
> with some examples where i think a compiler could actually help. for
> instance, if there is a case where a calculation is dealing solely with
> local vars; and const params...
That's exactly a case where the compiler can't go very far at all,
because the coding language you used for
> for Index := 1 to AParam1 do
> Result := Result + AParam2;
is explicitly sequential, parallelizing this automatically even in
this dumb case is already very hard.
Of course you could consider threading the whole call a progress,
but that will not help you much further than for dual-CPU situations,
and then only if all your threadable calls are made of short functions.
On quad or octo, there just won't be enough non-dependant calls to
reap x4 or x8 speedups.
> of course you'd get better results by writing thread and synch code
> yourself, but 1) it wouldn't look pretty and 2) you might make a mistake
> in writing all that extra code. (much like pros/cons of writing ASM code)
3) it would useless if you have more than 2 CPUs
Concurrency isn't just for 2 CPUs, to be efficient, you need to spawn as many
threads as you have CPUs.
PS3 and XBOX2 hardware is already expected to enter the realm of quad and octo
processors, Desktop PCs will have them in 2-3 years, and in ten years, 16, 32
and more CPUs may not be rarities (some 256 CPUs chips already exist for networking
hardware, and they aren't much more expensive than a P4). But what's worse is that
you'll have more CPUs, but each of them will probably be individually slower than
the CPUs we have today, making concurrency a necessity if you don't want your
performance to go down (as is already the case for dual-core CPUs).
For such hardware, multithreading as we know it just isn't a solution, wether
manually coded or automatically guessed from explicitly-sequential code.
There will be need for wholly different programming languages IMHO,
where the developper will more or less be *forced* to be explicitly parallel,
in the same way current languages *force* explicitly sequential bits of code.
Eric
- Previous message: John Kaster (Borland): "Re: Status of the D2005 Personal/Standard version?"
- In reply to: Charles McAllister: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyin Software""
- Next in thread: John Herbster: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyinSoftware""
- Reply: John Herbster: "Re: Nice article: "The Free Lunch is Over: A Fundamental Turn TowardConcurrencyinSoftware""
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|