《多核環境下程式存儲局部性檢測與預測方法》是依託北京大學,由羅英偉擔任負責人的面上項目。
基本介紹
- 中文名:多核環境下程式存儲局部性檢測與預測方法
- 項目負責人:羅英偉
- 項目類別:面上項目
- 依託單位:北京大學
項目摘要,結題摘要,
項目摘要
隨著多核、多處理器套用的普及,並發程式對共享資源的競爭成為程式運行的瓶頸。由於計算機存儲架構變得越加複雜,分布在一台機器上的CPU通常會共享最底層的快取資源,並共同通過匯流排對記憶體及磁碟進行讀寫操作,從而共用匯流排頻寬。通過分析程式行為特徵和程式的周期性,我們可以合理的分配程式對共享資源的占用,通過調整程式對快取資源、記憶體資源以及頻寬的使用,從而提升並發程式的性能。我們將尋找一個開銷低並支持即時檢測的測量方法,利用x86架構中的性能檢測單元,以及作業系統的頁表機制,線上監測程式的行為特徵,如程式的存儲局部性和周期性,來預測其對快取、記憶體和頻寬的占用,進而進行合理的調度。這種方法同時也可以被套用到虛擬化系統中,用於調度虛擬機以及對虛擬機的遷移做出決策。
結題摘要
本項目主要圍繞多核環境下程式局部性理論以及在局部性理論指導下的Cache/記憶體管理分析與最佳化等開展研究。 在局部性理論方面:提出了一種基於平均淘汰時間(Average Eviction Time,AET)的快取動力學模型,能夠以當前最低的時間和空間複雜度來動態探測程式快取失效曲線,可以適用於各種存儲快取系統中;針對系統虛擬化環境,提出了一種基於硬體計數器的間歇式虛擬機記憶體工作集預測方法,可以同時在小頁或大頁記憶體環境下以很低的平均開銷獲得很高的平均精度;此外,還探索了利用機器學習方法來進行AI訓練任務的存儲資源預測的研究,可以根據AI訓練任務的參數特徵準確預測其在運行時的Cache/記憶體資源需求。 在Cache管理分析和最佳化方面:提出了共享邏輯時間的概念,建立了多核環境下多個程式並發執行時的快取失效曲線組合模型,並據此給出一個共享快取下並發程式最優共生和公平調度策略;提出了快取定量配給、快取劃分共享等新的“保守共享”的快取管理策略,在保證每個套用擁有一定比例的快取的同時,又使得多餘快取能夠在被所有套用按另一比例共享;基於Intel CAT技術和局部性理論,提出了一種基於部分共享的高速快取動態分配方法,能夠細粒度地動態分配快取資源,支持多種最佳化目標;針對訪存密集型的GPGPU程式,提出了一種同步柵欄感知的快取管理策略,根據非關鍵執行緒束的一級數據快取命中率來動態選擇不同的執行緒束調度策略,可以顯著加快關鍵執行緒束的執行。 在記憶體管理分析和最佳化方面:針對虛擬化環境,設計實現了虛擬機記憶體動態調配機制,以虛擬機記憶體工作集預測為依據,基於動態規划算法,可以以較小的代價找到最合適的記憶體調度方案;提出了一個基於對齊的大頁最佳化機制,提升大頁使用率,並對不同記憶體虛擬化方法下如何使用大頁機制進行了全面分析;針對分散式記憶體快取系統(如Memcached和Redis),提出了快取失效代價感知、局部性感知的記憶體分配算法,使得系統整體的失效率或平均回響時間最小;系統分析了GPU程式並行訪存請求的熵值分布,以此為依據提出了一種高效節能的地址映射機制,可以充分發揮DRAM的頻寬,提高GPU程式的性能。