In modern Non-Uniform Memory Access (NUMA) systems, there are multiple memory nodes, each with its own memory controller. Local nodes can be accessed in less time than remote ones. Contention exists even if threads are scheduled on different memory domains when the threads have all or portions of their memory allocated on the same node. The contended resource in this case would be the node’s memory controller. Therefore, the scheduler must not only appropriately schedule memory-intensive applications, but it also must consider how to place the memory of these applications.In this work we design and implement a contention-aware scheduler in Linux. This scheduler strives to achieve a balanced system for workloads consisting of multiple cpu-intensive and/or memory-intensive applications. We also investigate and analyze recent Linux kernel patches that aim to provide NUMA-aware scheduling. Furthermore, we perform simulation analysis for several memory migration strategies that can be used by the scheduler whenever it decides to migrate threads. Finally, we present our collaborative work in which we design a holistic approach to NUMA scheduling.
Copyright is held by the author.
The author granted permission for the file to be printed, but not for the text to be copied and pasted.
Supervisor or Senior Supervisor
Thesis advisor: Fedorova, Alexandra
Member of collection