Automatic CPU Affinity Switcher for XP/Vista

Hi there. I would like to see a program that intercepts program requests and assigns them to different cpus. I try doing this manually and it helps improves performance of the computer system by a long way. It would be good if it optimized itself depending on how many cpus that it finds and senses whether a program is multiple core optimized, then it just assigns the program that number of cores. I hope this thread makes sense and I don't know easy it is to do this, but optimizing multi-core computers would be brilliant!

Thanks for your reply, but I mean more just shifting multiple single-core applications to different cores so that the task load is spread more efficiently. Would that be possible as a system tray application?

Dunno if it is what original author wanted, but I suspect scenarios where we would like certain applications run on specific cores, one, two, many. Criteria for automatic switching are hard to define, besides, this would mean kinda rewriting kernel scheduler.

In my opinion a nice feature would be to automatically switch certain applications to specific cores. For example, I run two Folding@Home clients, one for GPU and one for CPU. While running both of them on dual cores causes GPU client to starve on data bandwidth, splitting them to separate cores works like a charm.

...but doesn't OS allow us to do this from command line (even if I don't know how) ? The only improvement could be a tray app that would sit in the background and do it automatically for any app we want to control