Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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).

share|improve this question
It is obvious that I was not able to make my point. What I am (trying) to ask is basically when will the overhead of the task scheduler be so large that one CPU is just calculating the schedule. What decides the overhead of the scheduler the number of tasks or the number of CPU's. – Waxhead Dec 6 '11 at 23:10

closed as not a real question by techie007, haimg, DragonLord, Wuffers, Sathya Dec 6 '11 at 13:08

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.

2 Answers

The answer is entirely dependent on the software you are running and how well that software lends itself to parallelism.

Many of the world's super computers run on Linux (source). Since software that runs on supercomputers is always designed to take advantage of parallelism, super computers benefit quite a bit from additional CPUs. On the other hand, if you plan to run software that is not designed to run in parallel, either because it was designed poorly or because the task it is designed to perform is inherently serial, then you will see little benefit from additional CPUs.

share|improve this answer

There are some benchmarks about how the performance scales when using a different number of threads (on single cpu computers). It really depends on which software you run.

As for what happens with many many cores, see what google says. There are some interesting answers, like this PDF.

As you can see, there isn't one answer. Performance really depends on what sofware you run on which hardware and on how well it's designed to use most of the computing power.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.