亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于并行化的數(shù)據(jù)轉換過程的表示的制作方法

文檔序號:6577472閱讀:143來源:國知局
專利名稱:用于并行化的數(shù)據(jù)轉換過程的表示的制作方法
技術領域
本發(fā)明涉及信息管理。
背景技術
由于微處理器時鐘速率的增長趨于緩慢,現(xiàn)在微處理器制造商也增加處 理器內核的數(shù)量以便增加處理能力。但是,附加的內核的潛力只能被用于可 并行化的商務應用,也即,可以被"劃分"成可以并行執(zhí)行的多個部分的商 務應用。如今,應用需要以一種專門方式進行編寫以便利用并行處理線程。 編寫并行執(zhí)行的應用需要付出更多努力,并且需要專門訓練。發(fā)明內容這里公開了用于提供編程模型和運行時架構的系統(tǒng)、裝置和方法,所述 編程^^型和運行時構架以允許這些過程并行執(zhí)行而不要求程序員編寫專用 的并行代碼的形式來表達數(shù)據(jù)轉換(操作)過程。在一個實施例中,定義一 個或多個操作用于一個或多個項的庫。分類與用于執(zhí)行環(huán)境的轉換圖中的一 個或多個操作相關聯(lián),其中所述分類定義是否可以對一個輸入數(shù)據(jù)集的獨立 子集并行執(zhí)行所述操作?;谒龇诸愄幚硭霾僮鳌T诹硪粋€實施例中,接收轉換圖,所述轉換圖包括一個或多個操作,其 中所述操作是可并行化操作和不可并行化操作。所述圖被切分成多個片段, 其中每個片段由可并行化操作的線性序列組成,除了最后的操作,其不需要 是可并行化的。在執(zhí)行期間,這些片段被劃分成許多并行的相同片段,各自 處理一部分輸入數(shù)據(jù),其中在片段首部添加轉換以劃分輸入數(shù)據(jù),并在片段 尾部合并結果。公開了其它指導系統(tǒng)、方法和計算機可讀介質的實施方式。


