[發明專利]一種基于弱內存一致性的多線程確定性執行方法有效
| 申請號: | 201910320893.0 | 申請日: | 2019-04-21 |
| 公開(公告)號: | CN110083445B | 公開(公告)日: | 2023-04-25 |
| 發明(設計)人: | 王開宇;季振洲;周一豪;吳倩倩;張源悍 | 申請(專利權)人: | 哈爾濱工業大學 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/52 |
| 代理公司: | 北京匯捷知識產權代理事務所(普通合伙) 11531 | 代理人: | 馬金華 |
| 地址: | 150006 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 內存 一致性 多線程 確定性 執行 方法 | ||
本發明提出了基于弱內存一致性的多線程確定性執行方法。包括弱內存一致性模型,串行階段線程并行化模塊和性能指導標記模塊。本方法使用TSO弱內存一致性概念,并且提出了兩點創新性技術,包括串行階段部分線程并行化技術和幫助長并行距離線程跳過同步點的性能指導標記技術。本發明可以解決現有確定性方法全局同步造成的性能下降問題,并且通過讓一些并行階段較長的線程跳過指定的同步點,有效的解決了并行階段負載不均衡問題,使確定性技術在性能上有很大提升。
技術領域
本發明應用于多線程環境下提升確定性系統并行度,改善確定性系統性能。
背景技術
眾所周知,近些年來,摩爾定律所定義的芯片性能增長規律漸漸遇到瓶頸,芯片集成度逐漸受到物理規律的限制,芯片頻率的提升帶來了嚴峻能耗問題和散熱問題。并行計算和片上多核處理器(CMP,Chip?Multiprocessor)的做法是將兩個或者兩個以上的處理器核心集成在同一塊芯片上,這一技術的出現在一定程度上滿足了人們對處理器性能提升的迫切需求。與傳統的單核處理器不同,多核處理器中,多個任務在多個處理器核心上同時執行,它們共享總線和部分Cache,從而增加了芯片的整體處理能力和運行效率。但是,隨之而來的是,給并行程序的開發和調試帶來了嚴重的挑戰,它比編寫串行程序要困難許多。在多核平臺上編寫的并行程序通常使用多個執行體(例如線程)在多核處理器同時執行程序代碼,這些執行體往往并不是多個串行程序的簡單組合,而是為了互相配合完成同一個任務。因此,各個執行體之間就會廣泛存在復雜的競爭,同步以及干擾關系。此時,并行程序的多個執行體由于系統調度執行的時刻不確定而產生不同的交織順序(interleavings),就極有可能影響到上述競爭,同步,干擾關系,進而影響輸出結果。
目前,確定性執行技術被認為是應對確定性問題的關鍵核心技術。確定性執行技術能夠使程序在相同的輸入下運行時,按照相同的調度產生相同輸出結果。確定性執行技術的核心是控制并行執行體之間的同步、競爭和干擾,使執行體之間按照一定的規則和順序進行交互,從而確保每次執行都能按照這種規則和順序,使程序即使在不同的環境中執行也能得到相同的結果,但是為了獲取確定性,系統需要付出大量的額外開銷,因此如何提升確定性系統的性能就成了當前的研究熱點。
發明內容
基于背景技術存在的技術問題,本發明提出了一種基于弱內存一致性的多線程弱確定性執行方法。
本發明提出的一種基于弱內存一致性的多線程弱確定性執行方法,所述系統包括弱內存一致性模型,串行階段并行化模塊和性能指導標記模塊;弱內存一致性模塊用于在保證多線程確定性執行的基礎上,對線程實行內存隔離,延后線程向內存提交操作;串行階段并行化模塊,用于提升串行階段線程并行度,讓獲取非互斥鎖資源兩組線程可以在串行階段并行執行,縮短串行階段耗時,提升性能;性能指導標記模塊用于通過提供一個性能指導標記,標記長并行距離的線程,在確定的位置開始,跳過指定個數的串行階段;避免在并行階段中,并行距離較短的線程長時間等待長并行距離的線程,造成并行階段效率不高。
優選地,所述弱內存一致性模型用于負責隔離線程,保證線程順利執行并行、串行階段,包括如下步驟:
步驟1:在并行階段,將線程對內存的提交存儲到各個線程的棧內存;
步驟2:線程在并行階段并行執行;
步驟3:將線程向內存提交的操作推遲到同步點;
步驟4:在串行階段,線程按照事先確定的順序依次向內存提交修改;
步驟5:將內存備份提交給各個線程,為下次執行做準備。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工業大學,未經哈爾濱工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910320893.0/2.html,轉載請聲明來源鉆瓜專利網。





