System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機系統,尤其涉及一種基于局部性感知的核外圖隨機游走處理方法及系統。
技術介紹
1、隨機游走(random?walk),也被稱為隨機漫步,是一種數學統計模型,該模型最早由卡爾·皮爾遜在1905年提出。它描繪了一系列隨機的軌跡,其中每一步的移動都是隨機的,不受特定規律的約束。此模型能夠用于表示不規則的變動形式,類似于個體酒后步伐所形成的隨機過程記錄。隨機游走可以被視為馬爾可夫鏈或馬爾可夫過程的一個特例,即每一步的移動僅與當前位置有關,而與過去的位置無關,展現出“無記憶性”的特征。隨機游走模型作為一種強大的數學工具,在物理學、化學、生物學、計算機科學、金融學以及個性化推薦技術等多個領域都有著廣泛的應用。它不僅幫助我們理解和模擬自然界中的隨機過程,還為我們解決復雜問題提供了新的思路和方法。
2、隨機游走一般是在一個有向圖或者無向圖上進行,隨機游走模型分為兩類:一階段隨機游走(?first?order?)和二階段隨機游走(?second?order?)。對于一階段隨機游走,一個walker從一個節點出發,隨機選擇該節點的鄰居節點作為它的下一跳,如果達到游走的指定長度或者其他特定條件,游走結束。對于二階段隨機游走,一個walker的下一跳的選擇不僅僅依賴于它自身,還依賴于該walker上一跳的節點。
3、隨著圖數據規模的不斷擴大,單機系統的內存已難以完全容納整個圖。為解決這一問題,通常有兩種方案:一是采用分布式計算,將圖劃分為子圖并分別存儲在分布式集群的各個節點上;二是將圖劃分為子圖存儲在存儲容量更
4、基于同步方式的一階段隨機游走模型首先將整個圖劃分為若干子圖并存儲在磁盤中。然后依次將每個子圖加載到內存中,檢查該子圖中是否存在活動節點。如果存在活動節點,則從每個活動節點出發,進行一步隨機游走,之后將該子圖重新寫回磁盤。如果子圖中不存在活動節點,則直接將其替換回磁盤。該過程持續進行,直至所有子圖中均無活動節點,隨機游走結束。此種同步方式的隨機游走模式存在明顯的低效性,主要原因有兩個:首先,每個活動節點上的?walker?在每次游走中僅能前進一步,因此若?walker?需要跳出當前子圖,則需要多次從磁盤調度該子圖至內存中。其次,每次加載子圖到內存時,均按子圖編號順序進行,即便該子圖中無活動節點,也仍需重新調度。
5、基于同步方式的二階段隨機游走模型和一階段相比,唯一不同的是二階段需要從磁盤中調度多個子圖,基于同步方式的游走模式十分低效,進而產生了異步模式的隨機游走模型。
6、基于異步模式的一階段隨機游走模型,首先將整個圖劃分為若干子圖并存儲在磁盤中。隨后,每次從磁盤中選取包含活動節點數最多的子圖作為候選塊,將其加載到內存中。在內存中,對該子圖中的活動節點采用異步方式進行游走,即每個活動節點上的walker?可以連續執行多步游走,直至跳出該子圖或滿足游走結束條件。
7、基于異步模式的二階段隨機游走模型首先將整個圖劃分為若干子圖并存儲在磁盤中。在該模型中,每個活動節點上的?walker?的下一步游走不僅取決于當前所在節點,還依賴于該?walker?的上一跳節點。如果上一跳節點不在內存中,則該活動節點上的?walker無法執行下一步游走。因此,異步模式的二階段隨機游走的目標是最大化加載到內存中的有效活動節點數量,并在此基礎上以異步方式進行游走。相比同步模式,異步模式顯著提高了?i/o?效率,但?i/o?占比仍超過?60%,依然是限制核外隨機游走性能的主要瓶頸。
8、綜上所述,在現有的核外隨機游走方案中,i/o?仍然是系統的主要瓶頸。研究發現,超過?90%?的活動節點上的?walkers?能在極短的時間內完成隨機游走過程,而總?i/o時間的?60%?至?90%?主要集中在不足?10%?的活動節點上。這種情況導致了顯著的長尾效應,因此,亟需一種方法來有效應對由這?10%?活動節點引發的?i/o?延遲問題。
技術實現思路
1、本專利技術的目的在于針對現有技術的不足,提供一種基于局部性感知的核外圖隨機游走處理方法及系統,以解決核外隨機游走過程中,最后10%walkers在游走過程中對子圖的頻繁調度所引發的i/o瓶頸問題。
2、本專利技術是通過以下技術方案來實現的:
3、一種基于局部性感知的核外圖隨機游走處理方法,包括以下步驟:
4、(1)在一階段和二階段的隨機游走過程中,通過利用隨機游走后期的時空局部性特征,對圖進行動態劃分,每次僅將動態劃分后的子圖加載到內存中;
5、(2)當隨機游走的walkers數量減少至10%時,利用時間局部性將前90%?walkers游走過程中最頻繁訪問的前1%節點識別并提取,構建成一個子圖,將其加載至內存中,完成一次隨機游走;
6、(3)在處理完前1%活動節點所組成的子圖后,在隨后的隨機游走過程中,利用空間局部性對walkers所在的子圖進行動態劃分,即將子圖進一步分解,每次將分解后的子圖加載至內存進行處理,直至所有walkers完成其游走任務。
7、進一步地,所述將前90%?walkers游走過程中最頻繁訪問的前1%節點識別并提取,具體為:
8、在前90%的walkers隨機游走完成后,需要記錄圖中每個節點的訪問次數,游走結束后,對圖中所有節點按照被訪問次數從高到低進行排序,并從中選取前1%高訪問頻率的節點構成一個子圖,并存入內存中。
9、進一步地,所述對圖中所有節點按照被訪問次數從高到低進行排序,具體為:
10、采用歸并排序對圖節點按照訪問次數從高到低進行排序,歸并排序是一種分治算法,首先將數據分成兩個子數組,分別對其進行排序,然后將排好序的兩個子數組合并成一個有序數組。
11、進一步地,所述從中選取前1%高訪問頻率的節點構成一個子圖,具體為:提取的子圖以csr格式存儲,由于子圖中相鄰頂點的編號若存在間隔,則需使用哈希數組來建立子圖頂點id與索引0至n-1之間的映射關系;
12、首先,提取前90%游走過程中訪問頻率最高的前1%節點,并將這些節點按順序排列,接著,為每個節點id與索引0到n-1之間建立一一對應的哈希映射關系,生成哈希數組hash_array,然后,根據每個節點的邊數量,構建一個邊的偏移量數組offset_array,本文檔來自技高網...
【技術保護點】
1.一種基于局部性感知的核外圖隨機游走處理方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將前90%?walkers游走過程中最頻繁訪問的前1%節點識別并提取,具體為:
3.根據權利要求2所述的方法,其特征在于,所述對圖中所有節點按照被訪問次數從高到低進行排序,具體為:
4.根據權利要求2所述的方法,其特征在于,所述從中選取前1%高訪問頻率的節點構成一個子圖,具體為:提取的子圖以CSR格式存儲,由于子圖中相鄰頂點的編號若存在間隔,則需使用哈希數組來建立子圖頂點ID與索引0至n-1之間的映射關系;
5.根據權利要求1所述的方法,其特征在于,所述步驟(3)具體包括以下子步驟:
6.根據權利要求5所述的方法,其特征在于,所述構建子圖,其構建過程能夠和隨機游走過程并行執行,具體包括:
7.根據權利要求5所述的方法,其特征在于,每次需要將已經劃分好的子圖調入到Smart?SSD7的FPGA中進行更小動態子圖的構建操作,包括:
8.一種基于局部性感知的核外圖隨機游走處理系統,其
9.根據權利要求8所述的系統,其特征在于,所述主機CPU處理隨機游走過程以及對子圖中walkers數量進行更新,包括:
10.根據權利要求9所述的系統,其特征在于,所述后10%?walkers的游走過程,動態子圖的劃分操作在Smart?SSD中執行,具體為:
...【技術特征摘要】
1.一種基于局部性感知的核外圖隨機游走處理方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將前90%?walkers游走過程中最頻繁訪問的前1%節點識別并提取,具體為:
3.根據權利要求2所述的方法,其特征在于,所述對圖中所有節點按照被訪問次數從高到低進行排序,具體為:
4.根據權利要求2所述的方法,其特征在于,所述從中選取前1%高訪問頻率的節點構成一個子圖,具體為:提取的子圖以csr格式存儲,由于子圖中相鄰頂點的編號若存在間隔,則需使用哈希數組來建立子圖頂點id與索引0至n-1之間的映射關系;
5.根據權利要求1所述的方法,其特征在于,所述步驟(3)具體包括以下子步驟:
6.根據權利要求5所述...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。