国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于i/o去重的多任務圖處理方法及系統(tǒng)的制作方法

      文檔序號:10724685閱讀:267來源:國知局
      一種基于i/o去重的多任務圖處理方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明公開了一種基于I/O去重的多任務圖處理方法及其系統(tǒng),屬于計算機存儲領域。該方法采用專用I/O線程通過異步方式從外存中讀取圖數(shù)據(jù),并加載到內(nèi)存的共享緩沖區(qū);并行執(zhí)行圖處理任務,在任務執(zhí)行過程中從共享緩沖區(qū)訪問圖數(shù)據(jù)。本發(fā)明通過提供統(tǒng)一訪問外存圖數(shù)據(jù)的方法實現(xiàn)了I/O重用,通過共享緩存的設計協(xié)調(diào)了并行任務的執(zhí)行速度,解決了當前外存模式圖處理系統(tǒng)在處理并發(fā)多任務時,請求圖數(shù)據(jù)出現(xiàn)I/O沖突和數(shù)據(jù)重復的問題,優(yōu)化了并行任務的數(shù)據(jù)等待時間。
      【專利說明】
      一種基于I /0去重的多任務圖處理方法及系統(tǒng)
      技術領域
      [0001]本發(fā)明屬于計算機存儲技術領域,更具體的,涉及一種基于I/O去重的多任務圖處理方法及其系統(tǒng),可減少I/o重復。
      【背景技術】
      [0002]作為計算機科學中一種抽象的數(shù)據(jù)結構,圖適合描述大規(guī)模、無規(guī)律、稀疏的關聯(lián)信息,被廣泛應用于各領域的數(shù)據(jù)分析之中。而自然圖數(shù)據(jù)往往是不規(guī)則、非結構化的,并且圖算法在數(shù)據(jù)訪問上缺乏局部性、隨機性突出,又常常需要重復迭代,造成傳統(tǒng)的大數(shù)據(jù)計算框架如Hadoop、MapReduce在處理圖數(shù)據(jù)時效率不高。
      [0003]為了從圖數(shù)據(jù)中挖掘出有用信息,近年產(chǎn)生了專門針對圖計算領域的圖處理系統(tǒng)?;痉譃閮深?一種是基于共享內(nèi)存的分布式圖處理系統(tǒng),另一種是基于外存的圖處理系統(tǒng)。由于對圖數(shù)據(jù)的隨機訪問專門進行了集中優(yōu)化,在執(zhí)行大多數(shù)圖算法時比原有的計算框架有更高的執(zhí)行效率。
      [0004]現(xiàn)在的圖處理系統(tǒng)能夠有效執(zhí)行單個圖處理任務,但是在處理同一數(shù)據(jù)集上的多個并行任務時,存在存儲資源的浪費和執(zhí)行時間的延長?;诠蚕韮?nèi)存的分布式圖處理系統(tǒng)在處理并行任務時,交換數(shù)據(jù)為每個圖處理任務私有,圖處理任務在節(jié)點間傳遞消息時會競爭網(wǎng)絡帶寬,而外存模式圖處理系統(tǒng),并行圖處理任務時盡管可以共享訪問圖數(shù)據(jù),但是在訪問外存圖數(shù)據(jù)時會造成I/O爭用。而圖算法執(zhí)行過程中,其性能受數(shù)據(jù)訪問時間影響顯著,所以不管是內(nèi)存模式圖處理系統(tǒng)的網(wǎng)絡帶寬競爭還是外存模式的I/O競爭帶來的數(shù)據(jù)訪問延遲最終都會反映到圖處理任務的總執(zhí)行時間上。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明提供一種基于I/O去重的多任務圖處理方法及其系統(tǒng),通過提供統(tǒng)一訪問外存圖數(shù)據(jù)的方法實現(xiàn)了 I/O重用,通過共享緩存的設計協(xié)調(diào)了并行任務的執(zhí)行速度,解決了當前外存模式圖處理系統(tǒng)在處理并發(fā)多任務時,請求圖數(shù)據(jù)出現(xiàn)I/O沖突和數(shù)據(jù)重復的問題,優(yōu)化了并行任務的數(shù)據(jù)等待時間。
      [0006]—種基于I/O去重的多任務圖處理方法,具體為:
      [0007]采用專用I/O線程通過異步方式從外存中讀取圖數(shù)據(jù),并加載到內(nèi)存的共享緩沖區(qū);
      [0008]并行執(zhí)行圖處理任務,在任務執(zhí)行過程中從共享緩沖區(qū)訪問圖數(shù)據(jù)。
      [0009]進一步地,在圖處理任務執(zhí)行過程中對共享緩沖區(qū)的圖數(shù)據(jù)進行訪問標識,將所有圖處理任務都訪問過的圖數(shù)據(jù)標記為無效,然后將從外存中新讀入的圖數(shù)據(jù)替換共享緩沖區(qū)中的無效圖數(shù)據(jù)。
      [0010]進一步地,對于任務隊列中已完成的圖處理任務,將其從任務單元隊列中移除,并刪除其對內(nèi)存共享緩沖區(qū)中數(shù)據(jù)的訪問標識;對于任務隊列中未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從任務隊列中移除。
      [0011]進一步地,將計算時間大于預定計算時間閾值且優(yōu)先級小于預定優(yōu)先級閾值的圖處理任務暫緩執(zhí)行,在系統(tǒng)空閑時再恢復執(zhí)行。
      [0012]一種基于I/O去重的多任務圖處理系統(tǒng),包括工作引擎、內(nèi)存緩存和任務單元;
      [0013]工作引擎,用于采用專用I/O線程通過異步方式從外存中讀取圖數(shù)據(jù),并加載到內(nèi)存緩沖區(qū);加載和卸載任務單元以及并行執(zhí)行任務單元,在執(zhí)行過程中從緩沖區(qū)訪問圖數(shù)據(jù);
      [0014]內(nèi)存緩存,用于緩存圖數(shù)據(jù);
      [0015]任務單元,用于執(zhí)行圖處理任務。
      [0016]進一步地,所述工作引擎還用于將圖處理任務對內(nèi)存緩沖區(qū)訪問過的圖數(shù)據(jù)進行標識,將所有圖處理任務都訪問過的圖數(shù)據(jù)標記為無效,然后將從外存中新讀入的圖數(shù)據(jù)替換共享緩存中的無效圖數(shù)據(jù)。
      [0017]進一步地,所述工作引擎還用于對于任務隊列中已完成的圖處理任務,將其從任務單元隊列中移除,并刪除其對內(nèi)存緩存中數(shù)據(jù)的訪問標識;對于任務隊列中未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從任務隊列中移除。
      [0018]進一步地,所述工作引擎還用于將計算時間大于預定計算時間閾值且優(yōu)先級小于預定優(yōu)先級閾值的圖處理任務暫緩執(zhí)行,在系統(tǒng)空閑時再恢復執(zhí)行。
      [0019]本發(fā)明與當前的多任務外存模式圖處理系統(tǒng)相比,通過提供統(tǒng)一訪問外存圖數(shù)據(jù)的方法實現(xiàn)了 I/o重用,通過共享緩存的設計協(xié)調(diào)了并行任務的執(zhí)行速度,優(yōu)化了并行任務的數(shù)據(jù)等待時間能夠有效的加快并行圖處理任務執(zhí)行速度。
      [0020]在并發(fā)度為N的情況下,系統(tǒng)的總執(zhí)行時間為:Tg=max(Tc-max,Tw),而對當前的外存模式圖處理系統(tǒng),系統(tǒng)的總執(zhí)行時間為:To = max (Tc-max,N*Tw),其中Tc-max = max (Tci,Tc2,...Tcn),Tci(i = I,2,...N)是每個圖處理任務的計算時間,Tw是數(shù)據(jù)訪問時間。
      [0021]當所有并行任務都是以I/O為主導的任務時,本系統(tǒng)的總執(zhí)行時間TC= TW,現(xiàn)有模型的總執(zhí)行時間To = N*IV,優(yōu)化了的總執(zhí)行時間(N-1)Tw;當所有任務都是計算為主導的任務時,當 Tw〈Tc—max〈NTw 時,TG=Tc—MAx,To = NTwd;W<^AiC^NTw-Tc—MAx,iTc—MAx>NT\^,Tg = Tc—max= To0
      【附圖說明】
      [0022]圖1為本發(fā)明的流程示意圖;
      [0023]圖2為圖處理任務加載的流程示意圖;
      [0024]圖3為圖處理任務卸載的流程示意圖。
      [0025]圖4為本發(fā)明實施例實施過程狀態(tài)示意圖,圖4a)為初始狀態(tài)圖,圖4b)為第一次迭代狀態(tài)圖,圖4c)為第二次迭代狀態(tài)圖。
      【具體實施方式】
      [0026]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。
      [0027]本發(fā)明提出一種基于I/O去重的多任務圖處理系統(tǒng),包括工作引擎、內(nèi)存緩存和多個任務單元。
      [0028]工作引擎:負責內(nèi)存共享緩存的數(shù)據(jù)加載與替換和圖處理任務的卸載\掛載。
      [0029]對于內(nèi)存緩存數(shù)據(jù)加載與替換,工作引擎屏蔽了系統(tǒng)內(nèi)圖處理任務向操作系統(tǒng)發(fā)起的讀寫請求,采用專門的線程統(tǒng)一負責1/0,該I/O線程通過異步的方式從外存中讀取圖數(shù)據(jù)加載到內(nèi)存中的一塊緩沖區(qū),該緩沖區(qū)為所有使用同一圖數(shù)據(jù)集的圖處理任務共享。工作引擎根據(jù)圖處理任務對圖數(shù)據(jù)的訪問標識完成共享緩存中圖數(shù)據(jù)的加載與替換。更具體地說,將所有圖任務都訪問過的圖數(shù)據(jù)標記為無效,然后用外存中讀入的圖信息替換緩存中無效的圖數(shù)據(jù),完成圖數(shù)據(jù)的加載。
      [0030]對于圖處理任務的卸載\掛載,根據(jù)系統(tǒng)負載狀況和預設的調(diào)度算法在圖處理任務執(zhí)行過程中自由的卸載和掛載任務單元。并行執(zhí)行圖處理任務,在任務執(zhí)行過程中從緩沖區(qū)訪問圖數(shù)據(jù)。按照一種優(yōu)化的實施方式,對于需要執(zhí)行大量的計算過程且優(yōu)先級較低的圖處理任務,可以將其調(diào)出工作引擎,避免該圖處理任務影響了以I/o為主導的圖處理任務迭代的速度。在系統(tǒng)空閑時再讀取檢查點恢復工作,即掛載該任務單元,獲取任務實時性和平均執(zhí)行時間上的平衡。
      [0031]共享緩存:用于緩存從外存讀入的圖數(shù)據(jù)。圖數(shù)據(jù)量非常大,這里采用分批讀入,首先從外存讀取部分圖數(shù)據(jù)加載于內(nèi)存共享緩存中,對于圖處理任務都訪問過的圖數(shù)據(jù),用外存中讀入的新的圖數(shù)據(jù)替換共享緩存中無效的圖數(shù)據(jù),完成圖數(shù)據(jù)的加載。共享緩沖區(qū)的數(shù)據(jù)替換不是一次性完成的,只要存在所有圖處理任務訪問過的無效圖數(shù)據(jù),就可以完成圖數(shù)據(jù)的替換。
      [0032]任務單元:任務單元為用戶提供編程接口,包含用戶定義的圖處理任務的具體實現(xiàn),擁有自己的狀態(tài)集和更新集。其中,狀態(tài)集為圖處理任務提供與頂點相關聯(lián)的狀態(tài)信息和臨時變量的集合,更新集是圖處理任務執(zhí)行過程中傳遞的消息集合。
      [0033]本發(fā)明提出一種基于I/O去重的多任務圖處理方法,如圖1所示,具體為:
      [0034](I)工作引擎清理
      [0035]工作引擎將任務單元訪問共享存儲的標識重置,即將unit_map(任務單元到緩存偏移量的映射)中的每一項都置為0,并且調(diào)用reset函數(shù)重置任務單元隊列中每個任務單元對應的緩沖區(qū)和更新集。
      [0036](2)外存圖數(shù)據(jù)加載
      [0037]工作引擎重啟磁盤1/0,重新讀取外存圖數(shù)據(jù)集,加載圖數(shù)據(jù)集到共享緩存。
      [0038](3)圖處理任務加載
      [0039]只有使用同一數(shù)據(jù)集的圖處理任務,才能采用共享緩沖區(qū)的方式并行執(zhí)行。
      [0040]如圖2所示,工作引擎遍歷任務單元隊列,對于已經(jīng)完成初始化的圖處理任務,工作引擎為其scatter階段和gather階段分別建立一個線程,并將其加入到線程池中。任務單元隊列非空時,重復步驟(3),否則,執(zhí)行步驟(4)。
      [0041 ] (4)圖處理任務執(zhí)行
      [0042]任務單元中,scatter線程循環(huán)調(diào)用getNestEdge函數(shù)從內(nèi)存緩存中獲取邊信息,然后執(zhí)行用戶定義的算法,當需要更新頂點狀態(tài)的時候調(diào)用addUpdate函數(shù)向更新集中添加消息,在共享緩存中圖數(shù)據(jù)集的所有邊被訪問完時結束。Gather階段循環(huán)調(diào)用getUpdate函數(shù)收集更新集中的消息,執(zhí)行用戶定義的算法,應用更新修改頂點狀態(tài)集,在所有消息被訪問完時結束。
      [0043](5)圖處理任務卸載
      [0044]如圖3所示,工作引擎遍歷任務單元序列,對于已完成的圖處理任務,將其結果寫到輸出文件中并將其從任務單元隊列中移除,并刪除其在共享緩存中的任務標識;對于未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從系統(tǒng)中移除。任務單元隊列非空時,重復步驟(5),否則,結束此次迭代過程。
      [0045]下面結合實施例對本發(fā)明進行進一步說明,考慮一個并行度N=2的情況。
      [0046]以單源最短路徑為例介紹圖處理任務的執(zhí)行過程,輸入的圖數(shù)據(jù)與各節(jié)點的初始狀態(tài)圖如圖4a)所示。
      [0047]讀入圖數(shù)據(jù)之前,算法執(zhí)行初始化操作,將源點X的距離值設置為0,其余頂點距離值設置為正無窮。初始化完成后,scatter線程依次處理系統(tǒng)讀入的每一條邊,例如第一條邊(x,y,12),由于y頂點此時的距離為正無窮,貝Ij生成一條更新消息(id = y,distance = 12,pre_vertex = x)加入到更新集中,gather線程通過getUpdate函數(shù)從更新集中收到這一更新消息,發(fā)現(xiàn)更新中的距離小于當前頂點狀態(tài)域中的正無窮,則更新y節(jié)點的距離與前驅頂點;當處理邊(z,y,3)時,由于此時z的距離值為正無窮,y.distance〈z.distance+(z_>y).weight,算法不產(chǎn)生更新操作;邊(x,z,7)會產(chǎn)生對z頂點的更新,第一輪迭代完成后系統(tǒng)的狀態(tài)如圖4b)所示。
      [0048]在第二輪迭代中,邊(z,y,3)會為頂點y產(chǎn)生一條更新消息,將距離值從12修改為較小的10,而邊(x,y,12)和邊(x,z,7)都不會產(chǎn)生更新消息,視作對算法“無用”的邊,如圖4c)所示。
      [0049]當系統(tǒng)在下一次迭代中發(fā)現(xiàn)生成的更新消息數(shù)量為O時,中止算法,輸出結果。
      [0050]工作引擎遍歷任務單元序列,對于已完成的圖處理任務,將其結果寫到輸出文件中并將其從任務單元隊列中移除,并刪除其在共享緩存中的任務標識;對于未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從系統(tǒng)中移除。
      [0051]本領域的技術人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      【主權項】
      1.一種基于I/O去重的多任務圖處理方法,其特征在于,具體為: 采用專用I/O線程通過異步方式從外存中讀取圖數(shù)據(jù),并加載到內(nèi)存的共享緩沖區(qū); 并行執(zhí)行使用同一圖數(shù)據(jù)集的圖處理任務,在圖處理任務執(zhí)行過程中從共享緩沖區(qū)訪問圖數(shù)據(jù)。2.根據(jù)權利要求1所述的基于I/O去重的多任務圖處理方法,其特征在于,在圖處理任務執(zhí)行過程中對共享緩沖區(qū)的圖數(shù)據(jù)進行訪問標識,將所有圖處理任務都訪問過的圖數(shù)據(jù)標記為無效,然后將從外存中新讀入的圖數(shù)據(jù)替換共享緩沖區(qū)中的無效圖數(shù)據(jù)。3.根據(jù)權利要求1或2所述的基于I/O去重的多任務圖處理方法,其特征在于,對于任務隊列中已完成的圖處理任務,將其從任務單元隊列中移除,并刪除其對內(nèi)存共享緩沖區(qū)中圖數(shù)據(jù)的訪問標識;對于任務隊列中未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從任務隊列中移除。4.根據(jù)權利要求1或2所述的基于I/O去重的多任務圖處理方法,其特征在于,將計算時間大于預定計算時間閾值且優(yōu)先級小于預定優(yōu)先級閾值的圖處理任務暫緩執(zhí)行,在系統(tǒng)空閑時再恢復執(zhí)行。5.—種基于I/O去重的多任務圖處理系統(tǒng),其特征在于,包括工作引擎、內(nèi)存緩存和任務單元; 工作引擎,用于采用專用I/o線程通過異步方式從外存中讀取圖數(shù)據(jù),并加載到內(nèi)存共享緩沖區(qū);加載和卸載任務單元以及并行執(zhí)行任務單元,在執(zhí)行過程中從共享緩沖區(qū)訪問圖數(shù)據(jù); 內(nèi)存緩存,用于緩存圖數(shù)據(jù); 任務單元,用于執(zhí)行圖處理任務。6.根據(jù)權利要求5所述的基于I/O去重的多任務圖處理系統(tǒng),其特征在于,所述工作引擎還用于將圖處理任務對內(nèi)存緩沖區(qū)訪問過的圖數(shù)據(jù)進行標識,將所有圖任務都訪問過的圖數(shù)據(jù)標記為無效,然后將從外存中新讀入的圖數(shù)據(jù)替換共享緩存中的無效圖數(shù)據(jù)。7.根據(jù)權利要求5所述的基于I/O去重的多任務圖處理系統(tǒng),其特征在于,所述工作引擎還用于對于任務隊列中已完成的圖處理任務,將其從任務單元隊列中移除,并刪除其對內(nèi)存緩存中數(shù)據(jù)的訪問標識;對于任務隊列中未完成的圖處理任務,如果未收到終止信號,則將其保存在任務隊列中進入下一次迭代,否則,將其從任務隊列中移除。8.根據(jù)權利要求5所述的基于I/O去重的多任務圖處理系統(tǒng),其特征在于,所述工作引擎還用于將計算時間大于預定計算時間閾值且優(yōu)先級小于預定優(yōu)先級閾值的圖處理任務暫緩執(zhí)行,在系統(tǒng)空閑時再恢復執(zhí)行。
      【文檔編號】G06F9/48GK106095552SQ201610399043
      【公開日】2016年11月9日
      【申請日】2016年6月7日
      【發(fā)明人】施展, 馮丹, 彭亞妹, 鮑匡迪, 王子毅, 于瑞麗
      【申請人】華中科技大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1