High performance on multicore processors requires that
schedulers be reinvented. Traditional schedulers focus
on keeping execution units busy by assigning each core
a thread to run. Schedulers ought to focus, however, on
high utilization of on-chip memory, rather than of execution
cores, to reduce the impact of expensive DRAM
and remote cache accesses. A challenge in achieving
good use of on-chip memory is that the memory is split
up among the cores in the form of many small caches.
This paper argues for a form of scheduling that assigns
each object and its operations to a specific core, moving
a thread among the cores as it uses different objects