Only multithreaded processes can make use of multiple cores at once. In
Windows, a 'process' defines the memory address space. It is 'threads' that
run on a given core/processor within a 'process'. A single-threaded
application can only run on a single processor at a time. Which
processor/core to assign is typically left up to the OS scheduler.
Also, while some older programs were written as 'multithreaded'
applications, they were never tested on true multi-processor systems and
therefore don't actually work correctly in situations where they are running
multiple threads simultaneously. These programs are typically fixed by
setting up a 'shim' through the Windows Application Compability Toolkit to
force all their threads to run on a single processor. In these cases, the
'shim' usually forces all threads associated with that program to always run
on core/processor 0.
--
Chuck Walbourn
SDE, Windows Gaming & Graphics
This posting is provided "AS IS" with no warranties, and confers no rights.
|