Why do you need to know about each processor in particular?

I am curious to understand what might be the motivation behind the finer details of each virtual processor that Windows 8 Task Manager focuses on.

Here's a screenshot (from here ):

                Windows 8 task manager

I know this setup can only exist in a non-standard, expensive, critical server environment (1TB RAM!), But what is the use of a heatmap? Or, setting the processor affinity:

        processor affinity

What I'm asking depends on what the developer will care if a particular processor X is used more than processor Y (instead of just knowing that one multi-threaded process is maximizing the core, which would be better shown as a flow sheet. instead of a CPU heatmap) or worrying about whether a process will use a particular CPU (which I can't expect a human to guess better than an auto-balancing algorithm)?

+3


source to share


3 answers


Most of the time it doesn't matter, and a heatmap does nothing more than look cool.

However, large servers are different. Some processors have NUMA or Non-Uniform Memory Access architecture. In these cases, some processor cores can access some pieces of memory faster than other cores. In these cases, it may be helpful to adjust the process affinity to keep the process on kernels with faster memory access. Also, if the processor has caches for each core (as many do), there can be a performance cost if a thread has to hop from one core to another. Windows Scheduler should work well avoiding switches like this, but I could imagine some weird workloads you might need to get it to work.



These options can also be useful if you want to limit the number of cores used by an application (say so that other cores are free for another dedicated task). It can also be useful if you are doing a stress test and are trying to determine if you have a bad CPU core. It could also handle BIOS / firmware bugs like high performance timer bugs from years ago due to many multi-core processors.

+3


source


I can't give you a good use case for this heatmap (other than it looks amazing), but I can tell you a sad story about how we used CPU attachment to fix something. We automated some older version of MS Office to do batch processing of Word documents, and sometimes Word interrupted from time to time. After some time of troubleshooting and desperation, we tried to establish the proximity of the Word process to the same processor in order to reduce concurrency and therefore reduce the likelihood of race conditions. It worked. Word stopped crashing.



+2


source


One possible scenario could be a server running multiple virtual machines, where each customer pays to access their virtual machine.

The administrator can set the processor affinity so that each VM has guaranteed access to X number of cores (and will charge the client accordingly).

Now, suppose an administrator notices that the kernels assigned to the ABC Company Inc. virtual machines are being registered to the heatmap. It would be a great opportunity for ABC Company Inc to take off and make them pay for more cores.

Both the administrator and ABC Company Inc win - the administrator makes more money, and ABC Company Inc performs better.

In this way, the heatmap can function as a decision support system that helps the ABC Company decide that their needs deserve more cores and helps the administrator better target their ads to their customers who can benefit.

+1


source







All Articles