  Multi-socket multi-core servers are used for solving some of the important
problems in computing. Remote DRAM accesses can impact performance of certain
applications running on such servers. This paper presents a new near linear
operating system (OS) scheduling algorithm to reduce the impact of such remote
DRAM accesses. By keeping track of the number of local and remote DRAM
accesses, using performance counters, for every thread and applying this
algorithm, I come up with a new schedule of threads for the next quantum. This
new schedule reduces remote DRAM accesses and improves overall performance. I
also show that this algorithm is actually linear in the best case. As the
algorithm is near-linear it is amenable for implementation in a real operating
system.
