J
jchang61
Guest
I have notice certain tasks are horribly slow, including OS patches. In general, these are single thread apps, or does most of the work on a single thread. Task Manager will typically show a steady CPU utilization, example: 12.5% on an 8-logical processor system. When charting individual CPUs, the work bounces from one to another, not staying long.
By setting process affinity to a single CPU (core), it does seem the process runs better (than a glacial pace).
The nature of modern processors is that code run great if it has high L1/L2 cache hit, because these are local to the core. When a single threaded process bounces between cores, it loses the contents of L1/L2. (Intra-socket) Inter-core L3 is not horrible, but not great either. If a process bounces between cores on different socket, then you may as well go home
What is standard policy?
of course, if some process needs a lot of time on a single core, then we don't want a second process to also want time on that core, but it should still pick a less busy core and stay on it.
jchang
Continue reading...
By setting process affinity to a single CPU (core), it does seem the process runs better (than a glacial pace).
The nature of modern processors is that code run great if it has high L1/L2 cache hit, because these are local to the core. When a single threaded process bounces between cores, it loses the contents of L1/L2. (Intra-socket) Inter-core L3 is not horrible, but not great either. If a process bounces between cores on different socket, then you may as well go home
What is standard policy?
of course, if some process needs a lot of time on a single core, then we don't want a second process to also want time on that core, but it should still pick a less busy core and stay on it.
jchang
Continue reading...