[fpc-pascal] number of cpu cores

Jonas Maebe jonas.maebe at elis.ugent.be
Sun Nov 30 18:28:53 CET 2008


On 30 Nov 2008, at 18:15, Florian Klaempfl wrote:

> Mattias Gaertner schrieb:
>> I need a default value of the number of maximum threads.
>> Is there already some RTL function that can be used for that?
>>
>> For example if the program runs on a 2 x quad core it would be nice  
>> to
>> get 8.
>> Hyperthreading multipliers should be applied.
>
> If we implement something like this, I propose we do it properly.  
> There
> are different numbers important:
> - numa nodes
> - physical cpus
> - cache sharing cores
> - logical/execution unit sharing cores

- Completely different kinds of cores, e.g., on the Cell you have a  
"hyper-threaded" ppc64 and 6 to 8 available SPU vector processors.
- And then there's stuff like CUDA (and its Open* variant) coming up,  
of course.

> Which one are considered important?

I personally don't think it's possible to generally deal with this at  
the application level, there's too much variety and complexity. It's  
also only going to get worse in the future, as reconfigurable  
computing is a very hot topic. And so are heterogenous multicores, and  
not just the Cell way; e.g. different cores implementing the same ISA,  
but with different pipeline and functional unit designs so they are  
all better suited at different kinds of tasks/threads (and simulations  
indicate that such designs give much better overall power/performance  
than the current crop of homogeneous multi-core desktop & server cpus  
if you use some fairly simple performance counter based heuristics in  
your scheduler).


Jonas



More information about the fpc-pascal mailing list