[plug] SMP

Marc Wiriadisastra marc-w at smlintl.com.au
Fri Oct 1 13:21:59 WST 2004


Craig Ringer wrote:
> 1On Fri, 2004-10-01 at 12:23, Garry wrote:
> 
>>>SMP stands for symmetrical multi processing I think.
>>
>>Correct
> 
> 
>>>It basically /makes/ your computer able to process multiple jobs by 
>>>/splitting/ the cpu.  Obviously I'm getting this info from what I 
>>
>>No, it allows the operating system to _be_able_ to use multiple physical 
>>processors.
>>
>>I have heard SMP mentioned in the same breath as hyperthreadng cpus, but 
>>haven't looked into the connection.
> 
> 
> Hyperthreading is otherwise known as SMT. It lets a single core pretend
> to be multiple processors with multiple execution pipelines. My
> understanding is that the core can't actually do two things at once.
> Rather, it interleaves two jobs to offset the penalty when one of them
> does something "expensive" that causes it to have to have to wait (say,
> for main memory access) and not use the execution units.
> 
> It's also arguably only needed for the P4 because only the P4 pays such
> appalling penalties for cache misses and branch mis-predictions. Of
> course, that's just my understanding from my reading over time and could
> be wildly inaccurate.
> 
> If you want to process multiple jobs truly simultaneously, get a
> multi-CPU system or multi-core processor. Most people _really_ don't
> need one, but having one is awfully nice when compiling things and when
> trying to work on a heavily loaded system.
> 
> For the rest of us ... well, the kernel does a pretty darn good job of
> scheduling access to the CPU so that programs can pretend for most
> purposes that they're on their own CPU rather than sharing it with
> several other programs. An SMP kernel is not required for this and may
> be somewhat harmful if you only have a single CPU, non-SMT system
> because of the locking overhead. No forced 'splitting' is required - the
> kernel simply switches programs' access to the CPU around so rapidly
> that they may as well be running at the same time for all that it
> matters.


In order to /improve/ scheduling you can use a program called schedutils 
which lets it pretend further that tasks can be /assigned/ to separate 
virtual cpu's

http://tech9.net/rml/schedutils/

Thats the packages there most linux os's have it in the kernel now as 
well or so I have /heard/




More information about the plug mailing list