国产精品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>

      用于圖形數(shù)據(jù)的分布式計(jì)算的系統(tǒng)和方法

      文檔序號(hào):9631552閱讀:776來源:國(guó)知局
      用于圖形數(shù)據(jù)的分布式計(jì)算的系統(tǒng)和方法
      【專利說明】用于圖形數(shù)據(jù)的分布式計(jì)算的系統(tǒng)和方法
      [0001]相關(guān)申請(qǐng)的交叉引用
      [0002]本申請(qǐng)要求2014年8月29日所提交的美國(guó)臨時(shí)專利申請(qǐng)序列號(hào)62/043,849的優(yōu)先權(quán)。明確地要求該臨時(shí)申請(qǐng)的優(yōu)先權(quán),并且該臨時(shí)申請(qǐng)的披露通過引用以其全部?jī)?nèi)容并且出于所有目的結(jié)合在此。
      技術(shù)領(lǐng)域
      [0003]本披露總體上涉及基于圖形的關(guān)系,并且更具體地(但不排他地)涉及對(duì)圖形數(shù)據(jù)的允許邊收集和頂點(diǎn)收集的分布式計(jì)算。
      【背景技術(shù)】
      [0004]對(duì)大數(shù)據(jù)集的許多類型的數(shù)據(jù)分析要求面向圖形的分析、或?qū)⒌靡嬗诿嫦驁D形的分析。圖形是包括被稱為頂點(diǎn)的數(shù)據(jù)對(duì)象的集合以及被稱為邊的頂點(diǎn)到頂點(diǎn)連接的集合的數(shù)據(jù)結(jié)構(gòu)。以圖形格式自然地對(duì)其中對(duì)象具有與其他對(duì)象的關(guān)系的數(shù)據(jù)進(jìn)行分析。
      [0005]在常規(guī)的面向圖形的分析中,計(jì)算遵循迭代且傳播的過程。常規(guī)的計(jì)算以活動(dòng)頂點(diǎn)和活動(dòng)邊的初始集開始。每一次迭代都包括對(duì)頂點(diǎn)和邊的子集所進(jìn)行的選擇--這些頂點(diǎn)和邊與活動(dòng)集相鄰一一以成為下一次迭代的活動(dòng)集。從而,計(jì)算在概念上行進(jìn)通過該圖形,從頂點(diǎn)一步步走到相鄰頂點(diǎn)。
      [0006]在許多應(yīng)用中,常規(guī)圖形數(shù)據(jù)計(jì)算的缺點(diǎn)是非常大量的計(jì)算步驟。典型的計(jì)算需要考慮從源頂點(diǎn)至一個(gè)或多個(gè)目的頂點(diǎn)的每一條可能的路徑。隨著路徑長(zhǎng)度的增加或頂點(diǎn)總數(shù)量的增加,路徑的數(shù)量以更快的速率增加。由于在處理大數(shù)據(jù)集時(shí)考慮高數(shù)量路徑,常規(guī)的圖形數(shù)據(jù)計(jì)算系統(tǒng)可能過慢。
      [0007]鑒于前述內(nèi)容,為了克服常規(guī)面向圖形的分析系統(tǒng)的上述障礙和缺陷,需要一種用于圖形數(shù)據(jù)的分布式計(jì)算的改善的系統(tǒng)。
      【附圖說明】
      [0008]圖1是展示分布式圖形計(jì)算系統(tǒng)的實(shí)施例的示例性頂層框圖;
      [0009]圖2是展示用于使用圖1的分布式圖形計(jì)算系統(tǒng)進(jìn)行兩階段圖形計(jì)算的方法的一個(gè)實(shí)施例的示例性流程圖;
      [0010]圖3是展示用于使用圖2的兩階段圖形計(jì)算方法來處理圖形數(shù)據(jù)的一個(gè)實(shí)施例的示例性流程圖;
      [0011]圖4是展示具有邊和頂點(diǎn)的樣本圖形的實(shí)施例的示例性圖;
      [0012]圖5是展示可以被存儲(chǔ)在圖1的分布式圖形計(jì)算系統(tǒng)的頂點(diǎn)表(Vertex Table)中的頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)的實(shí)施例的示例性圖;
      [0013]圖6是展示圖5的頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)的另一個(gè)實(shí)施例的示例性圖;
      [0014]圖7是展示可以被存儲(chǔ)在圖1的分布式圖形計(jì)算系統(tǒng)的邊表(Edge Table)中的邊數(shù)據(jù)結(jié)構(gòu)的實(shí)施例的示例性圖;
      [0015]圖8A是展示圖5的頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)的又另一個(gè)實(shí)施例的示例性圖;
      [0016]圖8B是展示圖7的邊數(shù)據(jù)結(jié)構(gòu)的又另一個(gè)實(shí)施例的示例性圖;
      [0017]圖9是展示使用圖2的兩階段圖形計(jì)算方法的用于頂點(diǎn)的狀態(tài)機(jī)的一個(gè)實(shí)施例的示例性圖;
      [0018]圖10是示例性圖,展示了通過圖2的兩階段圖形計(jì)算方法的階段的示例性圖形的狀態(tài)的一個(gè)實(shí)施例;
      [0019]圖11是示例性圖,展示了通過圖2的兩階段圖形計(jì)算方法的階段的示例性圖形的狀態(tài)的另一個(gè)實(shí)施例;
      [0020]應(yīng)注意的是,附圖不是按比例繪制的,并且出于展示的目的,貫穿這些附圖,具有相似結(jié)構(gòu)或功能的元件總體上用類似的參考號(hào)表示。還應(yīng)注意的是,附圖僅旨在幫助對(duì)優(yōu)選實(shí)施例的描述。附圖并不展示所描述的實(shí)施例的每個(gè)方面并且不限制本披露的范圍。
      【具體實(shí)施方式】
      [0021]由于當(dāng)前可用的圖形計(jì)算系統(tǒng)因?yàn)樗鼈円蠓浅4罅康挠?jì)算步驟而存在缺陷,提供減小的計(jì)算周期的用于圖形數(shù)據(jù)的分布式計(jì)算的系統(tǒng)可以證明是令人期望的并且為各種各樣的圖形計(jì)算應(yīng)用提供了基礎(chǔ),如尋找最佳行進(jìn)路線或分析消費(fèi)者和產(chǎn)品的圖形以作出有效的推薦。根據(jù)在此所披露的一個(gè)實(shí)施例,可以通過圖1中所展示的用于分布式圖形計(jì)算的系統(tǒng)150來實(shí)現(xiàn)此結(jié)果。
      [0022]圖形是包括頂點(diǎn)的集合以及被稱為邊的頂點(diǎn)到頂點(diǎn)連接的集合的數(shù)據(jù)結(jié)構(gòu)。定義一條邊的兩個(gè)頂點(diǎn)中的每一個(gè)頂點(diǎn)被稱為該邊的端點(diǎn)頂點(diǎn)之一。有向邊指定一個(gè)端點(diǎn)頂點(diǎn)為源頂點(diǎn)并且指定另一個(gè)端點(diǎn)頂點(diǎn)為目標(biāo)頂點(diǎn)。每一個(gè)頂點(diǎn)和每一條邊都具有多個(gè)描述性屬性,可以在分布式圖形計(jì)算期間對(duì)這些描述性屬性的值進(jìn)行讀取和更新。在某些實(shí)施例中,用于分布式圖形計(jì)算的系統(tǒng)150允許邊收集和頂點(diǎn)收集,每一種收集都在多個(gè)計(jì)算單元之間進(jìn)行分割。
      [0023]具體而言,參照?qǐng)D1,系統(tǒng)150包括用于協(xié)調(diào)一個(gè)或多個(gè)邊處理單元(或EPU) 101以及一個(gè)或多個(gè)頂點(diǎn)處理單元(或VPU) 102的操作的主(Master) 100。這些EPU 101和這些VPU 102通過數(shù)據(jù)傳輸網(wǎng)絡(luò)103來訪問圖形存儲(chǔ)單元(或GSU) 104。GSU 104可以包括一個(gè)或多個(gè)電子數(shù)據(jù)存儲(chǔ)裝置。例如,如在圖1中所展示的,GSU 104包括頂點(diǎn)表(VertexTable) 106和邊表(Edge Table) 105。合起來,存儲(chǔ)在頂點(diǎn)表106和邊表105中的這些值(例如,分別為頂點(diǎn)數(shù)據(jù)和邊數(shù)據(jù))表示圖形數(shù)據(jù)。
      [0024]常規(guī)分布式數(shù)據(jù)處理和并行數(shù)據(jù)處理的關(guān)鍵挑戰(zhàn)是對(duì)在多個(gè)處理器之間的寫操作和讀操作進(jìn)行排序和同步。寫操作改變某個(gè)數(shù)據(jù)項(xiàng)的值。因?yàn)榇烁淖?,寫操作的時(shí)機(jī)(例如,在讀操作之前或之后)可能影響計(jì)算結(jié)果。在某些實(shí)施例中,用于圖形數(shù)據(jù)的分布式計(jì)算的方法采用兩階段計(jì)算周期,重復(fù)該兩階段計(jì)算周期直至計(jì)算完成。該兩個(gè)階段有利地將讀與寫分開,以簡(jiǎn)化對(duì)這些處理器之間的操作的同步。
      [0025]現(xiàn)在轉(zhuǎn)到圖2,示出了可以與系統(tǒng)150 —起使用的兩階段圖形計(jì)算方法2000的一個(gè)實(shí)施例。計(jì)算方法2000包括兩個(gè)階段:計(jì)算階段201和更新階段202。該兩個(gè)階段在順序上被統(tǒng)稱為計(jì)算-更新序列。在計(jì)算階段201期間,系統(tǒng)150讀取邊屬性值和頂點(diǎn)屬性值并且執(zhí)行計(jì)算,但是可能不修改任何邊屬性值或頂點(diǎn)屬性值。計(jì)算階段201之后是更新階段202,在該更新階段中,系統(tǒng)150基于計(jì)算階段201中的這些計(jì)算來更新活動(dòng)頂點(diǎn)的屬性值。重復(fù)該計(jì)算-更新序列,直至滿足停止決策203的條件??梢曰趦呻A段圖形計(jì)算方法2000的應(yīng)用來對(duì)滿足停止決策203所需要的條件進(jìn)行編程。例如,在進(jìn)行預(yù)定數(shù)量的計(jì)算-更新序列迭代之后,某些應(yīng)用停止。在其他應(yīng)用中,當(dāng)屬性值達(dá)到預(yù)定目標(biāo)值時(shí),停止決策203的條件被滿足。在某些實(shí)施例中,計(jì)算-更新序列的這些迭代之前可以是設(shè)置步驟200并且之后可以是完成步驟204。
      [0026]在某些實(shí)施例中,更新階段202直到計(jì)算階段201中的所有操作都已經(jīng)完成之后才開始。此類實(shí)施例的優(yōu)點(diǎn)是系統(tǒng)150可以輕易地避免在頂點(diǎn)表105中的若干個(gè)頂點(diǎn)的更新之間的競(jìng)態(tài)情況。競(jìng)態(tài)情況是不令人期望的情況,在這種情況下,結(jié)果取決于兩個(gè)或更多個(gè)更新動(dòng)作中哪一個(gè)完成的更快。在其他實(shí)施例中,如果更新階段202的有選擇性的部分所修改的數(shù)據(jù)屬性將對(duì)正在進(jìn)行中的計(jì)算階段201操作沒有影響,此類部分可以在計(jì)算階段201仍然正在進(jìn)行時(shí)開始。此類實(shí)施例要求對(duì)數(shù)據(jù)屬性之間的相關(guān)性的認(rèn)識(shí)。相反地,如果計(jì)算階段201的所有操作都必須在更新階段202開始之前完成,那么系統(tǒng)150確保已經(jīng)解決了所有的相關(guān)性;不需要對(duì)相關(guān)性進(jìn)行詳細(xì)的檢查。
      [0027]參照?qǐng)D3,兩階段圖形計(jì)算方法2000可以用于執(zhí)行對(duì)任何圖形數(shù)據(jù)的分布式計(jì)算,如在過程3000中所示出的那樣。設(shè)置步驟200包括兩個(gè)子步驟:分割步驟300和初始化步驟301。類似地,計(jì)算階段201包括四個(gè)子步驟:邊計(jì)算步驟302、頂點(diǎn)計(jì)算步驟303、消息傳遞步驟304、以及同步步驟305。更新階段202包括頂點(diǎn)更新步驟306。
      [0028]為了更好地展示過程3000,還參照?qǐng)D4描述了示例圖形400和示例計(jì)算應(yīng)用?,F(xiàn)在轉(zhuǎn)到圖4,圖形400包括六個(gè)頂點(diǎn)V1-V6和六個(gè)有向的、加權(quán)的邊E1-E6。圖形400可以表示任何數(shù)量的實(shí)際應(yīng)用,如,例如,與兩個(gè)人都喜歡的電影相關(guān)的數(shù)據(jù)。例如,頂點(diǎn)V1-V6可以表示人頂點(diǎn)VI和V2以及電影頂點(diǎn)V3-V6。這些人-電影邊E1-E6中的每一個(gè)的權(quán)重屬性都可以表示特定的人(例如,VI或V2)對(duì)特定電影的興趣水平。權(quán)重1可以表示最低興趣水平,并且較高的值可以表示較高的興趣。給定此樣本圖形,過程3000可以用于返回人VI和V2已經(jīng)表達(dá)彼此興趣的電影列表。另外,對(duì)于每一個(gè)返回的電影V3-V6,過程3000可以返回該兩個(gè)興趣值中的較小者(因?yàn)檩^不感興趣的人具有最終發(fā)言權(quán))。使用過程3000的此樣本計(jì)算只要求單次迭代。
      [0029]分割步驟300:在某些實(shí)施例中,過程3000在主100劃分邊表105時(shí)開始,從而使得該圖形數(shù)據(jù)的每一條邊E1-E6被分配給一個(gè)EPU 101。同樣,主100在這些VPU 102之間分割這些頂點(diǎn)。以另一種方式來說,分割步驟300用于在多個(gè)處理器(例如,多個(gè)EPU 101和多個(gè)VPU 102)之間劃分工作負(fù)荷。在某些實(shí)施例中,方法2000的最終結(jié)果有利地獨(dú)立于如何分割這些邊和頂點(diǎn)。
      [0030]初始化步驟301:在某些實(shí)施例中,過程3000在主100初始化系統(tǒng)150時(shí)開始或繼續(xù)。初始化步驟301可以包括選擇哪些邊E1-E6和頂點(diǎn)V1-V6初始地處于活動(dòng)狀態(tài)下。處于活動(dòng)狀態(tài)下的邊或頂點(diǎn)參與計(jì)算階段201的當(dāng)前迭代;相應(yīng)地,不活動(dòng)(即,不處于活動(dòng)狀態(tài)下)的邊和頂點(diǎn)并不參與。初始化步驟301還可以包括:針對(duì)計(jì)算-更新序列的第一次迭代設(shè)置邊和頂點(diǎn)屬性為初始值(例如,針對(duì)平均興趣(average_Interest)設(shè)置電影頂點(diǎn)屬性為0)、針對(duì)每一個(gè)EPU 101和VPU 102對(duì)計(jì)算階段201的函數(shù)進(jìn)行編程、針對(duì)每一個(gè)VPU 102對(duì)更新階段202的函數(shù)進(jìn)行編程、針對(duì)停止決策203的停止條件進(jìn)行編程、并且對(duì)完成步驟204的多個(gè)完成函數(shù)進(jìn)行編程。
      [0031]使用上文的電影推薦示例,為了確定哪個(gè)電影頂點(diǎn)V3-V6直接連接到人頂點(diǎn)VI和V2兩者,主100將頂點(diǎn)VI和V2初始化為活動(dòng)的。任何具有頂點(diǎn)VI或V2作為源頂點(diǎn)的邊是用于此次迭代的活動(dòng)邊。主100將每一個(gè)EPU 101編程為具有計(jì)算函數(shù)(用于計(jì)算階段201),該計(jì)算函數(shù)使EPU 101的每一個(gè)活動(dòng)邊向其目標(biāo)頂點(diǎn)發(fā)送數(shù)據(jù)消息。該數(shù)據(jù)消息可以包括活動(dòng)邊的源頂點(diǎn)的ID代碼以及該活動(dòng)邊的興趣值。主100還將每一個(gè)VPU 102編程為具有更新函數(shù)(用于更新階段202),該更新函數(shù)使VPU102的每一個(gè)頂點(diǎn)對(duì)該頂點(diǎn)接收自EPU 101的數(shù)據(jù)消息進(jìn)行收集和檢查。用于每一個(gè)VPU 102的更新函數(shù)還向VPU 102指示如果任何一個(gè)頂點(diǎn)接收自EPU 101的數(shù)據(jù)消息集包括用于人頂點(diǎn)VI和人頂點(diǎn)V2兩者的ID代碼,那么VPU 102向主100發(fā)送包含接收頂點(diǎn)的ID和兩個(gè)興趣值中的較小者的數(shù)據(jù)消息。用于此示例的停止條件是在第一次迭代之后無條件地停止。將在對(duì)過程3000的接下來的步驟的描述過程中給出針對(duì)圖形400所發(fā)送和接收的特定消息。
      [0032]邊計(jì)算步驟302:在初始化步驟3
      當(dāng)前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1