[fpc-devel] Parallel Computing

Daniël Mantione daniel.mantione at freepascal.org
Mon Nov 3 21:37:29 CET 2008

Op Mon, 3 Nov 2008, schreef Peter Popov:

> Unfortunately, the utility of multicore systems has been largely exagerated 
> by their manufacturers. The main problem is that multiple cores share the 
> same memory bandwith. As a result it is highly unlikely that one can have 
> COMPLEX programs running in a concurrent way in a multicore system without 
> clogging the memory bus and using up all the cache. Multiple cores are 
> usefull if there is little memory transfer (does not happen often, except of 
> course if you compute fractals), or if memory transfer is done in a 
> predictable fashion. About the only example of the later is linear algebra 
> subroutines (scientific computing) and certain multimedia applications 
> (concurrent MPEG decoders, for example).

Actually I disagree with this, it overexagerates in the other direction. 
There are plenty of applications who can use hundreds of cores, so 4 or 8 
should not be a problem. Parallelizing is a much more sane way of scaling 
performance than going for more GHz.

Regarding memory bandwidth, remember that NUMA systems like the Opteron 
architecture get more memory bandwidth the more sockets there are.

However, as you point out there is no free lunch, parallelization of 
software is complex.


More information about the fpc-devel mailing list