Why a demanding proccess doesn’t use another core?

Posted on

QUESTION :

I’ve got an older Core i5 laptop and I play Dota 2 game sometimes. It’s pretty demanding for my processor. But when I quit the game and look in system resources graph (in Taks Manager) and see constant 50% processor usage.

Why this demanding process doesn’t run on another core with no usage?

Thank you.

ANSWER :

Even though multi-core processors have existed for awhile now, a lot of applications aren’t written to take advantage of SMP (Symmetric Multiprocessing). This is likely due to the complexity introduced when trying to take advantage of SMP, both in design and debugging. Wikipedia explains:

… a multi-core architecture is of little benefit for the application [when a] single thread [does] all the heavy lifting, [or when it is unable] to balance the work evenly across multiple cores.

Programming truly multithreaded code often requires complex coordination of threads and can easily introduce subtle and difficult-to-find bugs due to the interweaving of processing on data shared between threads (thread-safety). Consequently, such code is much more difficult to debug than single-threaded code when it breaks.

Dota 2, like a lot of games, appears to be one of those applications that doesn’t take advantage of SMP.

Are you seeing 50% processor usage on a single core? On Windows, you can set something called the affinity which, if set, tells Windows to keep a process on one or specific cores. Perhaps one or more of your processes running have this set.

Leave a Reply

Your email address will not be published.