透過您的圖書館登入
IP:18.119.248.149
  • 學位論文

NUMA多核心系統之降低資源競爭的動態任務感知排程之設計與研究

Dynamic Task-Aware Scheduling for Reducing Resource Contention on NUMA Multi-Core Systems

指導教授 : 姜美玲

摘要


在多核心與多處理器系統中,處理器會共享一些系統資源如匯流排、記憶體、快取記憶體。若部分處理器同時大量存取共享資源,由於系統發生資源競爭(Resource Contention)將導致處理器無法迅速地取得資源,則會造成系統效能下降。目前有許多研究使用任務感知排程(Task-Aware Scheduling)來解決資源競爭的問題,但大部分的研究是實作在對稱式處理器(Symmetric Multi-Processor, SMP)系統的架構下,這些研究的成果若是在非均一記憶體存取(Non-Uniform Memory Access, NUMA)系統的架構下運作,因為排程沒有考慮到遠端記憶體存取的延遲時間,則會沒有辦法有效地解決資源競爭的問題,反而可能導致系統效能的下降。   在本論文中,我們提出了一個在NUMA架構下降低資源競爭的動態任務感知排程機制(Dynamic Task-Aware Scheduling),本論文所提出的動態任務感知排程實作於Linux Kernel 2.6.33版本內,主要工作包括對Linux核心排程器的修改、動態設置任務(Task)及處理器的型態,以及處理器頻率的設置。本研究根據任務使用快取記憶體的情況,動態地將任務劃分為Computing-Bound Task及Memory-Bound Task,以及將處理器群劃分為Computing-Bound型態處理器及Memory-Bound型態處理器。透過對Linux核心排程器的修改,我們將Computing-Bound Task及Memory-Bound Task分配到相對應適當的處理器上去執行。而為了避免因為Computing-Bound Task及Memory-Bound Task工作數量不平均而造成處理器間的負載失衡,本研究根據不同類型工作的比例來動態地調整Computing-Bound型態處理器及Memory-Bound型態處理器的數量。而為了減少耗電量,本研究也根據處理器的類型去設置不同處理器頻率。Computing-Bound型態處理器的處理器頻率會被設定在最高頻;而Memory-Bound型態處理器會被設定在最低頻。實驗結果顯示,我們的動態任務感知排程機制可以有效地降低資源競爭的情形以及提升系統效能,進而減少耗電量。

並列摘要


In a multi-core and multi-processor system, some system resources are shared by processors, such as bus, memory and processor’s cache resources. When processors attempt to access shared resources at the same time, if processors cannot get the required shared resources immediately, resource contention will lead to the performance degradation. Recently, many researches focus on the design of task-aware scheduling for solving the problem of resource contention, and most of them target at Symmetric Multi-Processor (SMP) system. The task-aware scheduler for SMP works poorly under multiprocessor systems with Non-Uniform Memory Access (NUMA) architecture and causes performance degradation. This is because the scheduler does not consider the latency of accessing memory in remote node while performing load-balancing. In this thesis, we have proposed a dynamic task-aware scheduling mechanism for reducing resource contention on NUMA multi-core systems and implemented it in Linux kernel 2.6.33. The main work of our implementation includes modifying the Linux kernel scheduler, setting task types and processor types dynamically, and setting the processor frequencies. In this thesis, we classify each task as a computing-bound task or a memory-bound task according to the task’s usage of cache memory. We also classify each processor as a computing-bound processor or a memory-bound processor for running different types of tasks. Through the modification of Linux kernel, our scheduler dispatches tasks to the corresponding processors according to task type. To avoid the load-unbalancing among processors due to the execution of different amount of computing-bound tasks and memory-bound tasks, a processor’s type would be dynamically adjusted for handling tasks in the system. Besides, in order to reduce power consumption, a processor’s frequency can be dynamically switched according to the processor’s type. Computing-bound processors are set with highest processor frequency to run computing-bound tasks efficiently, whereas, memory-bound processors are set with lowest processor frequency since running memory-bound tasks does not need highest processing capability. Experimental results demonstrate that our dynamic task-aware scheduling mechanism can effectively improve system performance and reduce power consumption by reducing resource contention among processor cores.

並列關鍵字

Linux multi-core scheduler resource contention NUMA

參考文獻


[1] A. Merkel and F. Bellosa, “Memory-aware scheduling for energy efficiency on multicore processors,” In Proceedings of the Workshop on Power Aware Computing and Systems, pp. 123-130, San Diego, CA, USA, Dec. 2008.
[2] S. Blagodurov, S. Zhuravlev, M. Dashti, and A. Fedorova. A case for NUMA-aware contention management on multicore systems. In USENIX ATC '11, Berkeley, CA, USA, 2011. USENIX Association.
[3] Intel SpeedStep, http://www.intel.com/support/tw/processors/sb/cs-028855.htm.
[4] Symmetric multiprocessing,
http://en.wikipedia.org/wiki/Symmetric_multiprocessing.

延伸閱讀