A quick note first: I ask this question out of pure morbid curiosity and not because I need an answer ;)
As far as I know Linux supports up to 4096 processors on a single computer. As multiprocessor systems are becoming more and more mainstream I am a bit curious to how many cores can be run with near 100% utilization of each single CPU.
Assuming that the task scheduler run on a single processor (core) how many tasks per CPU can it typically handle before the task scheduling itself will require so much CPU time that one CPU is "lost" because it is busy managing tasks?
Assuming that the task scheduler spawns copies of itself on several CPU's if required when will typically inter process communication become a bottleneck so that the CPU's are more busy talking to each other than scheduling tasks. E.g. when are a CPU "lost" because it is using all it's time in communicating with another CPU?
So for example on a machine with 2048 CPU's - how many CPU's will typically be useless for anything but scheduling?
The question I am basically asking is how many CPU's would be practical/efficient/beneficial/give the best bang for buck on a Linux system regardless of how many CPU's that are in fact supported by the kernel? (assuming no special software for clustering is used to segment the workload).