針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的制作方法
【專利說明】
【背景技術】
[0001]大多數(shù)數(shù)據(jù)流計算是非循環(huán)的,意味著圖形中的操作可以按線性次序排序使得每個操作的輸入來自“前一次”操作的輸出。非循環(huán)圖形相對容易調度,因為按線性次序運行操作確保了全部操作使它們的輸入可用。然而,另一方面,循環(huán)圖形難以調度,因為它們不需要是確保它們的輸入在操作運行前被完全形成的頂點上的次序;這樣的圖形通常需要問題相關的知識來有效地調度。
[0002]在典型的增量數(shù)據(jù)流系統(tǒng)中,增量數(shù)據(jù)流系統(tǒng)被優(yōu)化以處理對輸入的小的改變。因此,對于針對最初數(shù)據(jù)的改變,增量數(shù)據(jù)流系統(tǒng)處理每個改變來產(chǎn)生輸出。同時,對于典型的迭代數(shù)據(jù)流系統(tǒng),迭代數(shù)據(jù)流系統(tǒng)可使用增量數(shù)據(jù)流程序的輸出并將其饋送返回到其輸入,以產(chǎn)生有效的固定點的循環(huán)。最后,如果它匯聚,所饋送回的對輸入的改變將不對輸出作出改變,并且迭代數(shù)據(jù)流系統(tǒng)將終止。然而,傳統(tǒng)增量和迭代計算在輸入發(fā)生改變時不兼容。在這樣的情形中,對輸入的每個改變需要被迭代數(shù)據(jù)流系統(tǒng)重新處理。即,隨著數(shù)據(jù)集合隨時間改變,傳統(tǒng)系統(tǒng)必須再次重新重頭運行程序,而不考慮程序是否被表示為數(shù)據(jù)流圖形,以數(shù)據(jù)并行方式執(zhí)行、聲明性地寫等。
【發(fā)明內容】
[0003]在此描述的技術高效地執(zhí)行增量、迭代和交互并行計算,其應用于在循環(huán)圖形中調度計算和管理諸如存儲器和網(wǎng)絡資源等的資源,循環(huán)圖形包括從在數(shù)據(jù)集合中的差異上執(zhí)行計算的差分數(shù)據(jù)流模型得到的那些。在此討論的技術運用在使用協(xié)調時鐘協(xié)議的分布式設置中。
[0004]提供本
【發(fā)明內容】
是為了以精簡的形式介紹將在以下詳細描述中進一步描述的一些概念。本
【發(fā)明內容】
不旨在標識所要求保護的主題的關鍵或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。例如術語“技術”可指代上述上下文和通篇文檔中所準許的系統(tǒng)、方法、計算機可讀指令、模塊、算法、硬件邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)、片上系統(tǒng)(SOC)、復雜可編程邏輯器件(CPLD))和/或技術。
【附圖說明】
[0005]參考附圖來描述詳細描述。在附圖中,附圖標記最左邊的數(shù)字標識該附圖標記首次出現(xiàn)的附圖。在不同的附圖中使用相同的附圖標記指示類似或相同的項。
[0006]圖1是描繪針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的各實施例可在其中操作的示例環(huán)境的框圖。
[0007]圖2是根據(jù)至少一個實施例,計算具有針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的圖形的相連接的組件的示例程序。
[0008]圖3是根據(jù)各實施例的示出示例過程的數(shù)據(jù)流圖形,該示例過程依照針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調用于執(zhí)行相連接的組件。
[0009]圖4是根據(jù)各實施例的描繪示例體系結構的框圖,該示例體系結構可執(zhí)行針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的操作。
[0010]圖5是根據(jù)一些實施例的描繪示例程序的圖,該程序用于針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調。
[0011]圖6A、6B、6C和6D是根據(jù)各實施例的,示出采用協(xié)調時鐘的示例系統(tǒng)中的信息流狀態(tài)圖。
[0012]圖7A和7B是根據(jù)各實施例的,示出采用協(xié)調時鐘的示例循環(huán)系統(tǒng)中的信息流的狀態(tài)圖。
[0013]圖8是根據(jù)各實施例的,描繪協(xié)調時鐘的示例應用以標識可運行工作的圖。
[0014]圖9是根據(jù)各實施例,描繪示例過程的圖,該過程用于針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調。
【具體實施方式】
[0015]皿
[0016]各實施例提供適應于解決在分布式迭代計算中遇到的至少三個類型的問題的技術。如在此進一步描述的,各實施例提供了協(xié)議,通過該協(xié)議服務將:1)可刪除分布式終端,2)可控制資源調度,以及3)可控制垃圾收集和/或壓縮。因此,在至少一個實施例中,針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調是在單機/多處理器環(huán)境中實現(xiàn)。同時,在至少一個實施例中,針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調在網(wǎng)絡分布式環(huán)境中實現(xiàn)。網(wǎng)絡分布式環(huán)境可包括一個或多個類型的計算資源,計算資源的類型可包括計算、聯(lián)網(wǎng)和/或存儲設備。網(wǎng)絡分布式環(huán)境還可被稱為云計算環(huán)境。
[0017]針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調支持實現(xiàn)差分數(shù)據(jù)流模式的高效增量和迭代數(shù)據(jù)并行計算。各實施例采用分散式協(xié)調時鐘協(xié)議,通過該協(xié)議分布式處理器可通過循環(huán)數(shù)據(jù)流圖形來高效跟蹤全局計算的進程。該進程信息允許處理器作出有效的本地調度決策、通過壓縮更新來回收存儲,以及并行地處理輸入數(shù)據(jù)的多個時期而不合并結果。
[0018]針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調技術能夠高效處理數(shù)據(jù),包括非迭代或復雜迭代算法,其可被編程以在可縮放分布式實現(xiàn)中隨新輸入的到達而自動更新。針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調有效地執(zhí)行增量和/或批量迭代的處理任務。在此描述的技術可像包括多個嵌套循環(huán)的強力連接的組件那樣計算并增量地更新分析的輸出。這些技術使用處理器的群集跨現(xiàn)實世界輸入流獲得這些任務的子第二更新等待時間。
[0019]涉及現(xiàn)實世界系統(tǒng)(諸如社交網(wǎng)絡系統(tǒng)或地圖/GPS系統(tǒng))的數(shù)據(jù)的大規(guī)模集合上的計算,可被建模成數(shù)據(jù)流圖形。在各實現(xiàn)中,在此描述的針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調在處理隨時間改變的數(shù)據(jù)時包括以下方案:數(shù)據(jù)流繪圖、聲明性編程,和數(shù)據(jù)并行性。
[0020]程序的數(shù)據(jù)流圖形表示是影響并發(fā)性和流水線化的一種途徑。因為一個函數(shù)(例如,數(shù)據(jù)流頂點)的輸出是下一個的輸入,它們一被上游頂點產(chǎn)生就用作下游頂點處理輸入,因此,兩個頂點可以同時執(zhí)行。聲明性計算機編程是用于數(shù)據(jù)流類型執(zhí)行的另一方法,它可被計算機編程人員采用來指定算子之間的依賴性,所述算子用于清除從程序到數(shù)據(jù)流圖形的映射。數(shù)據(jù)并行化是另一種方法,它提供了在數(shù)據(jù)流圖形中并行運行每個頂點的多個副本的一種途徑。對于合適的算法,將數(shù)據(jù)切片成各分區(qū)使得每個并行頂點實例可獨立處理其自己的分區(qū)是可能的。因此,在此描述的針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調可包括:將計算建模為數(shù)據(jù)流圖形,使用聲明性編程語言來寫用于計算的程序,并將該計算用數(shù)據(jù)并行性進行并行化,以及管理涉及隨時間改變的現(xiàn)實世界系統(tǒng)的數(shù)據(jù)的集合。
[0021]在此描述的技術實現(xiàn)能夠增量地更新包括任意嵌套迭代的大規(guī)模數(shù)據(jù)并行計算的可縮放分布式執(zhí)行平臺。例如,隨著從24小時滑動窗獲取連續(xù)到來的推文(tweet),該技術能夠實時地計算并維持推特(TWITTER)的消息收發(fā)圖形的相連的組件結構。系統(tǒng)采用經(jīng)由基于可能循環(huán)的圖形(其頂點表示版本化的集合上的操作)上的數(shù)據(jù)流的可縮放分布式實現(xiàn)的差分數(shù)據(jù)流計算模式。不同于現(xiàn)有的批量系統(tǒng),其中每個頂點被期望運行若干秒或分鐘,所描述的技術采用較細粒度通信和協(xié)調技術,其中許多頂點被期望運行若干微妙且一些根本不運行。在此描述的技術設計協(xié)調的開銷的實質減小,同時維持精確的分布式狀態(tài)信息。狀態(tài)信息包括,系統(tǒng)必須接下來調度數(shù)據(jù)流圖形中的哪個頂點。系統(tǒng)可根據(jù)調度來執(zhí)行工作,以通過頂點執(zhí)行時間中的多個數(shù)量級的減少來有助于系統(tǒng)性能。在一些實施例中,協(xié)調時鐘可管理計算,其中數(shù)據(jù)流圖形可以是不是功能上的數(shù)據(jù)并行的意義上的“算子”的合成的頂點。
[0022]所描述的框架和分布式協(xié)議概述了以允許獨立處理器作出關于調度和資源管理的有效本地決策的方式的差分數(shù)據(jù)流計算的過程。在各實施例中,在不同頂點版本之間的差分數(shù)據(jù)流圖形次序依賴性的結構,允許系統(tǒng)確定那個版本可繼續(xù)接收更新。輕量的非阻擋協(xié)議允許處理器交換關于處理動作的最小的量的信息,以便使系統(tǒng)中的其它處理器保持當前關于系統(tǒng)的待辦更新。所采用的差分數(shù)據(jù)流方法使用輸入記錄的小的集合進行細粒度的頂點調用。以此方式,系統(tǒng)展示批量處理器的高的吞吐量,同時響應于輸入中的改變,并用通常與流處理器相關聯(lián)的低等待時間在處理器之間傳播更新。參考圖1-8進一步描述各個實施例。
[0023]說曰月件環(huán)境
[0024]圖1顯示了其中針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的各實施例可操作的示例環(huán)境100。在一些實施例中,環(huán)境100的各個設備和/或組件包括可相互通信以及經(jīng)由一個或多個網(wǎng)絡104與外部設備通信的分布式計算資源102。
[0025]例如,網(wǎng)絡104可包括諸如因特網(wǎng)之類的公共網(wǎng)絡、諸如機構和/或個人內聯(lián)網(wǎng)的專用網(wǎng)絡、或專用和公共網(wǎng)絡的某種組合。網(wǎng)絡104還可包括任何類型的有線和/或無線網(wǎng)絡,包括但不限于局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、衛(wèi)星網(wǎng)絡、有線網(wǎng)絡、W1-Fi網(wǎng)絡、WiMax網(wǎng)絡、移動通信網(wǎng)絡(如3G、4G等等)或它們的任意組合。網(wǎng)絡104可利用通信協(xié)議,包括基于分組的和/或基于數(shù)據(jù)報的協(xié)議,如網(wǎng)際協(xié)議(IP)、傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)或其他類型的協(xié)議。而且,網(wǎng)絡104還可包括便于網(wǎng)絡通信和/或形成網(wǎng)絡的硬件基礎的若干設備,如交換機、路由器、網(wǎng)關、接入點、防火墻、基站、中繼器、主干設備等等。
[0026]在一些實施例中,網(wǎng)絡104可進一步包括能夠實現(xiàn)到無線網(wǎng)絡的連接的設備,諸如無線接入點(WAP)。各實施例支持通過WAP的連接性,WAP經(jīng)由各個電磁頻率(例如,無線電頻率)來發(fā)送和接收數(shù)據(jù),包括支持電氣和電子工程師協(xié)會(IEEE)802.11標準(例如,802.Hg,802.1ln等)和其他標準的WAP0
[0027]在各個實施例中,分布式計算資源102包括設備106(1) — 106 (Z).各實施例支持以下場景:其中設備106可包括一個或多個可在群集中操作或在其他分組的配置中操作以共享資源、平衡負載、提升性能、提供故障轉移支持或冗余或出于其他目的的計算設備。雖然示出為桌面計算機,但是設備106可包括多種多樣的設備類型并不限于特定類型的設備。設備106可包括任何類型的具有連接到存儲器110的一個或多個處理器108的計算設備。設備106可包括但不限于:臺式計算機、服務器計算機、個人計算機、膝上型計算機、平板計算機、可穿戴計算機、植入計算設備、電信設備、車載計算機、啟用網(wǎng)絡的電視、瘦客戶機、終端、個人數(shù)據(jù)助理(PDA)、游戲控制臺、游戲設備、工作站、媒體播放器、個人錄像機(PVR)、機頂盒、相機、用于包括在計算設備內的集成組件、家用電器、或任何其他類型的處理設備。
[0028]在一些實施例中,如有關設備106 (N)所示、存儲器110可存儲可由處理器108執(zhí)行的指令,指令包括操作系統(tǒng)112、針對循環(huán)數(shù)據(jù)流的基于可到達性的協(xié)調的框架114、以及可由處理單元108加載并執(zhí)行的其他模塊、程序或應用。作為替代或除此