国产精品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ù)并行操作中的次序保留的制作方法

      文檔序號(hào):6477654閱讀:104來源:國知局
      專利名稱:數(shù)據(jù)并行操作中的次序保留的制作方法
      數(shù)據(jù)并行操作中的次序保留
      背景
      軟件程序從軟件開發(fā)開始的日子起就可被編寫來順序地運(yùn)行。計(jì)算機(jī)隨時(shí) 間不斷變得更加強(qiáng)大,具有更多的處理能力和存儲(chǔ)器來處理高級(jí)操作。這一趨 勢(shì)最近從日益增長的單處理器時(shí)鐘速率移開,并趨向于增加單個(gè)計(jì)算機(jī)中可用 處理器的數(shù)量,目卩,從順序執(zhí)行移開并趨向于并行執(zhí)行。軟件開發(fā)者想要利用 計(jì)算機(jī)處理能力上的改進(jìn),以允許他們的軟件程序在采用新硬件時(shí)更快地運(yùn) 行。然而,對(duì)于并行硬件,這要求不同的方法開發(fā)者必須安排特定軟件程序 的一個(gè)或多個(gè)任務(wù)并行地(有時(shí)稱為"并發(fā)")執(zhí)行,以使同一邏輯操作可以 同時(shí)利用多個(gè)處理器,并在向該軟件在其上運(yùn)行的計(jì)算機(jī)添加更多處理器時(shí)提 供更好的性能。
      在并行化預(yù)先編寫的順序算法時(shí),通常需要保留盡可能多的之前的順序程 序行為。然而,現(xiàn)有順序邏輯的典型并行執(zhí)行引入了新的行為特征且?guī)砹丝?能對(duì)從順序到并行算法的遷移引入挑戰(zhàn)的問題。此外,此類問題可表示對(duì)不可 協(xié)商順序行為的改變以禁止遷移到一起也是可能的。此類問題的一個(gè)類別是通 過序數(shù)位置或通過基于程序員所指定的鍵選擇邏輯生成的鍵來保留數(shù)據(jù)定序。
      作為例示,設(shè)想程序員編寫此程序文本,此程序文本使用語言集成查詢綜 合作為表示數(shù)據(jù)并行計(jì)算的方式
      int[]A=...生成某些感興趣的輸入...;
      Array.Sort(A); 〃原地排序'A,
      int[] B =(從A中的x選擇x*x).ToArray();
      該順序算法簡單地依靠其結(jié)果被分配給的查詢的順序求值來為'B' 中的輸出元素保留'A'中的元素之間的相對(duì)順序。如果査詢綜合使用典型的 數(shù)據(jù)并行執(zhí)行來并行地運(yùn)行,則元素之間的相對(duì)順序可能變得雜亂。作為示例, 設(shè)想'A'包含元素{0, 1,2,3},程序員將可能期望在執(zhí)行后'B'包含{0, 1, 4,9}。此問題可一般地應(yīng)用到所有數(shù)據(jù)并行操作,而不僅是查詢綜合。概述
      公開了用于在數(shù)據(jù)并行操作中保留次序的各種技術(shù)和方法。重寫數(shù)據(jù)并行 操作的復(fù)雜組合(例如,樹)以包含引入分區(qū)和合并的數(shù)據(jù)并行操作。分區(qū)允 許每一分區(qū)并行地處理輸入的不相交的子集,且之后結(jié)果被合并回輸出的一個(gè) 集合以供消費(fèi)。系統(tǒng)確保直接或間接地消費(fèi)次序建立操作的輸出的操作記住必 要的定序信息,以便合并操作可使用取決于操作所在的類別而變化的技術(shù)來保 留次序。
      在一個(gè)實(shí)現(xiàn)中,通過執(zhí)行各種步驟而將輸入元素的定序保留在數(shù)據(jù)并行操 作中。支持兩種類型的定序基于鍵的和基于序數(shù)的。兩者都通過使用次序鍵 來建模在前者中,通過對(duì)輸入元素應(yīng)用編程者指定的鍵選擇函數(shù)來生成次序 鍵,而在后者中,通過提取序數(shù)元素位置來生成次序鍵(例如,在數(shù)據(jù)源是具 有索引的數(shù)組的情況下)。首先,分析包括單獨(dú)的數(shù)據(jù)并行操作的復(fù)雜操作以 使用各自的類別來標(biāo)記數(shù)據(jù)源中的每一操作。在一個(gè)實(shí)現(xiàn)中,對(duì)本討論重要的 兩個(gè)類別是物理重新定序,其中操作可擾亂元素之間現(xiàn)有的定序(物理地); 以及邏輯重新定序,其中操作包含元素上的所有之前的定序約束以支持新定 序。邏輯重新定序操作通常也是物理重新定序,但不必是物理重新定序。如果 復(fù)雜操作中沒有組成操作處于物理或邏輯重新定序類別中,則如果次序重要的 話,那么輸入數(shù)據(jù)元素的次序鍵被簡單地記住,以便其可在合并步驟期間被使 用。如果一個(gè)或多個(gè)操作處于物理重新定序類別中,則必須在重新定序期間傳 播次序鍵,以便其可在合并步驟期間被恢復(fù),且合并步驟必須執(zhí)行排序以重新 建立正確的分區(qū)內(nèi)定序。如果一個(gè)或多個(gè)操作處于邏輯重新定序類別中,則最 接近合并的操作負(fù)責(zé)提供重構(gòu)合并操作的次序所需的次序鍵信息。如果存在多 個(gè)邏輯重新定序操作,僅最接近合并的操作對(duì)直接或間接消費(fèi)其輸出的物理重 新定序操作施加上述要求。隨后使用通過次序鍵對(duì)元素進(jìn)行排序的各種技術(shù)中 的一個(gè)來執(zhí)行最終的合并過程以生成最終的有序集。
      提供本概述以便以簡化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些 概念。本概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在 用于幫助確定所要求保護(hù)的主題的范圍。附圖簡述


      圖1是一個(gè)實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的圖示。
      圖2是在圖1的計(jì)算機(jī)系統(tǒng)上操作的一個(gè)實(shí)現(xiàn)的并行操作次序保留應(yīng)用程 序的圖示。
      圖3是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的高級(jí)過程流程圖。
      圖4是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的過程流程圖,其示出在數(shù)據(jù)并行操作中保 留現(xiàn)有元素位置所涉及的高級(jí)階段。
      圖5是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的過程流程圖,其示出在數(shù)據(jù)并行操作中保
      留現(xiàn)有元素位置所涉及的更詳細(xì)的階段。
      圖6是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的過程流程圖,其示出提供便于次序保留的
      過程所涉及的各階段。
      圖7是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的過程流程圖,其示出提供產(chǎn)生最終有序集 的最終合并進(jìn)程所涉及的各階段。
      圖8是圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的過程流程圖,其示出用于在輸入上執(zhí)行數(shù) 據(jù)并行排序操作以使物理定序與邏輯定序匹配的變型。
      詳細(xì)描述
      此處的技術(shù)和方法可以在保留數(shù)據(jù)并行操作中的次序的應(yīng)用程序的一般 上下文中描述,但本技術(shù)和方法也用于除此之外的其它目的。在一個(gè)實(shí)現(xiàn)中, 此處所描述的一個(gè)或多個(gè)技術(shù)可被實(shí)現(xiàn)為諸如微軟⑧.NET框架等框架程序內(nèi) 的、或來自處理程序中的數(shù)據(jù)并行操作的任何其它類型的程序或服務(wù)的特征。
      在一實(shí)現(xiàn)中,提供重寫并行操作以包含引入分區(qū)和合并的操作的系統(tǒng)。并 行地處理每一分區(qū),且保留邏輯元素位置。將數(shù)據(jù)合并回一個(gè)輸出流以產(chǎn)生最 終的有序集。在一實(shí)現(xiàn)中,無論所選擇的分區(qū)策略,系統(tǒng)均允許序數(shù)次序保留 以確保輸出中的任何兩個(gè)元素e0和el的相對(duì)定序等同于輸入中的對(duì)應(yīng)元素 (即用于生成eO和el的那些元素,在例如映射操作的情況下)的相對(duì)定序。
      在一實(shí)現(xiàn)中,系統(tǒng)用于幫助基于鍵的次序保留。有時(shí),在不必定是基于序 數(shù)的元素之間建立定序。例如,排序操作在邏輯上或物理上對(duì)數(shù)據(jù)重新定序。一種在并行化此類操作時(shí)保留正確的次序的方式是在足夠長的時(shí)間內(nèi)記住鍵 信息以延遲合并直到結(jié)束,其中無論如何將招致至少一個(gè)合并操作。這相當(dāng)類 似于序數(shù)次序保留實(shí)際上,如下所述,序數(shù)次序保留是基于鍵的次序保留的 特例,其中原始元素索引被建模為排序鍵。
      如圖1所示,用于實(shí)現(xiàn)本系統(tǒng)的一個(gè)或多個(gè)部分的示例性計(jì)算機(jī)系統(tǒng)包括 諸如計(jì)算設(shè)備100等計(jì)算設(shè)備。在其最基本的配置中,計(jì)算設(shè)備100通常包括 至少一個(gè)處理單元102和存儲(chǔ)器104。取決于計(jì)算設(shè)備的確切配置和類型,存 儲(chǔ)器104可以是易失性的(如RAM)、非易失性的(如ROM、閃存等)或是 兩者的某種組合。該最基本配置在圖1中由虛線106來示出。
      另外,設(shè)備100還可具有附加特征/功能。例如,設(shè)備100還可包含附加 存儲(chǔ)(可移動(dòng)和/或不可移動(dòng)),包括但不限于磁盤、光盤或磁帶。這樣的附加 存儲(chǔ)在圖1中由可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)包 括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的 任何方法或技術(shù)來實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。存儲(chǔ)器 104、可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算 機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、 CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或 其它磁存儲(chǔ)設(shè)備、或者可用于存儲(chǔ)所需信息并且可由設(shè)備ioo訪問的任何其它 介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備100的一部分。
      計(jì)算設(shè)備100包括允許計(jì)算設(shè)備100與其它計(jì)算機(jī)/應(yīng)用程序115進(jìn)行通 信的一個(gè)或多個(gè)通信連接114。設(shè)備100也可具有輸入設(shè)備112,諸如鍵盤、 鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等。還可包括輸出設(shè)備lll,如顯示 器、揚(yáng)聲器、打印機(jī)等。這些設(shè)備在本領(lǐng)域中公知且無需在此處詳細(xì)討論。在 一實(shí)現(xiàn)中,計(jì)算設(shè)備100包括并行操作次序保留應(yīng)用程序200。并行操作次序 保留應(yīng)用程序200將在圖2中更詳細(xì)地描述。
      現(xiàn)在轉(zhuǎn)向圖2,并繼續(xù)參考圖l,示出了在計(jì)算設(shè)備100上操作的并行操 作次序保留應(yīng)用程序200。并行操作次序保留應(yīng)用程序200是駐留在計(jì)算設(shè)備 100上的應(yīng)用程序之一。然而,可以理解,并行操作次序保留應(yīng)用程序200可 另選地或另外地被具體化為一個(gè)或多個(gè)計(jì)算機(jī)上的計(jì)算機(jī)可執(zhí)行指令和/或與圖l所示的不同的變型。另選地或另外地,并行操作次序保留應(yīng)用程序200的
      一個(gè)或多個(gè)部分可以是系統(tǒng)存儲(chǔ)器104的一部分、可以在其它計(jì)算機(jī)和/或應(yīng)用 程序115上、或可以是計(jì)算機(jī)軟件領(lǐng)域的技術(shù)人員能想到的其它此類變型。
      并行操作次序保留應(yīng)用程序200包括負(fù)責(zé)執(zhí)行在此描述的技術(shù)中的一些 或全部的程序邏輯204。程序邏輯204包括用于重寫復(fù)雜數(shù)據(jù)并行操作以包含 引入分區(qū)和合并的操作的邏輯206 (如以下參考圖3所述);用于分析復(fù)雜操 作并將每一組成操作標(biāo)記為物理重新定序、邏輯重新定序序、兩者、或兩者皆 非的邏輯207 (如以下參考圖5所述);用于并行地處理每一分區(qū)的邏輯208 (如以下參考圖3所述);用于在數(shù)據(jù)并行操作中保留邏輯元素位置的邏輯210 (如以下參考圖4和5所述);用于將數(shù)據(jù)合并回一個(gè)輸出流以產(chǎn)生最終的有 序集的邏輯212 (如以下參考圖3和5所述);以及用于操作應(yīng)用程序的其它 邏輯220。
      現(xiàn)在轉(zhuǎn)向圖3-8,并繼續(xù)參考圖1-2,更詳細(xì)地描述了用于實(shí)現(xiàn)并行操作 次序保留應(yīng)用程序200的一個(gè)或多個(gè)實(shí)現(xiàn)的各階段。在某些實(shí)現(xiàn)中,圖3-8的 過程至少部分地在計(jì)算設(shè)備100的操作邏輯中實(shí)現(xiàn)。圖3是并行操作次序保留 應(yīng)用程序200的高級(jí)過程流程圖。過程在起始點(diǎn)240開始,重寫復(fù)雜數(shù)據(jù)并行 操作以包含在邏輯上透明但在物理上引入分區(qū)和合并的組成操作(階段242)。 此處所使用的術(shù)語"復(fù)雜操作"旨在包括將一個(gè)或多個(gè)數(shù)據(jù)并行操作的組合成 更復(fù)雜的操作,如其中節(jié)點(diǎn)是數(shù)據(jù)并行操作、單個(gè)操作、操作的鏈接表、圖形 等的樹形結(jié)構(gòu)。在一實(shí)現(xiàn)中,分區(qū)操作使用以下各種技術(shù)中的一種來簡單地將 輸入空間劃分為多個(gè)不相交的分區(qū)(階段243):動(dòng)態(tài)地、按需生成感興趣大 小的"組塊"、通過計(jì)算區(qū)域的邊界的索引來劃分為不相交的大小、按照較小 粒度剝離數(shù)據(jù)、基于特定鍵選擇函數(shù)進(jìn)行散列編碼等。隨后獨(dú)立且并行地處理 每一分區(qū)(階段244)。合并操作之后取得這些分區(qū)并將數(shù)據(jù)合并回一個(gè)輸出 流(階段246)。該過程在結(jié)束點(diǎn)248處結(jié)束。
      在分區(qū)和合并步驟之間,可以找到像投影、過濾、聯(lián)結(jié)、排序等操作。大 多數(shù)操作落入三個(gè)類別之一
      1. 邏輯次序重新定序。
      2. 物理次序重新定序。3. 兩者(物理和邏輯次序重新定序)。
      4. 兩者皆非(物理和邏輯次序保留)。
      排序是類別1的示例在邏輯上對(duì)各元素重新定序,因?yàn)楸仨殞⒂稍撆?序所建立的次序保留在最終集合中,這還意味著之前維護(hù)的任何定序信息現(xiàn)在 都過時(shí)了。排序可任選地在物理上重新排列元素,在這種情況下它處于類別3 中。散列重新分區(qū)操作是類別2中的操作的示例可基于鍵選擇函數(shù)將元素重 新分配到其它分區(qū),以造成分區(qū)之間的元素的不可預(yù)測(cè)且非確定性交錯(cuò)。但是 重新分區(qū)操作僅旨在物理上分配元素,而對(duì)在元素之間建立的邏輯定序沒有影 響。大多數(shù)操作落入類別4:投影、過濾等,它們既不在物理上對(duì)元素重新定 序,也不建立必須被保留的任何類型的邏輯定序信息。這些僅為少數(shù)非限制示 例,因?yàn)樵诿恳活悇e中顯然存在多得多的操作的示例。注意,任何類別中的操 作可在其各個(gè)類別的輸出中省略輸入元素,例如過濾和聯(lián)結(jié)等。保留此類操作
      的邏輯元素定序的某些示例在圖4-8中更詳細(xì)地描述。
      圖4示出在數(shù)據(jù)并行操作中保留現(xiàn)有元素位置所涉及的各高級(jí)階段的一 個(gè)實(shí)現(xiàn)。過程在起始點(diǎn)270開始,提供在元素之間建立邏輯定序的操作(階段 272)。邏輯定序的建立可采用要求保留元素序數(shù)位置的形式,或可另選地采 用使用給定一元素即生成用于定序的鍵的程序員指定的鍵選擇例程的排序操 作的形式。要求次序保留的操作將一約束施加于所有將處理其輸出的下游操作 上(階段274)。此處所使用的術(shù)語"下游操作"指的是直接或間接地消費(fèi)操 作的輸出的任何操作。這些下游操作使用基于操作處于哪個(gè)類別,即物理重新 定序、邏輯重新定序、兩者、或兩者皆非而變化的任務(wù)來記住定序信息(階段 276)。該過程在結(jié)束點(diǎn)278處結(jié)束。
      圖5示出數(shù)據(jù)并行操作中保留現(xiàn)有元素位置所涉及的更詳細(xì)階段的一個(gè) 實(shí)現(xiàn)。過程在起始點(diǎn)290開始,從各個(gè)數(shù)據(jù)并行操作中生成復(fù)雜的數(shù)據(jù)并行操 作并將其綁定到一數(shù)據(jù)源(階段292)。系統(tǒng)隨后分析復(fù)雜操作以用其類別標(biāo) 記每一組成操作(階段294)。如果在"物理和邏輯次序重新定序"類別中存 在任何操作(判定點(diǎn)296),則該類別中最接近合并的操作用于標(biāo)記各個(gè)操作 在復(fù)雜操作內(nèi)的位置,以使得所有下游操作必須記住在合并期間重構(gòu)次序所需的信息(階段298)。直接或間接地消費(fèi)來自該類別的此類操作的輸出的所有 操作執(zhí)行便于次序保留的過程(階段300)。最終合并過程使用來自前兩個(gè)步 驟的數(shù)據(jù)來產(chǎn)生最終的有序集(階段302)且該過程在結(jié)束點(diǎn)310處結(jié)束。
      然而,如果在"物理和邏輯次序重新定序"類別中沒有任何操作(判定點(diǎn) 296),且如果系統(tǒng)關(guān)心次序(判定點(diǎn)304),則系統(tǒng)將記住元素之間的必需的 元素定序信息(階段308),例如用于序數(shù)保留的索引或用于排序的鍵,且將 隨后前進(jìn)至階段300和302以如前所述地保留次序保留并執(zhí)行最終合并過程。 如果系統(tǒng)不關(guān)心次序,則不做任何特殊的事(階段306)且過程在結(jié)束點(diǎn)310 處結(jié)束。
      圖6示出提供便于次序保留的過程所涉及的各階段的一個(gè)實(shí)現(xiàn)。該過程在 起始點(diǎn)320開始,向"物理次序重新定序"類別中的每一操作通知需要保留定 序(階段322)。分析過程應(yīng)用試探法來確定是否存在比傳播并記住邏輯元素 定序信息更高效的替換算法(階段324)。如果該分析過程顯示存在更佳的替 換(判定點(diǎn)326),則系統(tǒng)以該替換操作來繼續(xù)(階段329)。如果不存在更 佳的替換(判定點(diǎn)326),則系統(tǒng)如前所述地將定序信息進(jìn)行相關(guān)并記住定序 信息(階段328)。該過程在結(jié)束點(diǎn)330處結(jié)束。
      圖7示出提供產(chǎn)生最終的有序集的最終合并進(jìn)程所涉及的各階段的一個(gè) 實(shí)現(xiàn)。該過程在起始點(diǎn)340開始,如果復(fù)雜操作中的所有組成操作小心地保留 了物理定序,則對(duì)元素執(zhí)行增量式的排序(階段342)。因?yàn)槊總€(gè)分區(qū)都已經(jīng) 被排序了,所以無需獨(dú)立地對(duì)每一分區(qū)進(jìn)行重新排序。對(duì)于其中邏輯到物理的 定序關(guān)系在復(fù)雜操作的執(zhí)行期間未被保留的情況,最終合并過程必須首先如圖 8所述地重構(gòu)每一分區(qū)之間的定序。它通過并行地對(duì)每一分區(qū)執(zhí)行獨(dú)立的排序 操作來這樣做。合并過程隨后前進(jìn)至通過使用例如記住之前的比較結(jié)果的堆數(shù) 據(jù)結(jié)構(gòu)、合并排序等許多技術(shù)之一來增量式地合并獨(dú)立排序的分區(qū)(階段344) 以產(chǎn)生最終有序集(階段346)。該過程在結(jié)束點(diǎn)348處結(jié)束。
      圖8示出在輸入上執(zhí)行數(shù)據(jù)并行排序操作所涉及的各階段的一個(gè)實(shí)現(xiàn),其 中元素之間的邏輯定序被改變但物理重新定序(即,排序)被推遲到最終合并。 如果多個(gè)排序出現(xiàn)在一復(fù)雜操作中,則這避免了僅有最后一個(gè)排序的效果將在 最終合并的輸出中保留時(shí)執(zhí)行多個(gè)排序的需要。也在所有操作未如上所述地小心保留物理定序時(shí)使用圖8的過程。過程在起始點(diǎn)370開始,更改排序操作從 而其在邏輯上生成鍵并建立次序保留特性(階段372)。系統(tǒng)隨后將在物理上 排序元素的責(zé)任委托給最終合并操作(階段374)。該過程在結(jié)束點(diǎn)376處結(jié)束。
      盡管用對(duì)結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解, 所附權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述具體 特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。落入在此所述和/或所附權(quán) 利要求所描述的實(shí)現(xiàn)的精神的范圍內(nèi)的所有等效方案、更改和修正都期望受到 保護(hù)。
      例如,計(jì)算機(jī)軟件領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,此處所討論的示例可以在 一個(gè)或多個(gè)計(jì)算機(jī)上不同地組織來包括比這些示例中所描繪的更少或更多選 項(xiàng)或特征。
      權(quán)利要求
      1.一種具有用于使得計(jì)算機(jī)執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述步驟包括重寫復(fù)雜數(shù)據(jù)并行操作以包含引入分區(qū)和合并的數(shù)據(jù)并行操作(206);并行地處理每一得到的分區(qū)(208);在數(shù)據(jù)并行操作的執(zhí)行期間建立邏輯次序信息(207);以及使用可用于保留所需的邏輯定序的最終合并過程來將數(shù)據(jù)合并回一個(gè)輸出流(212)。
      2. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述被保留的邏輯 次序信息是從對(duì)所述數(shù)據(jù)并行操作的輸入中的元素的位置導(dǎo)出的(272)。
      3. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述最終合并過程 可用于從所述邏輯次序信息中產(chǎn)生最終有序集(302)。
      4. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所有操作小心 地保留了物理定序,則所述最終合并過程可用于對(duì)元素執(zhí)行增量式排序(302)。
      5. 如權(quán)利要求4所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述一個(gè)輸出流包 含所述最終合并過程的有序結(jié)果(302)。
      6. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所有操作均未 小心地保留物理定序,則所述合并操作負(fù)責(zé)排序和合并(246)。
      7. 如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,按照建立的定序的 排序被更改以生成建立邏輯次序保留特性的鍵(372)。
      8. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述被保留的邏輯 次序信息從自對(duì)所述數(shù)據(jù)并行操作的輸入中的每一元素中提取排序鍵的鍵選 擇函數(shù)導(dǎo)出(308)。
      9. 一種用于保留復(fù)雜數(shù)據(jù)并行操作的執(zhí)行的輸出中的相對(duì)輸入元素位置 的方法,所述方法包括以下步驟訪問在元素之間建立邏輯定序并要求次序保留的操作(272);以及 使用取決于所述操作處于多個(gè)類別中的哪個(gè)而變化的技術(shù)來確保下游操 作記住定序信息(276)。
      10. 如權(quán)利要求9所述的方法,其特征在于,分析復(fù)雜操作以使用各自的類別來標(biāo)記每一組成操作,所述各自的類別選自下組物理次序重新定序類 別、邏輯次序重新定序類別、物理和邏輯次序重新定序類別、以及以上皆非類 別。
      11. 如權(quán)利要求9所述的方法,其特征在于,如果任何操作處于邏輯次 序重新定序類別或兩者類別中,則所述邏輯次序重新定序類別中最接近于所述 合并操作的所述操作記住之后重構(gòu)次序所需的信息(298)。
      12. 如權(quán)利要求11所述的方法,其特征在于,物理重新定序類別中消費(fèi)來自距所述合并最近的操作的輸出的所有操作記住在所述最終合并期間重構(gòu)次序所需的信息(300)。
      13. 如權(quán)利要求12所述的方法,其特征在于,所述次序保留過程包括 向物理次序重新定序類別中的每一操作通知需要保留定序(322);以及 如果存在被確定為比記住定序的改變更為高效的、不處于所述物理次序重新定序類別中的替換算法(326),則以所述替換操作繼續(xù)(329)。
      14. 如權(quán)利要求13所述的方法,其特征在于,進(jìn)一步包括 如果不存在被確定為比記住定序的改變更為高效的替換算法,則以使改變相關(guān)并記住改變來繼續(xù)(328)。
      15. 如權(quán)利要求13所述的方法,其特征在于,所述試探法用于關(guān)于所 述替換算法的判定(328)。
      16. —種具有用于使得計(jì)算機(jī)執(zhí)行如權(quán)利要求9所述的步驟的計(jì)算機(jī)可 執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)(200)。
      17. —種用于在數(shù)據(jù)并行操作中保留現(xiàn)有序數(shù)元素位置的方法,所述方 法包括以下步驟檢索數(shù)據(jù)源(292);分析復(fù)雜數(shù)據(jù)并行操作以使用各自的類別標(biāo)記數(shù)據(jù)源中的每一操作 (294);如果任何操作處于邏輯次序重新定序類別中(296),則在邏輯次序重新 定序類別中最接近于合并的操作中記住重構(gòu)次序所需的信息(298);在消費(fèi)來自最接近于所述合并的所述邏輯次序重新定序操作的輸出的所 有操作中執(zhí)行便于次序保留的次序保留過程(300);以及執(zhí)行最終合并過程以產(chǎn)生最終有序集(302)。
      18. 如權(quán)利要求17所述的方法,其特征在于,如果沒有操作處于所述 物理和邏輯次序重新定序類別中,且如果定序不重要,則不做特殊的事(306)。
      19. 如權(quán)利要求17所述的方法,其特征在于,如果沒有操作處于所述 物理和邏輯次序重新定序類別中,且如果定序是重要的,則元素之間的輸入數(shù) 據(jù)相對(duì)定序在所述最終合并過程期間被保留(308)。
      20. —種具有用于使得計(jì)算機(jī)執(zhí)行如權(quán)利要求17所述的步驟的計(jì)算機(jī) 可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)(200)。
      全文摘要
      公開了用于在數(shù)據(jù)并行操作中保留輸入元素定序的各種技術(shù)和方法。此定序可以基于輸入中的元素序數(shù)位置或程序員指定的為每一輸入元素生成可排序鍵的鍵選擇例程。重寫復(fù)雜數(shù)據(jù)并行操作以包含引入分區(qū)和合并的各個(gè)數(shù)據(jù)并行操作。隨后并行地獨(dú)立處理每一分區(qū)。系統(tǒng)使用取決于消費(fèi)者操作處于哪個(gè)類別中而變化的技術(shù)來確保下游操作記住由特定其它操作所建立的定序信息。使用了解數(shù)據(jù)元素之間建立的定序的最終合并過程將數(shù)據(jù)合并回一個(gè)輸出流。
      文檔編號(hào)G06F9/46GK101689125SQ200880022282
      公開日2010年3月31日 申請(qǐng)日期2008年6月16日 優(yōu)先權(quán)日2007年6月27日
      發(fā)明者D·卡拉漢, E·G·埃塞, J·J·達(dá)菲 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1