Is it possible to influence the way CPUs are enumerated under Linux?

Solution 1:

Wut?!?

This is crazy, you know? It's unsupported and likely not good for your hardware. You should be using equally-spec'd processors in your server.

I suppose you couple simply execute your application in a cgroup or shield (or via taskset) that only contains the CPU cores you wish to use. You can also pin memory access to that CPU with numactl. But really, why wouldn't you either remove the slower CPU entirely or pay what it takes to bring the system into spec.

Maybe the obvious thing, if your application is hardcoded to use CPU0-CPU3, is to physically swap the sockets... but really, just run with one CPU here.

If you're referring to ProLiant DL380 G7 hardware, your "faster" CPU is likely a Nehalem 5500-series proc, with the slower hex-core CPU being a Westmere. Have you benchmarked at all? Which specific CPUs are installed?

Edit:

Okay, so these are at least CPUs of the same generation/stepping. But it's still a bad idea... The difference in CPU spec isn't even that great (versus something like an Intel X5690 at 3.47GHz).