Ubuntu – How to assign different CPU cores to different processes

cpumulti-coreserver

I'm using Ubuntu Server Edition 11.10 and I have two extremely CPU intensive programs running on the same core. Neither of these processes were programmed for multi-core processing. Is there a way I can tell process A to run on Core 1 and process B to run on Core 2?

Best Answer

The accepted answer may be good advice, but it certainly isn't an answer to your question. Your question doesn't indicate to me that you aren't qualified to hear the answer either, in fact it sounds like a good example of a situation in which you'd want to specifically indicate which processors should do what.

Getting to the point, what you want are CPU Sets. They are supported in 11.10 of Ubuntu, since it uses a recent enough Linux Kernel. I believe Linux 2.6 is required.

You can read the man page for cpuset here: http://www.kernel.org/doc/man-pages/online/pages/man7/cpuset.7.html

Here is another page for general reading: http://www.bullopensource.org/cpuset/

Linux may be "great" at deciding how to allocate CPU time, but it isn't perfect.

Related Question