《基於硬體的多核程式執行不確定性消除技術研究》是依託哈爾濱工業大學,由季振洲擔任項目負責人的面上項目。
基本介紹
- 中文名:基於硬體的多核程式執行不確定性消除技術研究
- 依託單位:哈爾濱工業大學
- 項目類別:面上項目
- 項目負責人:季振洲
項目摘要,結題摘要,
項目摘要
運行在多核處理器上的不同執行緒可同時訪問共享記憶體,現有的基於目錄的Cache一致性協定雖然能有效防止共享記憶體訪問的不一致性,但是對訪問順序無法控制。因此,多核程式即使輸入集相同,也可能產生不同的輸出結果。這種多核處理器執行環境的不確定性給多核程式的編寫、調試、測試和維護都帶來了巨大挑戰,也成為多核編程實現廣泛套用的瓶頸。本項目擬從多層存儲訪問模型出發,提出一種新的確定性Cache一致性協定,消除多核程式執行的不確定性。通過分析不確定性給多核系統帶來的影響,研究去除不確定性的方法,給出合適的硬體設計取捨,抽象出最佳化的狀態模型;研究高效、快速的確定性重演機制,讓確定性重演能夠得到更廣泛的套用;在這些基礎上提出支持多種工作模式的確定性多核原型系統。可以預見,本項目的研究將對確定性多核處理器設計、多核程式可靠性以及多核編程的推廣具有非常重要的意義。
結題摘要
共享記憶體的多核程式在片上多核處理器上執行時,執行結果存在著不確定性,給共享記憶體多執行緒程式的編寫、調試和套用等都帶來了很大挑戰。本項目從存儲層次和cache一致性協定出發,研究確定性的多核處理器執行環境,分析確定性對片上多核系統性能的影響;通過分析多核程式執行不確定性的來源以及其對多核系統性能的影響結果,研究消除不確定性的方法,在處理器級給出了消除多核不確定性的硬體解決方案;研究多核程式的靜態數據競爭檢測方法,通過分析程式中導致不確定性的主要原因——數據競爭,從應用程式級來解決多核程式的不確定性。通過研究高效、快速的確定性重演機制,給出了多種基於確定性重演的高效數據競爭記錄算法、快速的重演算法及其硬體實現機制。 本項目提出了一種更為高效的cache一致性協定,並提出一種最佳化的cache區域分布方法,通過對存儲層次和cache一致性協定的深入研究,分析多核執行不確定性對多核系統性能的影響結果;利用多核程式的數據競爭檢測和確定性重演技術,設計了一種基於Locksmith和PinPlay的多核程式編寫和調試機制,在編程前期檢測數據競爭有效避免了競爭的發生,大大降低了多核程式調試工作的難度;提出並設計了一種支持並發重演的分段式記憶體競爭記錄機制,該機制帶來的硬體消耗低,也減小了記憶體競爭日誌,降低了頻寬開銷,並可以使程式按原始的執行路徑重放,實現確定性重演;為了減少更改cache結構,給多核處理器的設計帶來的挑戰,提出並設計了一種基於簽名的循環式記憶體競爭記錄機制,在無需更改原有cache結構的前提下,硬體消耗、記憶體競爭日誌和頻寬開銷都得到了很大改善;提出並設計了一種同步敏感的記憶體競爭記錄機制,通過過濾掉無害的同步衝突,有效減小了記憶體競爭日誌,也進一步降低了頻寬開銷;為了進一步提高並發重演的速度,提出了一種分離式記憶體競爭記錄機制,在這種方式下,衝突先發生方所在處理器核能夠在重演時積極主動的為衝突後發生方創建並傳送喚醒訊息,提高了重演的速度。該機制在重演速度、記憶體競爭日誌及頻寬開銷方面均具有較高的性能。設計並實現了集三種模式於一體的確定性多核系統原型,並在多核仿真模擬平台上進行了模擬驗證。 本項目的研究成果不僅為確定性重放技術的研究提供了新的思路,有助於確定性重演能夠得到更廣泛的套用;同時也對消除多核並行程式執行不確定性,實現多核並行程式的編寫、調試和套用,有著極其重要的意義。