[Python-ideas] Type Hinting - Performance booster ?
Steven D'Aprano
steve at pearwood.info
Sat Dec 27 03:43:03 CET 2014
On Sat, Dec 27, 2014 at 01:54:02AM +0000, Sturla Molden wrote:
> Antoine Pitrou <solipsis at pitrou.net> wrote:
>
> > I don't see how that's optimistic. Most workloads are intrinsically
> > serial, not parallel.
>
> Computer graphics is intrinsically data-parallel, hence the GPU. A computer
> with a 128 core CPU would have no use for a GPU.
Or, to put it another way, a computer with a GPU has no need for a 128
core CPU.
I think it is more likely that general purpose desktop computers will
start using GPUs than that they will start using 100+ core CPUs.
Apart from graphics, and some "embarrassingly parallel" tasks, most
tasks are inherently serial. E.g. it takes 9 months to make a baby, you
can't do it in 1 month by using 9 women or 100 chickens.
Even those which aren't inherently serial usually have some serial
components, and Amadahl's Law puts an upper bound on how much of a
performance increase you can get by parallising it:
http://en.wikipedia.org/wiki/Amdahl's_law
I expect that the number of cores used by general purpose desktops will
increase very slowly. It makes sense for servers to use as many cores as
possible, since they typically run many CPU-bound tasks in parallel, but
that doesn't apply so much to desktops and it certainly doesn't apply to
wearable computers. The idea of a wearable computer using a
general-purpose CPU with 100 cores strikes me as sheer fantasy: most of
the cores will be idling all of the time, the effect on battery life
will be terrible, and the heat generated prohibitive.
TL;DR I expect that two or four cores will remain standard for desktop
computers for a long time, and one core machines will still be around
for a while. Massively parallel computing will remain niche, the GIL is
not really the bottleneck some people think it is, and when it is a
bottleneck, existing ways of working around it are still very effective.
--
Steven
More information about the Python-ideas
mailing list