本發明涉及動態圖分析,尤其涉及一種動態圖點對分析的增量計算優化方法及硬件加速器。
背景技術:
1、動態圖是指隨時間變化而變化的圖,圖的變化來源于頂點和頂點之間邊的變化,因此,每次改變的是圖中的邊。點對指的是一整張圖里,設置一個源點和一個匯點,本文將分別使用s(source)和d(destination)來表示;對于有向圖而言,每條邊都有一個起點和一個終點,可分別使用u和v來表示,而一個頂點u的狀態稱為stat(u),以sssp(單源最短路徑)算法為例,stat(u)表示u到s的最短路徑距離。
2、現在針對動態圖的更新加速主要是使用增量計算的方法,對于每一個改變都在當前圖的快照中對頂點的狀態進行更新,通過使得激活的頂點數目只和改變有關,從而減少不必要的狀態傳播于計算,可以減少每次更新所花費的時間。
3、對于動態圖的改變,一般指的是加邊和刪邊的操作,在現有的增量計算方法的計算過程中,針對所有受拓撲影響的節點去重新計算他們的狀態是必須的,對于加邊<u,v>而言,樸素的增量計算會從頂點v開始,計算stat(v),同時將所有受v影響的頂點都計算其stat(*);對于刪邊而言,任何可以通過被刪除邊所指向的頂點v拓撲可達的頂點都需要從stat(v)開始,重新計算它們的狀態,并且,計算每個頂點的狀態stat(*)時都需要遍歷所有指向它的頂點的狀態,這個過程是開銷巨大的,造成這種問題的原因就是沒有對頂點的依賴關系進行更為精細化地篩選,導致一些不必要的狀態被傳播。因此,如何去減少不必要的計算從開降低開銷是提升動態圖分析算法執行效率的關鍵。
4、由于現有的處理動態圖的增量計算方法在計算的過程中會產生激活很多冗余的頂點,并且根據這些頂點會造成大量無效的狀態值進行傳播。根據在多個動態圖分析算法的實驗結果來看,在計算過程中,平均有60%的計算是冗余的,這個比例相對于總運行的負載來說是較大的。
5、綜上可知,現有技術在實際使用上顯然存在不便與缺陷,所以有必要加以改進。
技術實現思路
1、針對上述的缺陷,本發明的目的在于提供一種動態圖點對分析的增量計算優化方法及硬件加速器,用于解決在動態圖中增量計算過程中如何減少冗余計算的問題。
2、為了解決上述技術問題,一方面,本發明提供了一種動態圖點對分析的增量計算優化方法,包括步驟:
3、通過預設的硬件加速器執行加邊操作和刪邊操作;所述硬件加速器包括預取模塊、識別和調度模塊、傳播模塊,且所述硬件加速器采用流水線技術并行處理多個動態改變批次;
4、在執行所述加邊操作過程中,判斷源點是否可達所述加邊操作中的加邊起點;若不可達,則僅記錄所述加邊操作中邊的拓撲變化而不進行狀態計算;若可達,則記錄所述加邊操作中邊的拓撲變化以及對加邊終點拓撲可達的頂點進行狀態更新;
5、在執行所述刪邊操作中,判斷刪邊終點的狀態是否依賴于刪邊起點的狀態;若否,則僅記錄所述刪邊操作中邊的刪除而不觸發狀態更新;若是,則記錄所述刪邊操作中邊的拓撲變化以及對所述刪邊終點拓撲可達的頂點進行狀態更新;
6、其中,所述狀態表示為所述源點到點的最短路徑距離。
7、進一步的,所述預取模塊用于動態加載圖數據及變更批次;所述識別和調度模塊基于頂點的可達性和依賴關系對動態改變進行分類;所述傳播模塊根據分類結果執行狀態更新計算。
8、進一步的,所述判斷刪邊終點的狀態是否依賴于刪邊起點的狀態包括:
9、判斷刪邊終點的stat(v)的最優值是否直接依賴于刪邊起點的stat(u),若是則確定所述刪邊終點的狀態依賴于所述刪邊起點的狀態;其中,stat(v)表示所述源點到所述刪邊終點v的最短路徑距離,stat(u)表示所述所述源點到刪邊起點u的最短路徑距離。
10、進一步的,所述流水線技術包括將所述加邊操作和所述刪邊操作分別分配至不同的處理單元,以實現多批次動態改變的并行處理。
11、另一方面,本發明還提供了一種硬件加速器,所述硬件加速器應用于實現如上述任一項的動態圖點對分析的增量計算優化方法;所述硬件加速器包括有:
12、預取模塊,用于預加載動態圖數據和變更批次;
13、識別和調度模塊,用于根據頂點可達性和關鍵上家依賴關系對動態改變進行分類,并分配計算任務;
14、傳播模塊,用于執行狀態更新計算;流水線處理單元,用于并行處理多個動態改變批次。
15、本發明通過預設的硬件加速器執行加邊和刪邊操作;該硬件加速器含預取、識別和調度、傳播模塊,采用流水線技術并行處理多批次動態改變;加邊操作時,判斷源點是否可達加邊起點,不可達僅記錄邊拓撲變化,不做狀態計算;可達則記錄拓撲變化并更新加邊終點拓撲可達頂點狀態;刪邊操作時,判斷刪邊終點狀態是否依賴刪邊起點狀態,若否則僅記錄邊刪除,不觸發狀態更新;若是則記錄邊拓撲變化,且更新刪邊終點拓撲可達頂點狀態。本發明還提供相應的硬件加速器。借此,本發明可以有效減少激活(遍歷)的頂點數,從而在很大程度上降低計算上的開銷;且基于預設的硬件加速器還可以進一步提高處理效率。
1.一種動態圖點對分析的增量計算優化方法,其特征在于,包括步驟:
2.根據權利要求1所述動態圖點對分析的增量計算優化方法,其特征在于,所述預取模塊用于動態加載圖數據及變更批次;所述識別和調度模塊基于頂點的可達性和依賴關系對動態改變進行分類;所述傳播模塊根據分類結果執行狀態更新計算。
3.根據權利要求1所述的動態圖點對分析的增量計算優化方法,其特征在于,所述判斷刪邊終點的狀態是否依賴于刪邊起點的狀態包括:
4.根據權利要求1所述的動態圖點對分析的增量計算優化方法,其特征在于,所述流水線技術包括將所述加邊操作和所述刪邊操作分別分配至不同的處理單元,以實現多批次動態改變的并行處理。
5.一種硬件加速器,其特征在于,所述硬件加速器應用于實現如權利要求1~4任一項所述的動態圖點對分析的增量計算優化方法;所述硬件加速器包括有: