From: Casey Hawthorne on
Running Windows or Ubuntu on a multi-core CPU is there a way to get
the O/S to use only 2 of the CPU's so that the other 2/4/6 CPU's are
"free" for programs; in the sense that those CPU's would have much
less context switching and hence be more cache-friendly and
pipeline-friendly?
--
Regards,
Casey
From: Joe Pfeiffer on
Casey Hawthorne <caseyhHAMMER_TIME(a)istar.ca> writes:

> Running Windows or Ubuntu on a multi-core CPU is there a way to get
> the O/S to use only 2 of the CPU's so that the other 2/4/6 CPU's are
> "free" for programs; in the sense that those CPU's would have much
> less context switching and hence be more cache-friendly and
> pipeline-friendly?

Cache-friendly, anyway. Once you're doing context switching, resuming
on one core vs. another doesn't really matter.

The Linux scheduler assigns a cost to moving a process from one core to
another, for exactly the reason you suggest. Result: processes tend to
stick to one core unless load-balancing outweighs that preference.
--
As we enjoy great advantages from the inventions of others, we should
be glad of an opportunity to serve others by any invention of ours;
and this we should do freely and generously. (Benjamin Franklin)
From: George Neuner on
On Sun, 08 Aug 2010 19:42:05 -0700, Casey Hawthorne
<caseyhHAMMER_TIME(a)istar.ca> wrote:

>Running Windows or Ubuntu on a multi-core CPU is there a way to get
>the O/S to use only 2 of the CPU's so that the other 2/4/6 CPU's are
>"free" for programs; in the sense that those CPU's would have much
>less context switching and hence be more cache-friendly and
>pipeline-friendly?

Generally no. Both Windows and Linux allow you to force a program to
a particular subset of available CPUs, but the operating system itself
will do whatever it pleases.

As a user you have no control over the kernel, device drivers and on
Windows, services loaded by svchost. Basically if you don't see the
task listed in "ps -a" list on Linux or in Windows Program Manager,
you can't affect it.

George