两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

高度并發(fā)處理任務的記錄和執(zhí)行的制作方法

文檔序號:6495104閱讀:152來源:國知局
高度并發(fā)處理任務的記錄和執(zhí)行的制作方法
【專利摘要】一種依賴性數(shù)據(jù)結構描繪了處理任務。該依賴性數(shù)據(jù)結構包括多個部件,每個部件都封裝代碼單元。該依賴性數(shù)據(jù)結構可以包括針對部件間依賴性的依賴性弧線。并不被該依賴性數(shù)據(jù)結構內的部件所滿足的依賴性可以被表示為偽部件。執(zhí)行環(huán)境使用該依賴性數(shù)據(jù)結構和/或并發(fā)性狀態(tài)元數(shù)據(jù)識別出能夠執(zhí)行(例如,具有滿意依賴性)的部件。該執(zhí)行環(huán)境能夠識別并采用處理任務中的并發(fā)性,允許多個部件并行地執(zhí)行。
【專利說明】高度并發(fā)處理任務的記錄和執(zhí)行
【技術領域】
[0001]本公開涉及并發(fā)處理并且,具體涉及高度并發(fā)處理任務的記錄和執(zhí)行。
【專利附圖】

【附圖說明】
[0002]圖1描繪了依賴性數(shù)據(jù)結構的一個示例;
[0003]圖2描繪了依賴性數(shù)據(jù)結構的另一個示例;
[0004]圖3描繪了依賴性數(shù)據(jù)結構的另一個示例;
[0005]圖4描繪了依賴性數(shù)據(jù)結構的另一個示例;
[0006]圖5A描繪了依賴性數(shù)據(jù)結構的另一個示例;
[0007]圖5B描繪了依賴性數(shù)據(jù)結構和并發(fā)性狀態(tài)元數(shù)據(jù)的示例;
[0008]圖5C描繪了依賴性數(shù)據(jù)結構和并發(fā)性狀態(tài)元數(shù)據(jù)的另一個示例;
[0009]圖6A描繪了從其提取子圖形的依賴性數(shù)據(jù)結構;
[0010]圖6B描繪了子圖形的示例;
[0011]圖6C描繪了包括偽部件的子圖形的示例;
[0012]圖6D描繪了具有輸入?yún)?shù)依賴性的子圖形的示例;
[0013]圖6E描繪了被配置為產(chǎn)生輸出的子圖形的示例;
[0014]圖6F描繪了依賴性數(shù)據(jù)結構內的子圖形的示例;
[0015]圖7描繪了依賴性數(shù)據(jù)結構;
[0016]圖8是用于并發(fā)處理的方法的一個實施例的流程圖;
[0017]圖9是用于并發(fā)處理的另一種方法的一個實施例的流程圖;和
[0018]圖10是用于并發(fā)處理的系統(tǒng)的框圖。
【具體實施方式】
[0019]許多處理任務包括未被加以利用的并發(fā)性。如這里所使用的,“并發(fā)性”是指能夠同時或并行進行操作的兩個或更多的處理任務(例如,期間沒有相互依賴性)。研發(fā)人員可能由于潛在并發(fā)性的利用中所涉及的困難而并未對它們充分加以利用。通常,研發(fā)人員在設計時必須事先識別出并發(fā)性、創(chuàng)建定制代碼(例如,多線程和/或線程間通信)等等,這導致了高成本并且向所產(chǎn)生的系統(tǒng)引入了潛在的問題。因此,需要一種用于記錄處理并發(fā)性的系統(tǒng)且有效的方法以及一種被配置為有效利用那些并發(fā)性的執(zhí)行管理器。
[0020]在一些實施例中,處理任務被安排為獨立的“代碼單元”。如這里所使用的,“代碼單元”或“代碼的單元”是指邏輯上有所不同的機器可執(zhí)行指令的集合。代碼單元可以是較大處理任務的一部分或部件。代碼單元可以在非瞬時的機器可讀存儲介質上實現(xiàn),諸如硬盤、非易失性存儲、光學存儲介質等。代碼單元可以從非瞬時存儲介質中進行加載以便由諸如通用處理器、應用特定集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)等的計算設備來執(zhí)行。
[0021]在代碼單元之間可能存在著依賴性;例如,第一代碼單元的輸出可能是第二代碼單元的所需輸入。這些依賴性可以記錄在依賴性數(shù)據(jù)結構中。如這里所使用的,依賴性數(shù)據(jù)結構是指在其中記錄有代碼單元間的依賴性的數(shù)據(jù)結構。依賴性數(shù)據(jù)結構可以被實施為圖形,諸如有向無環(huán)圖(DAG)、樹、數(shù)組或任意適當?shù)臄?shù)據(jù)結構。代碼單元可以被代表為該數(shù)據(jù)結構內的“部件”。如這里所使用的,部件是依賴性數(shù)據(jù)結構中封裝代碼單元并且允許其調用的節(jié)點。代碼單元之間的依賴性可以被描繪成該數(shù)據(jù)結構中的部件之間的連接。如這里所使用的,當?shù)谝淮a單元的輸出被用來形成另一代碼單元的所需輸入時出現(xiàn)依賴性。在該數(shù)據(jù)結構中,“依賴部件”是指需要另一部件的輸出的部件。相反地,“獨立”代碼單元是指并不需要另一部件的輸出的代碼單元。部件間的依賴性可以被描繪成部件之間的連接(例如,弧線)。
[0022]在一些實施例中,執(zhí)行管理器實施依賴性數(shù)據(jù)結構所定義的處理任務。執(zhí)行管理器使用依賴性數(shù)據(jù)結構而識別出能夠執(zhí)行的部件(例如,識別出其依賴性得以被滿足的部件)。在一些情況下,代碼單元可以具有由“外部”實體(例如,執(zhí)行管理器以外的實體)所滿足的依賴性。例如,部件可以依賴于單獨I/o處理系統(tǒng)的輸出、遠程處理任務的輸出等。外部實體可以在依賴性數(shù)據(jù)結構中被描繪成“偽部件”。如這里所使用的,偽部件代表依賴性數(shù)據(jù)結構之外的能夠被該數(shù)據(jù)結構內的另一部件(或執(zhí)行管理器)所滿足的依賴性。相反地,對依賴性數(shù)據(jù)結構的其它部件(例如,數(shù)據(jù)結構的“內部部件”)的依賴性可以通過執(zhí)行管理器執(zhí)行與該部件相關聯(lián)的代碼單元而被解決。
[0023]如這里所使用的,“明確偽部件”是指被研發(fā)人員或其它實體明確添加至依賴性數(shù)據(jù)結構的偽部件?!半[含偽部件”是指在某型情況下,例如當該部件被指定為子圖形(以下進行討論)的入口部件時,被自動添加至依賴性數(shù)據(jù)結構(或者替代依賴性數(shù)據(jù)結構中的存在的部件)的偽部件。
[0024]圖1描繪了依賴性數(shù)據(jù)結構100的一個示例。數(shù)據(jù)結構100可以在諸如硬盤、非易失性存儲器、光學存儲介質等的非瞬時的機器可讀存儲介質上實施。數(shù)據(jù)結構100也可以在諸如互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡、無線網(wǎng)絡等的通信網(wǎng)絡上進行通信。
[0025]在圖1的示例中,數(shù)據(jù)結構100包括DAG;然而,本公開并不局限于此并且可以適于使用任意適當?shù)臄?shù)據(jù)結構。數(shù)據(jù)結構100包括獨立部件110,其代表不依賴于數(shù)據(jù)結構100中的其它代碼單元的代碼單元。依賴部件112依賴于部件110的輸出。該依賴性被描繪為部件110和部件112之間的依賴性弧線111。依賴性弧線111的“方向”表示部件110的輸出是部件112的所需輸入。
[0026]依賴性弧線111的“方向”表示部件112的代碼單元不會被執(zhí)行直至部件110產(chǎn)生了所需輸出。弧線111可以包括描述該依賴性的元數(shù)據(jù),諸如名稱、數(shù)據(jù)類型、接口定義(例如,應用編程接口(API)、回叫記錄等)、依賴性的“方向”,等等。
[0027]圖2描繪了依賴性數(shù)據(jù)結構200的另一個示例,其中多個依賴部件212和214需要獨立部件210的輸出。這些依賴性由部件210以及部件212和214之間的依賴性弧線211所代表。如以上所描述的,弧線211可以包括與該依賴性的屬性相關的元數(shù)據(jù)。
[0028]在圖3所描繪的另一個示例中,依賴性數(shù)據(jù)結構包括依賴于多個部件(部件322和324)的輸出的部件320。這些依賴性由相應的依賴性弧線321和323所代表。
[0029]圖4描繪了包括偽部件(例如,外部依賴性)的依賴性數(shù)據(jù)結構400的示例。在圖4的示例中,部件430依賴于外部的偽部件432的輸出(由依賴性弧線431所代表)以及“非偽”部件434的輸出(由依賴性弧線433所代表)。如以下所描述的,依賴性431可能無法由依賴性數(shù)據(jù)結構400的執(zhí)行管理器所解決。相反地,依賴性433可以被執(zhí)行部件434的代碼單元以生成部件430所需的一個或多個輸出的執(zhí)行管理器所解決。
[0030]這里所公開的依賴性數(shù)據(jù)結果可以包括多個不同的“代(generation)”。如這里所使用,“代”是指部件之間的依賴性弧線的數(shù)量。第一代可以包括沒有內部依賴性的獨立部件。第二代可以包括依賴于來自第一代的輸出的部件,等等。
[0031]圖5A描繪了包括多個不同代的依賴性數(shù)據(jù)結構500。在圖5A的示例中,數(shù)據(jù)結構500包括獨立部件502、504和506,其可以包括數(shù)據(jù)結構500的“第一代”501。部件506代表偽部件。
[0032]獨立部件的“第二代”(部件510、512和514)需要由第一代中的部件(部件502和/或504)生成的輸出。部件512依賴于502和504兩者的輸出。
[0033]部件的“第三代”521 (包括部件520、522、524、526和528)需要由“第二代”中的部件所產(chǎn)生的輸出。然而,依賴性可以跨越多個代。如圖5A中所描繪的,部件524需要由處于“第二代”中的部件510所產(chǎn)生的輸出以及由處于“第一代”中的部件502所生成的輸出。因此,雖然在描述多級別依賴性數(shù)據(jù)結構時參考“代”可能是方便的,但是數(shù)據(jù)結構500中的部件之間的實際依賴性和/或與部件相關聯(lián)的代碼單元的并發(fā)執(zhí)行并不局限于相鄰的代。
[0034]依賴性數(shù)據(jù)結構500以(“第四代”531中的)一個或多個“輸出”部件530和532“終止”。如這里所使用的,“輸出”部件是指依賴性數(shù)據(jù)結構中產(chǎn)生不被該數(shù)據(jù)結構中的其它部件所需要的輸出的部件。因此,輸出部件可以是指產(chǎn)生依賴性數(shù)據(jù)結構自身的“輸出”(例如,處理任務或子圖形的輸出)的部件。在圖5A的示例中,部件530和532可以產(chǎn)生依賴性數(shù)據(jù)結構500的“輸出”。
[0035]這里所描述的依賴性數(shù)據(jù)結構可以被用來對代碼單元的并發(fā)執(zhí)行進行管理。在一些實施例中,執(zhí)行管理器(或其它實體)訪問與處理任務相關聯(lián)的依賴性數(shù)據(jù)結構。執(zhí)行環(huán)境識別出能夠執(zhí)行(例如,具有“滿意的”依賴性)的部件。最初,依賴性數(shù)據(jù)結構的獨立(例如,葉子)部件可以是可執(zhí)行的。獨立(和其它)部件的執(zhí)行可以滿足依賴性數(shù)據(jù)結構中的其它部件的依賴性。如這里所使用的,“滿意的部件”是指能夠被執(zhí)行的部件和/或其所需要的輸入可用的部件。
[0036]執(zhí)行環(huán)境可以保管依賴性數(shù)據(jù)結構的“并發(fā)性狀態(tài)”。如這里所使用的,依賴性數(shù)據(jù)結構的“并發(fā)性狀態(tài)”是指哪些部件已經(jīng)被執(zhí)行和/或哪些部件輸出可用的“運行時間”代表形式。依賴性數(shù)據(jù)結構的并發(fā)性狀態(tài)可以被保管在依賴性數(shù)據(jù)結構自身之中和/或另一單獨數(shù)據(jù)結構中。當執(zhí)行環(huán)境執(zhí)行依賴性數(shù)據(jù)結構中的部件時,執(zhí)行環(huán)境可以更新并發(fā)性狀態(tài)以識別下一組能夠執(zhí)行的所滿足的部件。
[0037]圖5B描繪了已經(jīng)適于包括并發(fā)性狀態(tài)元數(shù)據(jù)的依賴性數(shù)據(jù)結構(圖5A的依賴性數(shù)據(jù)結構500)的示例。并發(fā)性狀態(tài)元數(shù)據(jù)表示部件502、504和510已經(jīng)被執(zhí)行(由部件502、504和510的“充滿”狀態(tài)所描繪)??商鎿Q地或除此之外,并發(fā)性狀態(tài)元數(shù)據(jù)可以包括那些依賴性弧線得到滿足的指示(例如,指示出依賴性弧線541、542、543、544、545、551、552和553得到滿足)。
[0038]使用依賴性數(shù)據(jù)結構503和/或并發(fā)性狀態(tài)元數(shù)據(jù),執(zhí)行環(huán)境(或其它實體)可以識別出能夠被執(zhí)行的部件(其依賴性已經(jīng)被滿足的部件)。并發(fā)性狀態(tài)元數(shù)據(jù)可以保管得到滿足部件的指示。在圖5B的示例中,并發(fā)性狀態(tài)元數(shù)據(jù)包括識別出得到“滿足”并且能夠被執(zhí)行的部件(例如,部件512、520、522和524)的相應指示符。并發(fā)性狀態(tài)元數(shù)據(jù)還可以識別出其依賴性還沒有得到滿足的部件(例如,部件514、526、528、530和532)。
[0039]如圖5B中所描繪的,一次可以有多于一個的可用于執(zhí)行的部件。依賴性數(shù)據(jù)結構503 (和并發(fā)性狀態(tài)元數(shù)據(jù))表示部件512、520、522、524能夠被執(zhí)行。部件512、520、522和/或524的執(zhí)行可以并行(并發(fā)地)進行。部件512、520、522和524之間的并行性由于依賴性數(shù)據(jù)結構中代碼單元的代表以及并發(fā)性狀態(tài)元數(shù)據(jù)的可用性而可以被輕易識別。
[0040]如圖5B所示,并發(fā)操作的機會取決于依賴性得到滿足的順序。例如,部件514由于其對偽部件506的輸出的依賴性還未得到滿足而不可執(zhí)行。然而,在其它實例下,部件可以以不同順序完成執(zhí)行,導致不同的并發(fā)性狀態(tài),并且不同的部件集合可用于并發(fā)操作。并發(fā)性狀態(tài)的差異可能是由于許多不同的因素,其包括處理負載、通信延時、I/O時間等,但并不局限于此。例如,部件502可以對應于用于訪問數(shù)據(jù)庫中的數(shù)據(jù)的操作。在一些情況下(例如,當數(shù)據(jù)庫上的負載很輕時),該操作可以相對快速地完成。然而,在其它實例下(例如,當數(shù)據(jù)庫被重度加載時),部件的執(zhí)行可能相對其它部件耗用更長時間。將部件部署到依賴性數(shù)據(jù)結構以及保管并發(fā)性狀態(tài)允許對實時并發(fā)性加以利用而無論針對其中其它部件執(zhí)行的順序和/或速度的變量變化如何。
[0041]圖5C描繪了包括并發(fā)性狀態(tài)元數(shù)據(jù)的依賴性數(shù)據(jù)結構的另一個示例。在圖5C的示例中,當部件被執(zhí)行時,它們連同因此得到滿足的依賴性弧線一起從數(shù)據(jù)結構505中被移除。因此,可用于執(zhí)行的部件(例如,其依賴性得到滿足的部件)被識別為數(shù)據(jù)結構505中的葉子節(jié)點。與圖5B相同,圖5C表示部件502、504和510已經(jīng)被執(zhí)行并且其輸出可用于數(shù)據(jù)結構中的其它部件。這樣,這些部件和相對應的依賴性弧線(圖5B的弧線541、542、543、544、545、551、552和553)已經(jīng)從數(shù)據(jù)結構505中移除。
[0042]可用于執(zhí)行的部件(例如,其依賴性已經(jīng)得到滿足的部件)被識別為數(shù)據(jù)結構505中的葉子節(jié)點。在一些實施例中,并發(fā)性狀態(tài)元數(shù)據(jù)可以進一步包括如以上所描述的相應指示符560。可替換地,可以通過遍歷數(shù)據(jù)結構505以識別出(例如,獨立于明確指示符560的)葉子節(jié)點來識別部件。
[0043]執(zhí)行依賴性數(shù)據(jù)結構中的部件的代碼單元所生成的輸出可以被執(zhí)行環(huán)境(或其它實體)所存儲(或高速緩存)并且可被用作針對其它的依賴部件的輸入。
[0044]在一些實施例中,可以從依賴性數(shù)據(jù)結構中提取出子圖形。子圖形可以包括一個或多個部件,包括“根”部件以及一個或多個“入口”部件?!案辈考?直接或間接)依賴于入口部件所產(chǎn)生的輸出。“入口”部件是依賴于子圖形之外所生成的輸入的部件。在一些實施例中,子圖形被構建為使得入口部件存在于源自于根部件的路徑之上。因此,可以從根遍歷子圖形直至所有路徑在葉子部件(沒有依賴性的部件)或入口部件中終止。子圖形可以被編碼單元、部件等所封裝和/或被暴露為代碼單元、部件等,并且可以獨立于從其中被提取出來的獨立性數(shù)據(jù)結構而被執(zhí)行。
[0045]圖6A描繪了可以從其中提取出子圖形的依賴性數(shù)據(jù)結構600的一個示例。依賴性數(shù)據(jù)結構600包括部件610、612、613、614、615、616、617和618,如以上所描述的,它們可以通過依賴性弧線進行互連??梢詮囊蕾囆詳?shù)據(jù)結構600提取出包括“根”部件610和入口部件612的子圖形620。部件613和616可以被包括在子圖形中以滿足根節(jié)點610的依賴性。圖6B示出了如從依賴性數(shù)據(jù)結構600所提取出的子圖形601。在一些實施例中,子圖形的入口部件的依賴性可以被表式為偽部件。圖6C描繪了包括代表部件612的依賴性的偽部件632。
[0046]如以上所討論的,諸如偽部件632的偽部件代表外部依賴性(并未被特定依賴性數(shù)據(jù)結構或子圖形內的部件所滿足的依賴性)。因此,子圖形(或者實施該子圖形的執(zhí)行環(huán)境)可以負責對依賴部件的輸入/輸出數(shù)據(jù)進行映射。
[0047]圖6D圖示了已經(jīng)從圖6C的子圖形602所創(chuàng)建的函數(shù)。在圖6D的示例中,偽部件632具有對可以代表子圖形602的封裝的函數(shù)“foo”的參數(shù)(argO)的邏輯依賴性。
[0048]在一些實施例中,子圖形的“響應”或輸出數(shù)值可以被返回和/或被用于其它處理任務和/或處理任務的輸出。這樣,子圖形的封裝代表形式可以被配置為捕捉其中部件的一個或多個輸出并且使得這些輸出可用于執(zhí)行環(huán)境或其它實體。圖6E圖示了提供輸出數(shù)據(jù)611的子圖形602,可以使得該輸出數(shù)據(jù)611可用于其它實體和/或部件。
[0049]如以上所討論的,子圖形可以被暴露為可執(zhí)行代碼單元。因此,在一些實施例中,子圖形可以被封裝在部件之內。圖6F圖示了包括封裝以上所描述的子圖形620的部件640的依賴性數(shù)據(jù)結構604。在圖6F的示例中,部件640的執(zhí)行使得封裝在部件640內的子圖形得以被執(zhí)行,這導致了依賴性數(shù)據(jù)結構和/或子圖形的分層或遞歸執(zhí)行。
[0050]如以上所描述的,將處理任務表示為依賴性數(shù)據(jù)結構的部件允許執(zhí)行環(huán)境(或其它實體)識別并發(fā)性并對其加以利用。此外,表現(xiàn)形式可以通過卸載并發(fā)性相關任務和/或將代碼單元封裝到單獨部件中而簡化代碼開發(fā)。
[0051]以下示例說明了這里所教導的系統(tǒng)和方法如何對處理任務實施方式的復雜度進行簡化。在該示例中,使用JavaScript定義了一組處理功能(或方法)。然而,本公開并不局限于此并且能夠結合任意適當?shù)木幊陶Z言或環(huán)境來實施。
[0052]var asyncGetRandomNum = function(callback) {
setTiineout(function() {

var nuin = Math.ceil(Math.randoiri() * 100)

callback(null,nuin);

1.250);

};
var asyncDoubler = function(num9 callback) {
setTiineout(function() {
callback(null, nuin * 2);

1.250);

>.f
var asyncAdder = function(nuinl, num2, callback) {
setTimeout(function() {

callback(null9 numl+nuin2):
[0053]
},250);



};
[0054]處理任務定義如下:
[0055]1.接受輸入?yún)?shù)inValue;
[0056]2.調用 asyncGetRandomNum;
[0057]3.使用 inValue 和來自步驟 2 的 asyncGetRandomNum 的結果調用 asyncAdder;
[0058]4.使用來自步驟2的步驟asyncGetRandomNum的結果調用asyncDoubler;
[0059]5.使用步驟 2 和 3 的 asyncGetRandomNum 和 asyncAdder 的結果調用 asyncAdder;
[0060]6.使用步驟 5 的 asyncAdder 的結果調用 asyncDoubler;
[0061]7.使用步驟4和6的asyncDoubler的結果調用asyncAdder;以及
[0062]8.異步返回步驟7的asyncAdder的結果。
[0063]在第一方法中,處理任務依據(jù)以上所描述的處理步驟順序實施:
[0064]II create our function
var func = function(inValue) {

asyncGetRandoinNuin(function(err, rndO) {

if(err) {
callback(err);

return;


}

asyncAdder(rnd(), inValue, function(err, addO) {

if (err) {


callback(err);
1eturn,


}

asyncDoubler(rnd(), function (err, dblO) {
[0065]
【權利要求】
1.一種用于高度并發(fā)處理的計算機實施的方法,包括: 執(zhí)行以下步驟的計算機設備: 訪問依賴性數(shù)據(jù)結構,所述依賴性數(shù)據(jù)結構包括: 多個部件,每個部件都代表相應代碼單元,和連接所述部件的多條依賴性弧線,每條依賴性弧線都代表為了執(zhí)行所述依賴性數(shù)據(jù)結構中的相對應的部件所要滿足的依賴性, 保管并發(fā)性狀態(tài)元數(shù)據(jù)以指示出得到滿足的部件依賴性, 基于所述依賴性數(shù)據(jù)結構的所述并發(fā)性狀態(tài)元數(shù)據(jù)識別所述依賴性數(shù)據(jù)結構中可用于執(zhí)行的部件,以及 并發(fā)地執(zhí)行所識別的部件。
2.根據(jù)權利要求1所述的方法,進一步包括,響應于執(zhí)行所識別的部件而更新所述并發(fā)性狀態(tài)元數(shù)據(jù)。
3.根據(jù)權利要求2所述的方法,其中,更新所述并發(fā)性狀態(tài)元數(shù)據(jù)包括高速緩存通過執(zhí)行所述依賴性數(shù)據(jù)結構的部件所生成的輸出。
4.根據(jù)權利要求1所述的方法,進一步包括,在接收到來自所述依賴性數(shù)據(jù)結構以外的外部輸入后更新所述并發(fā)性狀態(tài)元數(shù)據(jù),其中,所述外部輸入不是通過執(zhí)行所述依賴性數(shù)據(jù)結構的部件而生成的。
5.根據(jù)權利要求1所述的方法,其中,當部件的所有依賴性都滿足時所述部件可用于執(zhí)行。
6.根據(jù)權利要求1所述的方法,進一步包括: 響應于執(zhí)行所識別部件而更新所述并發(fā)性狀態(tài)元數(shù)據(jù);以及 響應于所述更新,識別能夠被用于執(zhí)行的所述依賴性數(shù)據(jù)結構的部件并且執(zhí)行所識別的部件直至所述依賴性數(shù)據(jù)結構中的每個部件都已經(jīng)被執(zhí)行。
7.根據(jù)權利要求1所述的方法,進一步包括: 響應于執(zhí)行所識別部件更新所述并發(fā)性狀態(tài)元數(shù)據(jù);以及 響應于所述更新,識別能夠被用于執(zhí)行的所述依賴性數(shù)據(jù)結構的部件并且執(zhí)行所識別的部件直至生成了所述依賴性數(shù)據(jù)結構的輸出結果。
8.根據(jù)權利要求1所述的方法,其中,所述依賴性數(shù)據(jù)結構的執(zhí)行生成輸出結果,所述方法進一步包括如下之一:在人機界面設備上向用戶顯示輸出結果、在網(wǎng)絡上傳送所述輸出結果、以及在非瞬時計算機可讀存儲介質上存儲所述輸出結果。
9.根據(jù)權利要求1所述的方法,其中,使用執(zhí)行平臺執(zhí)行所識別的部件,并且其中,所述執(zhí)行平臺是如下之一:虛擬機、線程、進程、腳本解釋器、本地執(zhí)行平臺和仿真執(zhí)行平臺。
10.根據(jù)權利要求1所述的方法,進一步包括: 將處理任務的多個步驟封裝至多個部件之中,每個部件包括相應代碼單元以實施以下多個處理任務步驟之一; 識別部件依賴性,每個部件依賴性都代表為了執(zhí)行所述部件中相應的一個所要滿足的依賴性;以及 定義依賴性數(shù)據(jù)結構,所述依賴性數(shù)據(jù)結構包括: 所述多個部件,和 對所述部件進行互連的依賴性弧線,每條依賴性弧線都代表相應的所識別出的部件依賴性。
11.根據(jù)權利要求10所述的方法,其中,所識別的部件依賴性之一是沒有被多個部件中的任何部件所滿足的外部部件依賴性,所述方法進一步包括在所述依賴性數(shù)據(jù)結構中包括偽部件以代表所述外部依賴性。
12.—種非瞬時機器可讀存儲介質,包括使得機器執(zhí)行一種用于高度并發(fā)處理的方法的指令,所述方法包括: 訪問依賴性數(shù)據(jù)結構,所述依賴性數(shù)據(jù)結構包括: 多個部件,每個部件都代表相應的可執(zhí)行代碼單元,和連接所述部件的多條依賴性弧線,每條依賴性弧線都代表為了執(zhí)行所述依賴性數(shù)據(jù)結構中的相對應的部件所要滿足的依賴性, 保管并發(fā)性狀態(tài)元數(shù)據(jù)以指示出得到滿足的部件依賴性, 基于所述依賴性數(shù)據(jù)結構的所述并發(fā)性狀態(tài)元數(shù)據(jù)識別所述依賴性數(shù)據(jù)結構中能夠用于執(zhí)行的多個部件,其中當所述并發(fā)性狀態(tài)元數(shù)據(jù)指示出一部件的所有依賴性都得到滿足時該部件能夠用于執(zhí)行;以及并發(fā)地執(zhí)行多 個所識別的部件。
13.根據(jù)權利要求12所述的非瞬時機器可讀存儲介質,所述方法進一步包括響應于執(zhí)行所述多個所識別的部件而更新所述并發(fā)性狀態(tài)元數(shù)據(jù),其中,更新所述并發(fā)性狀態(tài)元數(shù)據(jù)包括高速緩存一部件所生成的輸出。
14.根據(jù)權利要求12所述的非瞬時機器可讀存儲介質,所述方法進一步包括,在接收到來自所述依賴性數(shù)據(jù)結構以外的外部輸入后更新所述并發(fā)性狀態(tài)元數(shù)據(jù),其中,所述外部輸入不是通過執(zhí)行所述依賴性數(shù)據(jù)結構的部件而生成的。
15.根據(jù)權利要求12所述的非瞬時機器可讀存儲介質,所述方法進一步包括: 一旦通過執(zhí)行所述依賴性數(shù)據(jù)結構內的一部件和接收外部輸入之一而滿足了所述依賴性數(shù)據(jù)結構內的依賴性,則更新所述并發(fā)性狀態(tài)元數(shù)據(jù); 響應于更新所述并發(fā)性狀態(tài)元數(shù)據(jù)而識別能夠用于執(zhí)行的附加部件;以及 并發(fā)地執(zhí)行所述附加的部件。
16.根據(jù)權利要求15所述的非瞬時機器可讀存儲介質,所述方法進一步包括: 更新所述并發(fā)性狀態(tài)元數(shù)據(jù),響應于所述更新,識別能夠用于執(zhí)行的附加部件,并且并發(fā)地執(zhí)行所述附加部件直至生成所述依賴性數(shù)據(jù)結構的所識別的輸出結果;以及 在人機界面設備上向用戶顯示所識別的輸出結果,在網(wǎng)絡上傳送所識別的輸出結果,并且將所識別的輸出結果存儲在非瞬時機器可讀存儲介質上。
17.根據(jù)權利要求12所述的非瞬時機器可讀存儲介質,其中,使用執(zhí)行平臺執(zhí)行所識別的部件,并且其中,所述執(zhí)行平臺是如下之一:虛擬機、線程、進程、腳本解釋器、本地執(zhí)行平臺和仿真執(zhí)行平臺。
18.根據(jù)權利要求12所述的非瞬時機器可讀存儲介質,所述方法進一步包括: 將處理任務的多個步驟封裝至多個部件之中,每個部件都包括相應的代碼單元以實施所述多個處理任務步驟之一; 識別部件依賴性,每個部件依賴性都代表為了執(zhí)行所述部件中相應的一個所要滿足的依賴性;以及定義依賴性數(shù)據(jù)結構,所述依賴性數(shù)據(jù)結構包括 所述多個部件,和 對所述部件進行互連的依賴性弧線,每條依賴性弧線都代表相應的所識別出的部件依賴性。
19.根據(jù)權利要求18所述的非瞬時機器可讀存儲介質,其中,所識別出的部件依賴性之一是沒有被所述多個部件中的任何部件所滿足的外部部件依賴性,所述方法進一步包括在所述依賴性數(shù)據(jù)結構中包括偽部件以代表所述外部依賴性。
20.一種執(zhí)行用于高度并發(fā)處理的方法的計算設備,包括: 存儲器; 處理器;和在所述處理器上運行的執(zhí)行環(huán)境,其中,所述執(zhí)行環(huán)境被配置為: 訪問在所述存儲器上存儲的依賴性數(shù)據(jù)結構,所述依賴性數(shù)據(jù)結構包括: 多個部件,每個部件都代表相應的可執(zhí)行代碼單元,和 連接所述部件的多條依賴性弧線,每條依賴性弧線都代表為了執(zhí)行所述依賴性數(shù)據(jù)結構中的相應部件所要滿足的依賴性,所述執(zhí)行環(huán)境進一步被配置為: 保管指示出部件依賴性得到滿足的并發(fā)性狀態(tài)元數(shù)據(jù), 基于所述依賴性數(shù)據(jù)結構的所述并發(fā)性狀態(tài)元數(shù)據(jù),識別所述依賴性數(shù)據(jù)結構中能夠用于執(zhí)行的多個部件,其中,當所述并發(fā)性狀態(tài)元數(shù)據(jù)指示出一部件的所有依賴性都得到滿足時所述部件能夠用于執(zhí)行, 在一個或多個執(zhí)行平臺內并發(fā)地執(zhí)行多個所識別的部件,以及響應于生成相應輸出的一個或多個所識別的部件而更新所述并發(fā)性狀態(tài)元數(shù)據(jù)并且識別能夠用于執(zhí)行的附加部件。
【文檔編號】G06F9/46GK103649907SQ201280021183
【公開日】2014年3月19日 申請日期:2012年2月24日 優(yōu)先權日:2011年5月13日
【發(fā)明者】杰里米·D·馬丁 申請人:益焦.com有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
维西| 辛集市| 阳朔县| 上蔡县| 无棣县| 宜黄县| 广东省| 大理市| 博野县| 改则县| 金坛市| 新和县| 太和县| 阜平县| 桂东县| 淳化县| 山西省| 岑溪市| 泽库县| 霞浦县| 施秉县| 延庆县| 平陆县| 永嘉县| 离岛区| 中卫市| 民勤县| 泽普县| 杭锦后旗| 卓资县| 富阳市| 永靖县| 黄梅县| 长春市| 巴里| 穆棱市| 黄大仙区| 驻马店市| 政和县| 方山县| 云阳县|