圖1是信息管理系統(tǒng)的一個實施例的框圖。圖2是一個示范性轉換圖。圖3顯示了并行化之前和之后的轉換圖。圖4是處理一個轉換圖的示例過程的流程圖。圖5是一個示例計算機系統(tǒng)的示意圖,所述計算機系統(tǒng)可用于實施本文 描述的系統(tǒng)和方法。
具體實施方式
圖1是可用于實現(xiàn)本發(fā)明的系統(tǒng)100的一個實施例的框圖。在一個實施 例中,信息管理系統(tǒng)100可包括提供數(shù)據(jù)管理和持續(xù)功能性的后端信息管理 層102,以及裝載(host)應用的應用層104,所述應用可利用所述信息管理 系統(tǒng)。在一個實施例中,后端信息管理層102數(shù)據(jù)可包括存儲器106。信息項 105及其關聯(lián)存儲在存儲模塊106中??梢砸蕴幚韴D表的形式,也即轉換圖, 經(jīng)由服務器API 112從應用服務器層104發(fā)送請求到服務器API 112。并行 處理引擎110可拾取這些轉換圖并嘗試著最大化它們的并行執(zhí)行。利用所述 信息管理系統(tǒng)的功能性的應用程序116可在應用層104被部署,并且該應用 程序可通過無狀態(tài)服務器API訪問后端服務器實例。由于該無狀態(tài)API后端 服務器可作為資源池,其中每個服務器實例可以處理每個應用請求。在一個實施例中,(并行化的)轉換圖的實際處理在所述后端服務器實 例114的執(zhí)行引擎108中發(fā)生。在一個實施例中,應用服務器116包含應用 邏輯并且與應用程序交互。在一個實施例中,獨立的UI層可以存在。在其 它實施例中,應用服務器116可以被網(wǎng)頁服務調用來調用,應用服務器116 發(fā)送查詢或處理請求至后端服務器實例114,在后端服務器實例114中服務 器API 112將輸入信息進行解碼,并構造相應的轉換圖,并行處理引擎110 將所述圖切分成多個片段,并動態(tài)地使計劃用于執(zhí)行的片段并行化。執(zhí)行引 擎108可在獨立的工作線程中執(zhí)行轉換鏈;執(zhí)行引擎108從所述并行化中分 離(decouple )。當需要時,執(zhí)行引擎108可從存儲器106中抽取信息項10、 關聯(lián)及屬性。在一個實施例中,存儲器106可存儲信息項105,該信息項是屬性的集 合并在傳統(tǒng)數(shù)據(jù)庫中扮演數(shù)據(jù)對象的角色,以及可存儲關聯(lián),其與信息項105 彼此關聯(lián)。在一個實施例中,屬性將信息項與屬性值關聯(lián)。信息項105和關 聯(lián)的概念將在下文作更詳細地解釋。例如,信息項105的集合可以通過明確地列出其元素或者通過描述其從其它集合中被創(chuàng)建的方法來進行定義,例如,通過過濾或i殳置統(tǒng)一類型(unification )。在一個實施例中,信息項105的屬性或關聯(lián)存在,其僅在特定的上下文 中有效,例如,對于信息項的特定版本。在一個實施例中,上下文也可以針 對信息項105集合而進行定義。在信息項105和關聯(lián)上執(zhí)行的所有過程,例如選擇、檢索關聯(lián)項,過濾 以及屬性處理,都可被表示成圖,其中節(jié)點是處于特定狀態(tài)的信息項105的 集合,并且邊表示轉換(操作)。描述數(shù)據(jù)處理所需的操作集合通常在下面 列出的商務應用中被完成。在下文中稱為"直接可并行化的轉換"的某類轉換可以被直接并行化, 因為如果它們在一給定的輸入集合的劃分上被獨立應用,那么它們的輸出集 合是分離的,并且不依賴于特定的執(zhí)行順序。在第二類轉換中,在下文中稱為非直接可并行化的轉換,在結果集合中 一個信息項105或關聯(lián)可依賴于輸入集合中的多于一個的信息項105或關 聯(lián)。非直接可并行化的轉換會難以并行化,因為將所述輸入集合劃分成多個 分離性的子集不能確保當所述轉換獨立地應用到每個子集時相應的輸出子 集也是分離的。然而,通過應用級聯(lián)策略(cascading strategy ), 一些非直接 可并行化的轉換可以被并行化,例如,可以執(zhí)行計算信息項105集合中一個 屬性的最小值,即使所述集合被劃分成多個子集(如圖3所示)。在這種級聯(lián)中,轉換可以首先被應用到每個子集中,然后這些子集的結 果值被再次用作相同轉換的輸入直到只剩下一個值。所述級聯(lián)實現(xiàn)對于不同 的"可級聯(lián)"轉換可以是不同的,但是它總是基于首先對單獨的集合然后對 合并的結果遞歸運行所述轉換的概念。在一些實施例中,轉換將信息項105的集合及其關聯(lián)作為輸入,并計算 新的信息項105的集合及其關聯(lián)作為它的輸出。"改變轉換,,可以用在持久 存儲器中的所述輸出集合覆蓋所述輸入集合,或者,為了更加準確,輸出集 合是所述輸入集合的新版本。過濾轉換根據(jù)類型、關聯(lián)或屬性值減少實現(xiàn)給定條件的元素的子集的集 合。所述過濾轉換不是非直接可并行化的。合并轉換的結果是在至少一個所述輸入集合中出現(xiàn)的所有元素的集合。 合并操作可以把與上下文相關的"出現(xiàn)次數(shù)"屬性添加到所述結果集合的述元素中。所述合并操作是非直接可并行化的,但是可以被級聯(lián)。交叉轉換的結果是包含在兩個原始集中的所有信息項的集合。所述交叉轉換是非直接可并行化的,因為 一個元素是否是最后集合的一部分的問題只有在處理完兩個集合后才能被估計。減法轉換從另一個集合中除去一個集合的內容。它是非直接可并行化的,并且不能被級聯(lián)。與信息項105關聯(lián)的衍生轉換通過給定的關聯(lián)類型檢索與原集中的信息 項之一關聯(lián)的特定類型的所有信息項。所述操作不是非直接可并行化的,但 是如果在分離集合的子集上并行地執(zhí)行,就會導致輸出集合的重疊。當這些 輸出集合被再次合并以供在單個線程中的進一步處理時,必須消除這些重疊。服務調用轉換調用功能或服務,將給定信息項的特定屬性或信息項集合 映射到所述服務輸入?yún)?shù)。它不是非直接可并行化的,但是只有當服務提供 者可以執(zhí)行負載平衡時并行化才是有意義的。順序轉換通過增加與所述信息項關if關的"有前驅(has predecessor)"和 "有后繼(has successor)",將對應于給定屬性的集合的信息項105排序。 這些關聯(lián)只在所述集合的上下文中有效。順序集合具有指向序列中第一個和 最后一個信息項的指針。所述順序操作是非直接可并行化的,但是可以被級 聯(lián)。聚合轉換減少[合成]樹至特定類型的不同的信息項105的平面列表。例 如,在材料的分級清單中類型"螺栓(bolt)"的所有信息項可以被聚合。然 后結果將是在裝配中使用的不同螺栓大小的清單,其表示與上下文相關的屬 性在所述樹中出現(xiàn)的次數(shù)或與上下文相關的屬性聚合的數(shù)量(如果組成所述 樹的關聯(lián)用相應的數(shù)量屬性和/或因素來標記)。所述聚合操作是非直接可并 行化的,但是可以被級聯(lián)。例如最小、最大、總和和平均值操作這樣的數(shù)值聚合器評估集合所有元 素的特定屬性,并確定所有值的最小值/最大值/平均值或總和。這些操作是 非直接可并行化的,但是可以;故級聯(lián)。賦值轉換增加或重寫屬性值或提供新的關聯(lián)目標。在所述轉換圖中,其 輸出是其處理的信息項的更新的版本。如果能夠確保在分支前知道將被分配 的值,那么所述賦值操作就可在并行線程中執(zhí)行。迭代器描述了為了集合S中的每個信息項105轉換序列需要單獨被執(zhí)行的事實;典型地4丸行計算,為信息項105分配結果。在轉換圖中,所述迭代器具有作為輸出的代表單個集合實體的節(jié)點,所述節(jié)點在"迭代"執(zhí)行期間是可用的。迭代器的第二個輸出是修改后的集合S,,它在"S"的所有元素 都被處理完后是可用的,并且然后它可被連接到進一步的轉換圖。起源于個 別實體的轉換鏈需要與轉換圖的其余部分保持隔離,因為轉換圖的節(jié)點只有 在相應的迭代器線程的執(zhí)行期間有效,并且不能確定轉換圖中的其它節(jié)點在 那時已經(jīng)可用。然而,轉換鏈可以向結果集合S,增加信息項。如果在單獨 信息項的處理步驟中沒有產生關于處理位置的消耗,尤其是如果沒有使用位 置變量用于計算,那么迭代器可并行化。分組轉換將信息項105的集合分成多個子集,每個子集包含具有用于特 定屬性值/關聯(lián)的相同值的各組信息項105。分組操作器像迭代器般地工作, 差別在于在迭代器工作的情況下單個信息項的角色在這里由子集充當。公共屬性轉換具有作為輸入的信息項集合以及作為輸出的集合中的元 素共有的所有屬性/關聯(lián)集合。所述操作是非直接可并行化的,但是可以被級 聯(lián)。在一個實施例中,改變信息項105屬性值/關聯(lián)值的轉換創(chuàng)建新版本的信 息項105。在轉換圖120中,改變前和改變后的信息項105是兩個不同的節(jié) 點。這意味著轉換可以分流信息項105的兩個版本。因此即使使用較早版本 的信息項105的轉換可以比創(chuàng)建所述新版本稍晚的時間點執(zhí)行,也使用初始 狀態(tài),這意味著執(zhí)行順序并不重要。在一個實施例中,信息管理系統(tǒng)服務器112API提供信息項105的類以 及信息項105的集合。上面列舉的基本轉換可以作為輸入?yún)?shù)(之一)的方 法被公開,例如,對集合的轉換操作作為集合類的方法被公開。對于程序員 而言,他也似乎對信息項105的實際存儲的實例執(zhí)行順序操作,盡管集合操 作是在粗粒度的情況下。換句話說,編程模塊允許程序員編寫順序程序,該 程序可通過在基于關于對所應用的轉換操作的特征的認知的執(zhí)行環(huán)境被并 行執(zhí)行。在一個實施例中,當事務(transaction )被委托或請求單個信息項105 的解析(例如,在應用GUI中結果信息項的圖形顯示)的命令被提交,所述 [查詢和]轉換圖120被傳遞給執(zhí)行引擎108,執(zhí)行引擎執(zhí)行轉換圖并發(fā)回相9應的結果集。在一個實施例中,當應用服務器116改變數(shù)據(jù)時,它^r查^R改變的實例 是否滿足緩存的信息項105集合的選擇標準,如果滿足,則為那個集合設置 一個無效標記。盡管所述查詢描述不需要太多的服務器空間,但是它將在可 配置時間之后期滿(并且因此被移除),以避免廢棄版本的堆積。在一個實施例中,當與應用服務器116相關聯(lián)的客戶試圖寫回對緩存數(shù) 據(jù)的改變并且所述查詢在服務器114上無效或期滿時,客戶將收到一個通知, 表明在客戶端上的緩存數(shù)據(jù)是無效的。然后客戶實現(xiàn)取回改變后的數(shù)據(jù)(所 述查詢參數(shù)已被存儲),并將其與緩存數(shù)據(jù)進行比較。然后向應用116通信 發(fā)送服務器端改變,所述應用決定如何處理所述情形。在一個實施例中,轉換圖120以在順序執(zhí)行中施加盡可能少的約束條件 的方式來表示數(shù)據(jù)處理或查詢。例如,假定制造公司有一組產品,其部分由已購買的"原子材料"并部 分由該原子材料制造或裝配而成的部件組成。對于每個產品來說,有一個材 料清單,也就是合成樹,以及路徑,也就是將原子材料轉換成最終產品所需 的制造/裝配步驟的樹。圖2示出了一個轉換圖。轉換圖200的可能節(jié)點為信息項105、信息 項組、關聯(lián)的屬性值或目標信息項以及轉換,如將在下面更詳細地描述的那 樣。轉換節(jié)點注釋有與并行化相關的信息,尤其是節(jié)點是否是非直接可并行 化的。在一個實施例中,轉換圖的技術表示被最優(yōu)化以便執(zhí)行,也就是,客 戶投入處理能力以服務器不需要進行廣泛的分析或重組的方式來準備轉換 圖。但是,所述并行化由信息管理系統(tǒng)后端服務器114完成。路徑中的每個步驟都有一個持續(xù)時間,且被分配給一個資源(也就是, 機器或裝配站),所述資源執(zhí)行相應步驟,并傳送指定成本/時間的屬性。為 了評估每個產品的當前成本,所有原子材料的花費需要被合計。除了材料花 費之外,需要通過將每個步驟的持續(xù)時間與相關聯(lián)資源單位時間單元的成本 相乘并且將整個路徑樹的這些處理成本合計,來計算制造/裝配花費??蛻魧崿F(xiàn)創(chuàng)建的轉換圖在圖2中示出。在這個例子中,轉換圖200從材 料M 201的集合開始。首個轉換是迭代器202,其為M輸出的每個材料p 創(chuàng)建單個任務線程,并且創(chuàng)建包含這些材料的新版本p,的輸出集合M, 203。10每個任務線程被劃分成三個接收材料p作為輸入的子圖第 一個子圖是 兩個轉換"取得組件,,204和"總成本,,206序列,也就是,它計算材料p 中包含的所有外部提供的成分總成本。第二個子圖取回與材料p相關的路徑 r207,緊接著是轉換"獲取組件"208,其產生包含在路徑中的所有步驟集 合。該集合由第二迭代器209處理,第二迭代器209計算每個步驟st的處理 成本,并將處理成本隸屬為st 214相關聯(lián)的屬性"成本"。為了計算步驟st 的成本,它的"時間"屬性^皮讀取210,并且相關獲取資源211被評估,然 后從獲取資源211中"成本/小時"被讀取212,然后將兩個值相乘213。當針對所有步驟st執(zhí)行了該子圖時,迭代器209結束,并且步驟215更 新后的版本的結果集被當作一個用于轉換的輸入,該轉換將所有步驟的"成 本,,屬性進行總計216。累加后的處理成本^^皮加到外部供應材料的成本中(轉 換206的輸出),并且所述總數(shù)被分配給材料p218的"成本"屬性。圖3示出了轉換圖302的片段是如何并行化的。在服務器端,已經(jīng)是一 個執(zhí)行計劃的轉換圖302被操作以供并行化執(zhí)行。通過將圖302中的先于可 并行化(直接可并行化)操作310的節(jié)點集304、 306和308劃分成多個子 集來準備并行化。然后,所有后續(xù)的可并行化操作以及結果節(jié)點在圖中被復 制,以使得它們可以被分配給并行線程。當非直接可并行化轉換310到達轉換圖312中時,并行線程的結果被分 別地再次合并成信息項314的一個集合或最終信息項316。在許多情況下, 這可以在本步驟中完成,或者不然的話,合并在所述非直接可并行化轉換316 的執(zhí)行之前的一個獨立步驟中執(zhí)行。對于大的數(shù)據(jù)集,可以通過將合并步驟 作為初始并行合并步驟的級聯(lián)(或樹)執(zhí)行來將合并最優(yōu)化。在一個實施例中,所有轉換的輸入和輸出都是集合。這些集合在開始時 被抽象描述(也就是,它們的內容只能通過它們在轉換圖中的位置來定義), 并且隨著轉換圖的處理進行而得到解(也就是,被填入信息項實例)。在一個實施例中,調度器模塊保持轉換圖中和所分配的信息項集合中 (當可用時)所有節(jié)點的清單。當圖中轉換的所有輸入集合為可用時(也就 是,已求解的),相應 的轉換被安排為被下一個可用線程執(zhí)行。當完成所述 線程時,所述調度器模塊接收結果集并將其分配給圖中的相應節(jié)點。圖4是用于處理轉換圖的示例過程400的流程圖。例如,過程400可以在如圖1所示的系統(tǒng)100的系統(tǒng)中實現(xiàn)。階段402接收一個轉換圖,所述轉換圖包括一個或多個數(shù)據(jù)轉換,其中 所述轉換為直接可并行化的轉換和非直接可并行化的轉換。例如,服務器112 可以接收轉換圖,所述轉換圖包括一個或多個數(shù)據(jù)轉換,其中所述轉換為直 接可并行化的轉換和非直接可并行化的轉換。
階段404將圖中的首個轉換添加到工作集。例如,并行處理引擎110可 以將圖中的首個轉換添加到工作集中。
階段406將工作集中的首個操作添加到片段中。例如,并行處理引擎110 可以將工作集中的首個操作添加到片段中。當片段中的最后操作是直接可并 行化的并且正好只有一個后繼時,后續(xù)操作被添加到所述片段。片段的數(shù)目 依賴于圖的結構。它也受加入到所述工作集的起始點數(shù)目的影響。因此,它 主要依賴于圖中起始點的數(shù)目、分叉和非直接可并行化的轉換。
階段408確定所述片段中接續(xù)在最后轉換的轉換是否是可并行化的。例 如,并行處理引擎IIO可以確定片段中接續(xù)最后轉換的轉換是否是可并行化 的。
階段410確定最后轉換是否包含多于一個的后繼轉換。例如,并行處理 引擎110可以判斷最后轉換是否包含多于一個的后繼轉換。
后繼轉換的確定,將最后轉換的后繼轉換添加到所述片段。例如,并行處理 引擎110可以基于最后轉換是否為直接可并行化的以及是否包含多于 一個的 后繼轉換的確定,將最后轉換的后繼轉換添加到所述片段。
如果后繼轉換沒有被添加到片段,那么階段414就將所述后繼轉換添加 到工作集。例如,如果后繼轉換沒有被添加到片段,那么并行處理引擎IIO 就可以將所述后繼轉換添加到工作集。
階段416確定工作集中是否還剩有轉換。例如,并行處理引擎110可以 確定工作集中是否還剩有轉換。階段408-414被重復直至工作集中不再有 轉換。
在一個實施例中,可以通過將首個操作的輸入集分割來展開單個片段。 專用轉換被添加到所述片段以執(zhí)行所述分割。所述片段的單個^f分的數(shù)目被 動態(tài)確定。這發(fā)生在執(zhí)行期間。
在一個實施例中, 一旦所述輸入集被分割,用于各個子集的片段的一個 備份就被執(zhí)行。最后,結果需要被重新合并,伴隨三種可能的情況。第一,片段中的最后操作是直接可并行化的。在這種情況下,通過添加 "統(tǒng)一"操作將結果與集合合并,所述"統(tǒng)一"操作拾取工作線程的所有部 分結果并且將它們統(tǒng)一在一個集合中。
第二,片段中的最后操作是非直接可并行化的,但是是可級聯(lián)的??梢?采用步驟的級聯(lián)來同步完成合并和執(zhí)行所述操作,在所述級聯(lián)中通過各個步 驟,輸出集合數(shù)(并且因此線程數(shù))被減少。因此,級聯(lián)看起來像是側躺(參 見圖3)的樹。
第三,所述最后操作是非直接可并行化的,并且是不可級聯(lián)的因為"統(tǒng) 一"轉換在非直接可并行化操作之前插入,因此后者僅操作于一個統(tǒng)一的信 息項集合上。
在一個實施例中,系統(tǒng)100可以改變轉換圖120以便發(fā)現(xiàn)直接可并行化 的片段,并使其并行化??梢允褂煤兴猩形幢惶幚淼钠蔚钠鹗键c的工 作集。這里的工作集涉及圖中的節(jié)點集。
所述處理可以是如下從工作集中選擇起始點(也就是,圖節(jié)點)(且 同時從所述集合移除),并且后續(xù)操作被添加到當前片段直至達到非直接可 并行化的操作。然后,完成當前片段。在所述非直接可并行化操作之后的下 一個節(jié)點是另一個片段的起始點,因此將其放入所述工作集中。
圖5是描述了一個示例計算機系統(tǒng)的內部結構的框圖。計算環(huán)境包括計 算機中央處理單元("CPU" ) 501,其中包含操作系統(tǒng)或應用的計算機指令被 處理;顯示接口 502,其提供通信接口并處理用于在監(jiān)視器上表現(xiàn)圖形、圖 像和文本的功能;鍵盤接口 504,其提供到鍵盤的通信接口;定點設備接口 505,其提供到鼠標或類似定點設備的通信接口;數(shù)字輸入接口 506,其提供 到視頻和音頻檢測器的通信接口;硬拷貝輸出設備接口 508,其提供到硬拷 貝輸出設備的通信接口;隨機存取存儲器("RAM" ) 510,其中由計算機 CPU501處理的計算機指令和數(shù)據(jù)被存儲在易失性存儲器設備中;只讀存儲 器("ROM" )511,其中用于基本系統(tǒng)功能,例如基本輸入和輸出("I/O")、 啟動或鍵盤的按鍵接收的不變低級系統(tǒng)代碼或數(shù)據(jù)存儲在非易失性存儲設 備中;存儲器520或其它合適的存儲器類型(例如,像隨機存取存儲器 ("RAM")、只讀存儲器("ROM")、可編程只讀存儲器("PROM")、可擦 除可編程只讀存儲器("EPROM")、電可擦除可編程只讀存儲器 ("EEPROM")、磁盤、光盤、軟盤、硬盤、可移動磁帶、閃存),其中包含操作系統(tǒng)521、應用程序522 (包括網(wǎng)頁瀏覽器應用程序523和其它必要的 應用程序525 )和數(shù)據(jù)文件526的文件被存儲;計算機網(wǎng)絡接口 516,其提 供通過計算機網(wǎng)絡連接到網(wǎng)絡的通信接口 。組成設備和計算機CPU 501通過 計算機總線527彼此通信。
RAM 510和計算機總線527連接,以便在軟件程序執(zhí)行期間提供到計算 機CPU501的快速RAM存儲,所述軟件程序例如是操作系統(tǒng)應用程序和設 備驅動器。更具體來說,計算機CPU501從硬盤驅動器或其它介質載入計算 機可執(zhí)行過程步驟至RAM 510的域中以便執(zhí)行軟件程序。數(shù)據(jù)存儲在RAM 510中,其中在執(zhí)行期間所述數(shù)據(jù)可以被計算機CPU501訪問。
再如圖5所示,系統(tǒng)500可以存儲用于操作系統(tǒng)521的計算機可讀代碼, 以及應用程序522,例如文字處理、電子制表軟件、顯像、游戲、網(wǎng)頁瀏覽、 JavaScript引擎或其它應用程序。
計算機CPU501是多種高性能計算機處理器中的一種,所述高性能計算 機處理器包括INTEL或AMD處理器、POWERPC處理器、MIPS精筒指令 集計算機("RISC")處理器、SPARC處理器、ACORN RISC機器("ARM") 結構處理器、HP ALPHASERVER處理器或主機的專有計算機處理器。在另 外的裝置中,計算機CPU501超過一個處理單元,包括在高性能工作站和服 務器中發(fā)現(xiàn)的多CPU配置,或在主機中發(fā)現(xiàn)的多個可擴展處理單元。
操作系統(tǒng)521可以是基于工作站和服務器的用于INTEL的APPLE MAC OS X和 POWERPC ; MICROSOFT WINDOWS NT /WINDOWS 2000/WINDOWS XP工作站;MICROSOFT WINDOWS VISTA/WINDOWS NT/WINDOWS 2000/WINDOWS XP服務器;多種UNIX風格的操作系統(tǒng), 包括用于IBM工作站和服務器的AIX,用于SUN工作站和服務器的SUNOS, 用于INTEL基于CPU工作站和服務器的LINUX,用于HP工作站和服務器 的HP UX WORKLOAD MANAGER,用于SGI工作站和服務器的IRIX,用 于數(shù)字設備公司計算機的VAX/VMS,用于基于HP ALPHASERVER計算機 的OPENVMS;用于移動設備或者計算機或嵌入式系統(tǒng)的專有操作系統(tǒng)的 SYMBIAN OS、 NEWTON、 IPOD、 WINDOWS MOBILE或WINDOWS CE、 PALM、 NOKIA OS ( "NOS" )、 OSE或EPOC。用于操作系統(tǒng)521的應用開 發(fā)平臺或構架可以是無線二進制運行時環(huán)境("BREW" ); Java平臺、Micro Edition ( "Java ME")或Java 2平臺、Micro Edition ( "J2ME,, ); PYTHON 、FLASH LITE或MICROSOFT.NET Compact。
雖然圖5描述了計算系統(tǒng)的一種可能的實現(xiàn),所述計算系統(tǒng)執(zhí)行,皮配置 為用于實現(xiàn)產品認證的程序代碼、程序或過程步驟,但是也可以使用其它類 型的計算機。
雖然術語"用戶" 一貫被用來表示與這些過程交互的實體,這種概括也 被用來描述在多種不同的、重疊或非重疊狀態(tài)下與這些過程交互的多個相關 的或不相關的、活的或自動化的實體或生物。類似地,術語"選擇"通篇被 用來表示人做出的手動選擇、非人類做出的自動選擇、或者其某個組合。
最后,需要注意的是,為了筒要起見,術語"JavaScript" 通篇旨在參 考SUN MICROSYSTEMS JAVASCRIPT編程語言,且術語"XML"通篇旨 在參考 'extensible Markup Language'。
已經(jīng)描述了許多實施方式。然而,需要明白的是,在不背離所公開的內 容的精神和范圍內可以進行各種修改。因此,其它實施方式落入所附權利要 求的范圍內。
1權利要求
1、一種方法,包括(i)接收轉換圖,所述轉換圖包括一個或多個數(shù)據(jù)轉換,其中所述轉換是可并行化的轉換和不可并行化的轉換;(ii)將所述圖中的首個轉換添加到工作集;(iii)將首個轉換從工作集添加到片段;(iv)確定所述片段中的最后轉換的后續(xù)轉換是否是可并行化的;(v)確定所述最后轉換是否包含多于一個的后繼轉換;和(vi)基于所述最后轉換是否是可并行化的以及是否包含多于一個的后繼轉換的確定,將所述最后轉換的后繼轉換添加到所述片段;(vii)如果所述后繼轉換沒有被添加到所述片段,則將所述后繼轉換添加到所述工作集;(viii)確定在所述工作集中是否還剩有轉換;和(ix)基于所述確定重復步驟(iv)-(viii)。
2、 如權利要求l所述的方法,還包括(x) 創(chuàng)建所述片段的一個或多個備份。
3、 如權利要求l所述的方法,其中將首個轉換添加到片段包括 確定所述轉換是否具有前驅;和 基于所述確定添加所述轉換。
4、 如權利要求l所述的方法,其中所述最后轉換是不可并行化的。
5、 如權利要求1所述的方法,其中除了所述最后轉換之外的所有轉換 都是可并行化的。
6、 如權利要求l所述的方法,其中所述轉換不是可并行化的。
7、 如權利要求l所述的方法,其中所述轉換不是可并行化的。
8、 如權利要求l所述的方法,其中所述轉換能夠包括一個操作。
9、 如權利要求1所述的方法,其中所述轉換能夠包括合并、過濾、減 法、交叉、排序、聚合、數(shù)字聚合器、賦值、分組、公共屬性和服務調用中 的至少一個。
10、 一種系統(tǒng),包括 處理器;耦接到所述處理器的計算機可讀介質,其上存有指令,當所述處理器執(zhí)行指令時使得所述處理器執(zhí)行包括以下的操作(i) 接收轉換圖,所述轉換圖包括一個或多個數(shù)據(jù)轉換,其中所述轉換是可并行化的轉換和不可并行化的轉換;(ii) 將所述圖中的首個轉換添加到工作集;(iii) 將首個轉換從工作集添加到片段;(iv) 確定所述片段中的最后轉換的后續(xù)轉換是否是可并行化的;(v) 確定所述最后轉換是否包含多于一個的后繼轉換;和(vi) 基于所述最后轉換是否是可并行化的以及是否包含多于一個的后 繼轉換的確定,將所述最后轉換的后繼轉換添加到所述片段;(vii) 如果所述后繼轉換沒有被添加到所述片段,則將所述后繼轉換添 加到所述工作集;(viii) 確定在所述工作集中是否還剩有轉換;和(ix) 基于所述確定重復步驟(iv) - (viii)。
11、 如權利要求IO所述的系統(tǒng),還包含操作,包括(x) 創(chuàng)建所述片段的一個或多個備份。
12、 如權利要求IO所述的系統(tǒng),還包含操作,包括 確定所述轉換是否具有前驅;和 基于所述確定添加所述轉換。
13、 如權利要求IO所述的系統(tǒng),其中所述最后轉換是不可并行化的。
14、 如權利要求10所述的系統(tǒng),其中除了所述最后轉換之外的所有轉 換都是可并行化的。
15、 如權利要求IO所述的系統(tǒng),其中所述轉換是非直接可并行化的。
16、 如權利要求IO所述的系統(tǒng),其中所述轉換是非直接可并行化的。
17、 如權利要求IO所述的系統(tǒng),其中所述轉換能夠包括操作。
18、 如權利要求10所述的系統(tǒng),其中所述轉換能夠包括合并、過濾、 減法、交叉、排序、聚合、數(shù)字聚合器、賦值、分組、公共屬性和服務調用 中的至少一個。
19、 一種系統(tǒng),包4舌用于定義包含項和項之間的關聯(lián)的轉換圖的裝置,其中所述轉換圖包括 包含處于特定狀態(tài)的項集合的節(jié)點和表示一個操作的邊;用于將所述操作關聯(lián)成可并行化的操作和不可并行化的操作的裝置;和 用于基于所述項、關聯(lián)和所述可并行化的操作和不可并行化的操作來處 理所述轉換圖的裝置。
全文摘要
本發(fā)明提供了一種用于并行化的數(shù)據(jù)轉換過程的表示方法。定義一個和多個操作用于一個或多個項的庫。也可以定義一個或多個項中的每一個之間的一個或多個關聯(lián)。分類與用于轉換圖中的執(zhí)行環(huán)境的一個或多個操作相關聯(lián),其中所述分類定義所述操作是否可以和其它操作并行執(zhí)行或不能并行執(zhí)行?;谒龇诸愄幚硭霾僮?。
文檔編號G06F9/46GK101551760SQ20091013075
公開日2009年10月7日 申請日期2009年2月6日 優(yōu)先權日2008年2月6日
發(fā)明者克里斯托夫·博恩霍夫德, 霍斯特·沃納 申請人:Sap股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1