本技術(shù)涉及計算機領(lǐng)域,特別涉及一種節(jié)點處理的方法及裝置。
背景技術(shù):
1、時序圖是圖結(jié)構(gòu)隨著時間演化的圖。例如,對于時序圖中的某兩個節(jié)點,該兩個節(jié)點之間有邊相連,隨著時間的推移,用于連接該兩個節(jié)點的邊消失;或者,該兩個節(jié)點之間沒有邊相連,隨著時間的推移,該兩個節(jié)點之間使用邊相連。或者,時序圖包括的節(jié)點個數(shù)可能在不斷變化。
2、例如,時序圖可以是社交關(guān)系圖,社交關(guān)系圖中的每個節(jié)點表示用戶,對于任意兩個用戶,在某個時刻該兩個用戶進行了通信,在社交關(guān)系圖中該兩個用戶對應(yīng)的兩個節(jié)點之間使用邊相連。在該兩個用戶結(jié)束通信之后,在社交關(guān)系圖中該兩個用戶對應(yīng)的兩個節(jié)點之間的邊消失。相關(guān)技術(shù)中,在不同時刻對時序圖進行快照,得到不同時刻的多個快照,將該多個快照保存在內(nèi)存中。加速器可以從內(nèi)存中讀取該多個快照中的節(jié)點的數(shù)據(jù),對讀取的數(shù)據(jù)進行處理。加速器可以分多次讀取,在每次讀取時均從每個快照中讀取一個或多個節(jié)點的數(shù)據(jù),對從每個快照中讀取的數(shù)據(jù)進行處理。
3、加速器從內(nèi)存中讀取節(jié)點的數(shù)據(jù)叫做片外通信,在相關(guān)技術(shù)中,加速器需要頻繁地讀取內(nèi)存,產(chǎn)生大量冗余片外通信。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種節(jié)點處理的方法及裝置,以減少冗余片外通信量。所述技術(shù)方案如下:
2、第一方面,本技術(shù)提供了一種節(jié)點處理的方法,所述方法應(yīng)用于設(shè)備包括的加速器,所述設(shè)備還包括內(nèi)存,內(nèi)存保存有多個快照,該多個快照用于指示時序圖的不同時刻的狀態(tài)。在所述方法中,確定第一源節(jié)點,第一源節(jié)點是該多個快照中包括的一個節(jié)點?;诘谝辉垂?jié)點確定第一目標(biāo)節(jié)點,第一源節(jié)點和第一目標(biāo)節(jié)點之間使用第一輸出邊相連,第一輸出邊從第一源節(jié)點指向第一目標(biāo)節(jié)點,該多個快照中存在至少一個第一快照包括第一輸出邊,且該至少一個第一快照包括第一目標(biāo)節(jié)點?;诘谝惠敵鲞呑x取至少一個第一數(shù)據(jù),該至少一個第一數(shù)據(jù)是第一目標(biāo)節(jié)點在該至少一個第一快照中的數(shù)據(jù)。對該至少一個第一數(shù)據(jù)進行處理。
3、由于基于第一源節(jié)點確定第一目標(biāo)節(jié)點,基于第一源節(jié)點和第一目標(biāo)節(jié)點得到第一輸出邊,從多個快照中得到包括第一輸出邊的至少一個第一快照。基于第一輸出邊獲取第一目標(biāo)節(jié)點在該至少一個第一快照中的至少一個數(shù)據(jù),這樣可以通過一個讀取操作同時讀取到至少一個數(shù)據(jù),避免通過多個片外通信在不同時刻讀取該至少一個數(shù)據(jù),從而減少了冗余片外通信。
4、在一種可能的實現(xiàn)方式中,基于該多個快照的拓?fù)浜投鄠€節(jié)點的優(yōu)先級,對該多個節(jié)點進行排序得到節(jié)點序列,該多個節(jié)點是該多個快照包括的節(jié)點。從節(jié)點序列中選擇第二源節(jié)點的下一個節(jié)點作為第一源節(jié)點,第二源節(jié)點是上一次確定的源節(jié)點。由于節(jié)點序列是基于各節(jié)點的優(yōu)先級進行排序,這樣可以對高優(yōu)先級的節(jié)點優(yōu)先處理。
5、在另一種可能的實現(xiàn)方式中,針對每個節(jié)點,該節(jié)點的優(yōu)先級是基于該節(jié)點的壽命和/或該節(jié)點的度數(shù)確定的,這樣使的優(yōu)先級可以反映節(jié)點的使用頻次,使得使用頻次越高的節(jié)點能夠優(yōu)先被讀取并被處理。
6、在另一種可能的實現(xiàn)方式中,加速器包括第一緩存空間、第二緩存空間和第三緩存空間。第一緩存空間用于緩存在對該多個節(jié)點進行排序的過程中產(chǎn)生的中間結(jié)果。第二緩存空間用于緩存節(jié)點序列。第三緩存空間用于緩存已讀取的節(jié)點的數(shù)據(jù)。
7、在另一種可能的實現(xiàn)方式中,加速器包括第四緩存空間。第四緩存空間用于緩存位圖,該位圖用于記錄該多個節(jié)點的狀態(tài),針對每個節(jié)點,在未對該節(jié)點進行排序時該節(jié)點的狀態(tài)為活動狀態(tài),或者,在已對該節(jié)點進行排序時該節(jié)點的狀態(tài)為非活動狀態(tài)。
8、在另一種可能的實現(xiàn)方式中,加速器包括第五緩存空間,第五緩存空間用于緩存邊數(shù)組和節(jié)點數(shù)組。邊數(shù)組包括多個輸出邊的邊信息,該多個輸出邊是該多個快照包括的輸出邊,針對每個輸出邊,該輸出邊的邊信息包括該輸出邊的目標(biāo)節(jié)點的標(biāo)識信息和/或壽命。節(jié)點數(shù)組包括多個節(jié)點的偏移信息,該多個節(jié)點是該多個快照包括的節(jié)點,針對每個節(jié)點,該節(jié)點的偏移信息包括至少一個輸出邊中的第一個輸出邊的邊信息在該邊數(shù)組中的偏移以及該至少一個輸出邊中的最后一個輸出邊的邊信息在邊數(shù)組中的偏移,該至少一個輸出邊是以該節(jié)點為源節(jié)點的輸出邊。基于第一源節(jié)點、邊數(shù)組和節(jié)點數(shù)組確定第一目標(biāo)節(jié)點,由于邊數(shù)組和節(jié)點數(shù)組位于加速器的第五緩存空間中,從第五緩存空間可以快速得到邊數(shù)據(jù)組和節(jié)點數(shù)組中的內(nèi)容,從而提高了確定第一目標(biāo)節(jié)點的效率。
9、在另一種可能的實現(xiàn)方式中,該中間結(jié)果包括該多個節(jié)點中的第一個節(jié)點的至少一個第二目標(biāo)節(jié)點,在該多個快照中第一個節(jié)點和第二目標(biāo)節(jié)點之間使用第二輸出邊相連,第一個節(jié)點是第二輸出邊的源節(jié)點,第二緩存空間包括第一個節(jié)點和該至少一個第二目標(biāo)節(jié)點。彈出第一緩存空間保存的首個節(jié)點作為第三源節(jié)點?;诘谌垂?jié)點確定至少一個第三目標(biāo)節(jié)點,在該多個快照中第三源節(jié)點與第三目標(biāo)節(jié)點之間使用第三輸出邊相連?;谠撝辽僖粋€第三目標(biāo)節(jié)點的優(yōu)先級,將該至少一個第三目標(biāo)節(jié)點保存到第一緩存空間以及將該至少一個第三目標(biāo)節(jié)點保存到第二緩存空間,節(jié)點序列包括第二緩存空間中保存的節(jié)點序列。如此實現(xiàn)基于多個快照的拓?fù)浜投鄠€節(jié)點的優(yōu)先級進行排序,可以將使用頻率較高的節(jié)點排序的越靠前,能夠被優(yōu)先讀取。
10、在另一種可能的實現(xiàn)方式中,將第一個節(jié)點保存到第二緩存空間;以及,確定第一個節(jié)點的至少一個第二目標(biāo)節(jié)點?;谠撝辽僖粋€第二目標(biāo)節(jié)點的優(yōu)先級,將該至少一個第二目標(biāo)節(jié)點保存到第一緩存空間中以及將該至少一個第二目標(biāo)節(jié)點保存到第二緩存空間中。
11、在另一種可能的實現(xiàn)方式中,在第三緩存空間中緩存有該至少一個第一數(shù)據(jù)的情況下,從第三緩存空間中讀取該至少一個第一數(shù)據(jù)。在第三緩存空間中沒有緩存該至少一個第一數(shù)據(jù)的情況下,基于第一輸出邊從內(nèi)存中讀取該至少一個第一數(shù)據(jù)。由于優(yōu)先級越高的節(jié)點的數(shù)據(jù)可以被優(yōu)先讀取,這樣就可以將該節(jié)點的數(shù)據(jù)保存在第三緩存空間中,之后再讀取該節(jié)點的數(shù)據(jù),就可以從第三緩存空間中讀取,從而提高了讀取效率且不用從內(nèi)存中讀取該節(jié)點的數(shù)據(jù),減少了冗余片外通信。
12、在另一種可能的實現(xiàn)方式中,第三緩存空間中沒有緩存該至少一個第一數(shù)據(jù)。在第三緩存空間的空閑容量大于或等于該至少一個第一數(shù)據(jù)的總數(shù)據(jù)量時,將該至少一個第一數(shù)據(jù)緩存到第三緩存空間中。在第三緩存空間的空閑容量小于該至少一個第一數(shù)據(jù)的總數(shù)據(jù)量時,從第三緩存空間中獲取優(yōu)先級低于第一目標(biāo)節(jié)點的優(yōu)先級的節(jié)點,將第三緩存空間中保存的獲取的節(jié)點的數(shù)據(jù)更新為該至少一個第一數(shù)據(jù)。這樣使得高優(yōu)先級的數(shù)據(jù)可以保存在第三緩存空間中,可以減少了冗余片外通信。
13、第二方面,本技術(shù)提供了一種節(jié)點處理的裝置,用于執(zhí)行第一方面或第一方面的任意一種可能的實現(xiàn)方式中的方法。具體地,所述裝置包括用于執(zhí)行第一方面或第一方面的任意一種可能的實現(xiàn)方式中的方法的單元。
14、第三方面,本技術(shù)提供了一種設(shè)備,所述設(shè)備包括至少一個處理器和至少一個存儲器,所述至少一個存儲器中存儲有計算機可讀指令;所述至少一個處理器執(zhí)行所述計算機可讀指令,以使得所述設(shè)備執(zhí)行第一方面或第一方面的任意一種可能的實現(xiàn)方式中的方法的指令。
15、第四方面,本技術(shù)提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括在計算機可讀存儲介質(zhì)中存儲的計算機程序,并且所述計算程序通過處理器進行加載來實現(xiàn)上述第一方面或第一方面任意可能的實現(xiàn)方式的方法的指令。
16、第五方面,本技術(shù)提供了一種計算機可讀存儲介質(zhì),用于存儲計算機程序,所述計算機程序通過處理器進行加載來執(zhí)行第一方面或第一方面任意可能的實現(xiàn)方式的方法的指令。
17、第六方面,本技術(shù)提供了一種芯片,包括存儲器和處理器,存儲器用于存儲計算機指令,處理器用于從存儲器中調(diào)用并運行該計算機指令,以執(zhí)行上述第一方面或第一方面任意可能的實現(xiàn)方式的方法的指令。