基於確定性重演的多核程式並發錯誤消除方法研究

基於確定性重演的多核程式並發錯誤消除方法研究

《基於確定性重演的多核程式並發錯誤消除方法研究》是依託哈爾濱理工大學,由朱素霞擔任項目負責人的青年科學基金項目。

基本介紹

  • 中文名:基於確定性重演的多核程式並發錯誤消除方法研究
  • 項目類別:青年科學基金項目
  • 項目負責人:朱素霞
  • 依託單位:哈爾濱理工大學
項目摘要,結題摘要,

項目摘要

共享記憶體的多核程式因為執行緒間記憶體互動順序的不確定,極易發生並發錯誤,但現有錯誤處理方法難以確保程式的運行質量。為解決這一問題,本項目擬基於確定性重演原理,研究硬體實現的並發錯誤消除方法。.確定性重演能夠實現程式重現以前的執行軌跡,為程式生產運行時的並發錯誤消除提供了新途徑。本項目基於確定性重演,圍繞互動特徵提取、互動蹤跡記錄、互動蹤跡過濾和並發錯誤消除四個方面展開研究。在互動特徵提取方面,研究硬體支持的程式特徵動態提取方法;在互動蹤跡記錄方面,考慮到套用前景,面向採用監聽一致性協定的現代多核處理器,研究高效的並髮式記錄策略;在互動蹤跡過濾方面,研究基於機器學習的互動順序分類方法,過濾掉不影響程式執行結果的良性互動;在並發錯誤消除方面,研究硬體實現的低開銷並發錯誤預測和避免方法;最後,構建原型系統並進行性能評測。本項目的研究對提高多核程式的運行質量和多核處理器錯誤處理結構設計具有重要的意義。

結題摘要

因為執行緒間的互動存在不確定性,多核程式的並發錯誤難以復現,導致診斷並發錯誤非常耗時且困難重重。現有調試和和測試階段的並發錯誤處理方法難以暴露所有的執行緒間互動順序,生產運行階段的並發錯誤檢測和消除是提高軟體運行質量非常必要的補充。而確定性重演技術通過限制程式執行緒間的互動順序,可以確保相同輸入下程式的任意次執行結果都是一致的,在並發錯誤處理方面具有得天獨厚的優勢。因此,本項目基於確定性重演原理,研究多核程式生產運行階段的並發錯誤的檢測和消除方法,以提高軟體在生產運行階段的正確性。針對這一問題,本項目圍繞記憶體競爭記錄、互動蹤跡提取和分類、互動蹤跡過濾、確定性重演和並發錯誤消除這些個方面進行了深入研究,提出了一系列有效的解決方法。在記憶體競爭記錄方面,從記錄形式出發提出了並髮式記憶體競爭記錄方法,能夠有效記錄面向snoop協定的記憶體競爭,降低了硬體開銷和日誌尺寸;針對距離對記憶體競爭的影響因素,使用可重寫滑動視窗保存並發競爭域內的記憶體操作,設計了基於滑動視窗的記憶體競爭記錄方法,能有效記錄更易引發錯誤的記憶體競爭。針對互動蹤跡提取和分類,利用無序映射的散列表有序組織蹤跡,縮小了錯誤檢測的搜尋空間,利用棧快速匹配互動不變數來標記執行緒互動。針對蹤跡的過濾問題,分別從Image、Section、Instruction和Code四個級別去除不必要的監視存儲器操作,設計了基於分層過濾的方法互動蹤跡最佳化方法。針對確定性重演,採用稀疏執行緒切換點的策略實現了輕量級的並發錯誤記錄和重放算法,減少記錄規模,提升了確定性重放速度。針對並發錯誤的消除,使用滑動視窗技術實時預測並發錯誤拐點,有效的調節了多核程式記憶體競爭雙方的執行順序,避免了距離較近的記憶體競爭的發生。本項目所提出的算法為多執行緒程式的調試和測試供了有效的參考,推動多核程式調試領域及硬體調試支撐方面的進步,有助於進一步提升計算機系統的可靠性和容錯性。

相關詞條

熱門詞條

聯絡我們