Patent ID: 8739165

Claim:
A method for operating an apparatus having a plurality of processors, comprising: determining if a thread needs to be executed on one or more of the plurality of processors; determining if one or more of the plurality of processors is available to execute the thread, and is thus an available processor; determining if the thread has an affinity for the available processor, wherein said determining if the thread has the affinity for the available processor comprises counting a number of writes by one or more other threads to a cache associated with the available processor since the thread was last executed on the available processor; if the thread has the affinity for the available processor, selecting the available processor as a chosen processor to execute the thread; if the thread does not have the affinity for the available processor, determining a number of active devices; if the thread does not have the affinity for the available processor, determining if minimize power is selected; if minimize power is selected, choosing a first processor of the plurality of processors to execute the thread so that the number of active devices is minimized; if the thread does not have the affinity for the available processor, determining if maximize performance is selected; and if maximize performance is selected, choosing a second processor of the plurality of processors to execute the thread so that the number of active devices is maximized.