System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及集成芯片封裝結構,具體涉及一種構建數據存儲結構的方法、裝置、電子設備及存儲介質。
技術介紹
1、隨著工藝的演進,芯片設計的圖形復雜度越來越高,圖形的數量也越來越多,這使得芯片設計相關軟件需要在計算機內存中儲存并且讀取高達數量上億的圖形數據,如何提高計算效率十分重要。
2、并行計算是一種提高計算效率的技術,然而并行計算需要考慮并行計算的數據競爭的問題,如果同時對一份數據進行先后讀寫(read-write)或者寫寫(write-write)就會造成數據競爭,這可能會導致精度丟失、計算錯誤、未定義行為、以及崩潰。現有的并行計算都會使用線程鎖來避免出現數據競爭,但線程鎖會阻塞其他的線程,不利于整體計算效率的提高。
技術實現思路
1、針對上述技術問題,本申請提供一種構建數據存儲結構的方法、裝置、電子設備及存儲介質,在將數據單元與內存池綁定后,將綁定至同一內存池的數據單元對應的存儲任務分配至同一線程,從而在進行并行計算時無需使用線程鎖也能避免數據競爭,提高計算效率。
2、為解決上述技術問題,本申請提供一種構建數據存儲結構的方法,所述方法包括以下步驟:
3、獲取待存儲的多個數據單元;
4、將所述多個數據單元分別與內存池組中的一內存池進行綁定,其中,一所述內存池綁定至少一所述數據單元;
5、將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程;
6、并行執行多個所述線程,以基于所述內存池組構建所述多個數據單元
7、在一些實施例中,所述將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括以下至少一項:
8、基于存儲任務負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定;
9、基于存儲空間負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定。
10、在一些實施例中,所述基于存儲任務負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括:
11、獲取目標數據單元的存儲任務的負載預測結果,將所述目標數據單元與當前存儲任務負載最小的內存池進行綁定,并根據所述負載預測結果更新各所述內存池的任務負載,重復本步驟直至所有數據單元完成與對應的內存池的綁定;
12、和/或,所述基于存儲空間負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括:
13、獲取目標數據單元所需占用的存儲空間,將所述目標數據單元與當前存儲空間負載最小的內存池進行綁定,并根據所述目標數據單元所需占用的存儲空間更新各所述內存池的存儲空間負載,重復本步驟直至所有數據單元完成與對應的內存池的綁定。
14、在一些實施例中,所述數據單元包括芯片電路圖形的數據,所述獲取待存儲的多個數據單元,包括:
15、獲取待存儲的芯片電路圖形的圖形數據,所述圖形數據包括電路圖形的邊界坐標;
16、基于預設的網格邊界與所述電路圖形的所述邊界坐標,將每個所述電路圖形插入到對應網格中;
17、根據各個所述網格中的圖形數據得到所述數據單元。
18、在一些實施例中,所述存儲任務包括以下至少一項:
19、第一存儲任務,用于在所述數據單元的數據量未超過閾值時,對所述數據單元中的數據進行預設處理以存儲所述數據單元中的數據;
20、第二存儲任務,用于在所述數據單元的數據量超過閾值時,將所述數據單元轉化為二級數據單元,并對所述二級數據單元進行所述預設處理以存儲所述數據單元中的數據。
21、在一些實施例中,所述并行執行多個所述線程,以基于所述內存池組構建所述多個數據單元對應的數據存儲結構,包括:
22、并行執行多個所述線程的過程中,各線程基于對應內存池中的數據單元依次構建各個數據單元對應的數據存儲結構。
23、在一些實施例中,所述將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程,包括以下至少一項:
24、在所有數據單元完成與對應的內存池的綁定后,將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程;
25、在部分數據單元完成與對應的內存池的綁定后,將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程,以開始執行所述并行執行多個所述線程的步驟,并在并行執行多個所述線程的過程中,根據剩余數據單元與對應的內存池的綁定結果,繼續為對應線程分配綁定至對應所述內存池的數據單元的存儲任務。
26、本申請還提供一種構建數據存儲結構的裝置,所述裝置包括:
27、數據單元獲取模塊,用于獲取待存儲的多個數據單元;
28、綁定模塊,用于將所述多個數據單元分別與內存池組中的一內存池進行綁定,其中,一所述內存池綁定至少一所述數據單元;
29、分配模塊,用于將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程;
30、線程執行模塊,用于并行執行多個所述線程,以基于所述內存池組構建所述多個數據單元對應的數據存儲結構。
31、本申請還提供一種電子設備,包括存儲介質與控制器,其特征在于,所述存儲介質上存儲有計算機程序,所述計算機程序被所述控制器執行時實現如上所述的構建數據存儲結構的方法的步驟。
32、本申請還提供一種存儲介質,所述存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如上所述的構建數據存儲結構的方法的步驟。
33、本申請的構建數據存儲結構的方法、裝置、電子設備及存儲介質,方法包括:獲取待存儲的多個數據單元;將多個數據單元分別與內存池組中的一內存池進行綁定,其中,一內存池綁定至少一數據單元;將綁定至同一內存池的數據單元對應的存儲任務分配至同一線程;并行執行多個線程,以基于內存池組構建多個數據單元對應的數據存儲結構。本申請的技術方案,在將數據單元與內存池綁定后,將綁定至同一內存池的數據單元對應的存儲任務分配至同一線程,從而在進行并行計算時無需使用線程鎖也能避免數據競爭,提高計算效率。
本文檔來自技高網...【技術保護點】
1.一種構建數據存儲結構的方法,其特征在于,所述方法包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括以下至少一項:
3.根據權利要求2所述的方法,其特征在于,所述基于存儲任務負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括:
4.根據權利要求1所述的方法,其特征在于,所述存儲任務包括以下至少一項:
5.根據權利要求1至4中任一項所述的方法,其特征在于,所述并行執行多個所述線程,以基于所述內存池組構建所述多個數據單元對應的數據存儲結構,包括:
6.根據權利要求1至4中任一項所述的方法,其特征在于,所述將綁定至同一所述內存池的數據單元對應的存儲任務分配至同一線程,包括以下至少一項:
7.根據權利要求1至4中任一項所述的方法,其特征在于,所述數據單元包括芯片電路圖形的數據,所述獲取待存儲的多個數據單元,包括:
8.一種構建數據存儲結構的裝置,其特征在于,所述裝置包括:
9.一種電子設備,包括存儲介
10.一種存儲介質,其特征在于,所述存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至7中任一項所述的構建數據存儲結構的方法的步驟。
...【技術特征摘要】
1.一種構建數據存儲結構的方法,其特征在于,所述方法包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括以下至少一項:
3.根據權利要求2所述的方法,其特征在于,所述基于存儲任務負載均衡原則,將所述多個數據單元分別與內存池組中的一內存池進行綁定,包括:
4.根據權利要求1所述的方法,其特征在于,所述存儲任務包括以下至少一項:
5.根據權利要求1至4中任一項所述的方法,其特征在于,所述并行執行多個所述線程,以基于所述內存池組構建所述多個數據單元對應的數據存儲結構,包括:
6.根據權利要求1至4中任一項所述的方法,其特征在于,所...
【專利技術屬性】
技術研發人員:請求不公布姓名,
申請(專利權)人:杭州行芯科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。