用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法和裝置制造方法
【專利摘要】本發(fā)明的各實施方式提供了用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法和裝置。在一個實施方式中,提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法,包括:響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序;將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù);基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè);以及利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù)。在另一實施方式中,提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置。采用本發(fā)明,可以提高分布式計算系統(tǒng)的運(yùn)行效率。
【專利說明】用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實施方式涉及分布式計算(Distributed Computing),更具體地,涉及用于在分布式計算系統(tǒng)中管理多個作業(yè)(Job)的方法和裝置。
【背景技術(shù)】
[0002]隨著計算機(jī)硬件和軟件技術(shù)的發(fā)展,在單獨(dú)計算機(jī)的計算性能提高的同時,計算機(jī)集群(Cluster)的出現(xiàn)提供了更加高效的數(shù)據(jù)計算能力。基于分布式計算技術(shù),可以將一個或者多個作業(yè)劃分為可以并行執(zhí)行的多個任務(wù),并將這些任務(wù)分別分配至分布式計算系統(tǒng)中的多個計算節(jié)點(diǎn)處的一個或者多個處理單元(例如,處理器核)上執(zhí)行。分布式計算技術(shù)的性能在很大程度上依賴于如何調(diào)度和管理這些任務(wù),可以通過在各個任務(wù)之間傳輸各種類型的控制數(shù)據(jù)來實現(xiàn)對任務(wù)進(jìn)行調(diào)度和管理。
[0003]目前,分布式計算技術(shù)的提供者已經(jīng)開發(fā)出可以支持分布式計算的各種基礎(chǔ)函數(shù)庫,這些函數(shù)庫中定義了用于調(diào)度和管理并行任務(wù)的各種基礎(chǔ)函數(shù)。因而各個行業(yè)的獨(dú)立軟件提供者(Independent Software Vender, ISV)不必分別重復(fù)開發(fā)支持分布式計算的基本功能。而是,獨(dú)立軟件提供者可以通過調(diào)用基礎(chǔ)函數(shù)庫中的函數(shù),來開發(fā)適合于自身行業(yè)的應(yīng)用程序。例如,天氣預(yù)報領(lǐng)域的軟件提供者可以基于基礎(chǔ)函數(shù)庫來編寫用于天氣預(yù)報的應(yīng)用程序,數(shù)據(jù)挖掘領(lǐng)域的軟件提供者可以基于該函數(shù)庫來編寫用于進(jìn)行數(shù)據(jù)分析的應(yīng)用程序,等等。
[0004]通常,現(xiàn)有的分布式計算系統(tǒng)的復(fù)雜性導(dǎo)致往往需要多個應(yīng)用相互配合才能完成一個計算作業(yè)。一個大的計算作業(yè)的各個子作業(yè)之間相互依賴關(guān)系,并具有時間上的先后關(guān)系。通常,這些子作業(yè)一起構(gòu)成了一個工作流。在工作流中,可能會涉及來自一個或者多個獨(dú)立軟件提供者的多個應(yīng)用程序。通常,用戶并不具有這些應(yīng)用程序的源代碼,而是只具有可執(zhí)行代碼;因而用戶只能通過調(diào)用可執(zhí)行代碼來執(zhí)行這些應(yīng)用程序,而并不能針對各個應(yīng)用程序的整體性能進(jìn)行進(jìn)一步優(yōu)化。
[0005]在每個應(yīng)用程序中,通常會包括與任務(wù)管理和調(diào)度相關(guān)聯(lián)的任務(wù),例如,任務(wù)Allocate可以在應(yīng)用程序運(yùn)行初期為應(yīng)用程序中包括的多個任務(wù)分配各種資源,任務(wù)Release可以在應(yīng)用程序運(yùn)行的結(jié)束階段釋放所分配的各種資源。假設(shè)應(yīng)用程序App-A和App-B串行地執(zhí)行,則可能會出現(xiàn)如下情況:已經(jīng)被應(yīng)用程序App-A的釋放任務(wù)Release-A釋放的各種資源又由應(yīng)用程序App-B的分配任務(wù)Allocate-B分配給了應(yīng)用程序App-B。應(yīng)當(dāng)注意,由于諸如資源分配和釋放的任務(wù)本身并不直接完成應(yīng)用程序中的計算量,而是用于輔助應(yīng)用程序的執(zhí)行,因而這些管理和調(diào)度任務(wù)的在整個應(yīng)用程序中所占的執(zhí)行時間的比例將會成為影響應(yīng)用程序運(yùn)行效率的一項重要因素。
[0006]資源的分配和釋放所占用的時間將會隨著分布式計算系統(tǒng)中計算節(jié)點(diǎn)的數(shù)量的增加而增加。隨著分布式計算系統(tǒng)的發(fā)展,計算節(jié)點(diǎn)的數(shù)量級已經(jīng)從數(shù)十個增加至成百上千甚至更高,這就導(dǎo)致分布式計算系統(tǒng)中作業(yè)的運(yùn)行效率在一定程度上出現(xiàn)下降的趨勢。此時,如何提高分布式計算系統(tǒng)的運(yùn)行效率成為目前的一個研究熱點(diǎn)。
【發(fā)明內(nèi)容】
[0007]因而,期望能夠開發(fā)一種能夠在分布式計算系統(tǒng)中管理多個作業(yè)的技術(shù)方案,并且期望該技術(shù)方案能夠在無需獲取各個作業(yè)的源代碼的情況下,對多個作業(yè)進(jìn)行管理進(jìn)而提高該多個作業(yè)在分布式計算系統(tǒng)中的運(yùn)行效率。為此,本發(fā)明的各個實施方式提供了用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法和裝置。
[0008]根據(jù)本發(fā)明的一個方面,提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法,包括:響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序;將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù);基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè);以及利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù)。
[0009]根據(jù)本發(fā)明的一個方面,多個作業(yè)的配置任務(wù)是相同的任務(wù)。
[0010]根據(jù)本發(fā)明的一個方面,可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。
[0011]根據(jù)本發(fā)明的一個方面,提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置,包括:劃分模塊,配置用于響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序;組合模塊,配置用于將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù);整合模塊,配置用于基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè);以及執(zhí)行模塊,配置用于利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù)。
[0012]根據(jù)本發(fā)明的一個方面,多個作業(yè)的配置任務(wù)是相同的任務(wù)。
[0013]根據(jù)本發(fā)明的一個方面,可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。
[0014]采用本發(fā)明所述的方法和裝置,可以在無需獲得各個作業(yè)的源代碼的基礎(chǔ)上,對于各個作業(yè)中所涉及的任務(wù)進(jìn)行管理和調(diào)度;并且還可以盡可能地提高各個作業(yè)在分布式計算系統(tǒng)的運(yùn)行效率。
【專利附圖】
【附圖說明】
[0015]通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其他目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
[0016]圖1示意性示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖;
[0017]圖2示意性示出了根據(jù)一個解決方案的用于執(zhí)行包括并行任務(wù)的多個作業(yè)的方法的時序圖;
[0018]圖3示意性示出了根據(jù)本發(fā)明的一個實施方式的用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法的流程圖;
[0019]圖4示意性示出了根據(jù)本發(fā)明的一個實施方式的執(zhí)行超級任務(wù)的方法的時序圖;
[0020]圖5示意性示出了與作業(yè)相關(guān)聯(lián)的源代碼與可執(zhí)行代碼之間的映射關(guān)系;
[0021]圖6示意性示出了根據(jù)本發(fā)明的一個實施方式的用于執(zhí)行包括并行任務(wù)的作業(yè)的原理的不意圖;
[0022]圖7示意性示出了根據(jù)本發(fā)明的一個實施方式的用于執(zhí)行超級任務(wù)的方法的流程圖;以及
[0023]圖8示意性示出了根據(jù)本發(fā)明的一個實施方式的用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置的框圖。
【具體實施方式】
[0024]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0025]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施方式中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0026]可以采用一個或多個計算機(jī)可讀的介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0027]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0028]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0029]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言-諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供者來通過因特網(wǎng)連接)。
[0030]下面將參照本發(fā)明實施方式的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計算機(jī)程序指令通過計算機(jī)或其他可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0031]也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其他可編程數(shù)據(jù)處理裝置以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruct1nmeans)的制造品(manufacture)。
[0032]也可以把計算機(jī)程序指令加載到計算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,使得在計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其他可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0033]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施方式的功能和使用范圍帶來任何限制。
[0034]如圖1所示,計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0035]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0036]計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0037]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其他可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其他光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施方式的功能。
[0038]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施方式中的功能和/或方法。
[0039]計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其他計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其他模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計算機(jī)系統(tǒng)/服務(wù)器12使用其他硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0040]圖2示意性示出了根據(jù)一個解決方案的用于執(zhí)行包括并行任務(wù)的多個作業(yè)的方法的時序圖200。圖2中分別示出了三個作業(yè),即作業(yè)1210、作業(yè)2220和作業(yè)3230,其中橫坐標(biāo)表示時間軸。應(yīng)當(dāng)注意,在分布式計算系統(tǒng)中,一個作業(yè)中可以包括多個任務(wù),這些任務(wù)中的至少一部分任務(wù)可以被并行地執(zhí)行。在作業(yè)的啟動期間,還可能會涉及到對多個任務(wù)進(jìn)行調(diào)度的任務(wù)、對于分布式計算環(huán)境中的各種網(wǎng)絡(luò)配置進(jìn)行初始化的任務(wù);并且在作業(yè)結(jié)束前,還可能會涉及到釋放網(wǎng)絡(luò)資源的任務(wù)。
[0041]如圖2中示出了執(zhí)行各個作業(yè)中的任務(wù)的時序圖。具體地,LT表示加載時間(Loading Time),即加載相應(yīng)作業(yè)的時間;NIT表示網(wǎng)絡(luò)初始化時間(NetworkInitializing Time),即對執(zhí)行相應(yīng)作業(yè)期間可能涉及到的各種網(wǎng)絡(luò)資源進(jìn)行初始化的時間;NCT表示網(wǎng)絡(luò)釋放時間(Network Clear-up Time),即釋放相應(yīng)作業(yè)所占用的各項網(wǎng)絡(luò)資源所花費(fèi)的時間;以及RT表示運(yùn)行時間(Run Time),即真正運(yùn)行與相應(yīng)作業(yè)的計算目標(biāo)相關(guān)聯(lián)的任務(wù)的時間。
[0042]如圖2所示,作業(yè)1210、作業(yè)2220和作業(yè)3230串行地執(zhí)行,此時在執(zhí)行每個作業(yè)期間,都要依次執(zhí)行如下操作:加載操作、網(wǎng)絡(luò)初始化、運(yùn)行操作、以及網(wǎng)絡(luò)資源釋放(例如,針對作業(yè)1210而言,上述操作所占用的時間分別對應(yīng)于LT1212、NIT1214、RT1216和NCT1218)。針對作業(yè)2220和作業(yè)3230而言,其中各個操作所占用的時間也類似于作業(yè)1210中的時間分配。
[0043]從圖2中可見,在各個作業(yè)的執(zhí)行期間,僅有如陰影部分所示的時間段RT1216、RT2226和RT3236是真正用于執(zhí)行與作業(yè)的計算目標(biāo)相關(guān)聯(lián)的任務(wù)所花費(fèi)的時間,然而其他部分的時間開銷(即,LT+NIT+NCT)在執(zhí)行各個作業(yè)的整體時間開銷中占據(jù)了相當(dāng)大的比例。因而,期望能夠提高運(yùn)行時間在執(zhí)行作業(yè)的整體時間開銷中的比例,進(jìn)而提高在分布式計算環(huán)境中執(zhí)行多個作業(yè)的效率。
[0044]針對現(xiàn)有解決方案中的上述缺陷,本發(fā)明的一個實施方式提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的技術(shù)方案。概括而言,該技術(shù)方案可以一次性地針對整個工作流分配資源,并且所分配的資源使得工作流中全部作業(yè)能夠按照工作流的邏輯關(guān)系正確地執(zhí)行;以及當(dāng)工作流中的全部作業(yè)結(jié)束后,可以一次性地釋放全部資源。
[0045]具體地,該方法包括:響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)中所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù);將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù);基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè);以及利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序。
[0046]圖3示意性示出了根據(jù)本發(fā)明的一個實施方式的用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法的流程圖300。該方法開始于步驟S302,在此步驟中,響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)中所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù)。
[0047]如上文中記載,配置任務(wù)可以表示對作業(yè)中的各個任務(wù)進(jìn)行調(diào)度和管理的任務(wù),例如,用于啟動作業(yè)的任務(wù),以及用于對在執(zhí)行多個任務(wù)時所涉及的各種資源進(jìn)行調(diào)度(例如,可以包括資源初始化和資源釋放)的任務(wù)。計算任務(wù)可以是指與實現(xiàn)作業(yè)的計算目標(biāo)直接相關(guān)的任務(wù)。在此實施方式中,可以基于應(yīng)用程序的代碼(例如,二進(jìn)制代碼)的特征,來將作業(yè)中的多個任務(wù)劃分為配置任務(wù)和計算任務(wù)。
[0048]應(yīng)當(dāng)注意,在此實施方式中,劃分所得的配置任務(wù)可以是一個或者多個配置任務(wù),例如可以包括對網(wǎng)絡(luò)資源進(jìn)行初始化和釋放的任務(wù);并且劃分所得的計算任務(wù)可以包括在各個作業(yè)中包含的、可以并行執(zhí)行的任務(wù)。例如,針對圖2中所示作業(yè)1210而言,在時間段LT1212、NIT1214和NCT1218期間執(zhí)行的任務(wù)可以是配置任務(wù),而在時間段RT1216期間執(zhí)行的任務(wù)可以是計算任務(wù),并且計算任務(wù)可以包括多個可以并行執(zhí)行的任務(wù),或者,還可以串行地執(zhí)行作業(yè)中的任務(wù)。在作業(yè)2220和作業(yè)3230中,在各個時間段中所執(zhí)行的任務(wù)類型也可以類似于作業(yè)1210。
[0049]應(yīng)當(dāng)注意,在本發(fā)明的各個實施方式中并不要求作業(yè)中的所有任務(wù)都可以并行地執(zhí)行,而是僅要求其中的至少一部分可以并行地執(zhí)行。在分布式計算環(huán)境中,這些可以并行執(zhí)行的任務(wù)可以被分發(fā)至分布式計算環(huán)境中的各個計算節(jié)點(diǎn)處,以便利用各個計算節(jié)點(diǎn)的計算資源進(jìn)行處理。
[0050]應(yīng)當(dāng)注意,在本發(fā)明的上下文中,并不討論如何將可以并行執(zhí)行的多個任務(wù)分發(fā)至多個計算節(jié)點(diǎn),以及如何將在多個計算節(jié)點(diǎn)處獲得的中間計算結(jié)果進(jìn)行匯總以形成最終的處理結(jié)果。本領(lǐng)域技術(shù)人員可以基于分布式計算的原理和算法來實現(xiàn)上述過程。
[0051]在步驟S304中,將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù)。在現(xiàn)有的技術(shù)方案中,當(dāng)執(zhí)行多個作業(yè)的每個作業(yè)時,都要執(zhí)行該作業(yè)中的相應(yīng)的配置任務(wù)。然而由于每個作業(yè)的配置任務(wù)的功能大體相同,逐個執(zhí)行每個作業(yè)的配置任務(wù)將占用較多時間。在此步驟中,通過從與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)提取相同內(nèi)容并將這些配置任務(wù)組合為一個超級配置任務(wù),可以降低執(zhí)行配置任務(wù)的時間開銷。
[0052]在步驟S306中,基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè)。類似于常規(guī)的作業(yè),超級作業(yè)中可以包括配置任務(wù)和計算任務(wù)。與常規(guī)作業(yè)的不同之處在于:超級作業(yè)中的計算任務(wù)并非來自單一作業(yè),而是由從多個作業(yè)中提取的計算任務(wù)組合形成的;另外,超級作業(yè)中的配置任務(wù)是在步驟S304中所生成的超級配置任務(wù)。應(yīng)當(dāng)注意,可以按照執(zhí)行該多個作業(yè)的順序,直接地將來自多個作業(yè)的計算任務(wù)串行地排列以作為超級任務(wù)的計算任務(wù)。
[0053]具體而言,例如作業(yè)Job-A和作業(yè)Job-B應(yīng)當(dāng)在分布式計算系統(tǒng)中串行地執(zhí)行,并且按照如圖3中步驟S304所示的劃分步驟,已經(jīng)從作業(yè)Job-A和作業(yè)Job-B中獲取了多個計算任務(wù)Task-Al、...、Task-A N、以及多個計算任務(wù)Task-Bl、...、Task-B Μ。此時,在整合的超級任務(wù)中,可以構(gòu)造使得在執(zhí)行計算任務(wù)Task-Al.....Task-A N之后再執(zhí)行計算任務(wù) Task-ΒΙ、...、Task-B Μ。
[0054]在步驟S308中,利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序。在此實施方式中,可以按照與執(zhí)行常規(guī)作業(yè)相類似的方式,來利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn)執(zhí)行超級作業(yè)。
[0055]應(yīng)當(dāng)注意,根據(jù)本發(fā)明各個實施方式的方法可以在作業(yè)的運(yùn)行期間進(jìn)行性能優(yōu)化,以便提高各個作業(yè)的執(zhí)行效率。由于在運(yùn)行時并不能獲得各個作業(yè)的源代碼而僅能獲得可執(zhí)行程序,因而本發(fā)明中所述的運(yùn)行期間的優(yōu)化是基于可執(zhí)行程序進(jìn)行的,而并不涉及與程序員在開發(fā)階段優(yōu)化源代碼相關(guān)的任何內(nèi)容。
[0056]具體而言,由于超級作業(yè)中可以包括可并行執(zhí)行的任務(wù),此時可以利用多個計算節(jié)點(diǎn)來執(zhí)行這些可以并行執(zhí)行的任務(wù)。例如,繼續(xù)上文步驟S306所示的示例,當(dāng)超級任務(wù)中包括計算任務(wù)Task-Al、...、Task-A N和計算任務(wù)Task-BU...、Task-B M時,可以首先利用多個計算節(jié)點(diǎn)至少部分并行地執(zhí)行計算任務(wù)Task-Al.....Task-A N,繼而再利用多個計算節(jié)點(diǎn)來至少部分并行地執(zhí)行計算任務(wù)Task-Bl、...、Task-B Μ。
[0057]此時,盡管特定的兩組計算任務(wù)的具體執(zhí)行時間可能會存在先后順序,然而針對超級任務(wù)中包括的全部計算任務(wù)而言,它們中的至少一部分可以是并行執(zhí)行的。
[0058]在本發(fā)明的一個實施方式中,超級配置任務(wù)僅被執(zhí)行一次。應(yīng)當(dāng)注意,在分布式計算技術(shù)中,與任務(wù)管理和調(diào)度相關(guān)聯(lián)的配置任務(wù)可以是相同的任務(wù);并且由于在上文的步驟S304中已經(jīng)將多個配置任務(wù)組合為一超級配置任務(wù),因而,在本發(fā)明的這一實施方式中僅需要執(zhí)行一次超級配置任務(wù)即可。
[0059]針對圖2中的示例,在時間段LT1212、LT2222和LT3232期間執(zhí)行的配置任務(wù)可以是相同的任務(wù),例如用于執(zhí)行加載操作。類似地,在時間段NIT1214、NIT2224和NIT3234期間執(zhí)行的配置任務(wù)也可以是相同的任務(wù),例如用于執(zhí)行網(wǎng)絡(luò)初始化操作。在本發(fā)明的一個實施方式中,這些相同的配置任務(wù)被組合為一超級配置任務(wù),并且在運(yùn)行期間僅需執(zhí)行一次,在下文中將參見圖4進(jìn)行說明。
[0060]圖4示意性示出了根據(jù)本發(fā)明的一個實施方式的執(zhí)行超級任務(wù)的方法的時序圖400。該圖示出了針對如圖2所示的多個作業(yè)執(zhí)行根據(jù)本發(fā)明的方法后形成的超級任務(wù)的時序圖。如圖2所示,在執(zhí)行每個作業(yè)期間,都要執(zhí)行相應(yīng)的加載操作、網(wǎng)絡(luò)初始化操作、運(yùn)行操作和網(wǎng)絡(luò)釋放操作,然而其中只有運(yùn)行操作是用于執(zhí)行直接與作業(yè)的計算目標(biāo)相關(guān)聯(lián)的任務(wù),而其他操作均為輔助操作。
[0061]通過使用本發(fā)明的方法,可以將圖2中所示的三個作業(yè)整合為一個超級作業(yè),并且重新調(diào)度和管理超級作業(yè)中的各個任務(wù)。具體地,如圖4所示,來自圖2中所示的三個作業(yè)的加載時間LT1212、LT2222和LT3232被整合為超級作業(yè)410的加載時間LT412。類似地,來自圖2中的三個作業(yè)的網(wǎng)絡(luò)初始化時間被整合為超級作業(yè)410的網(wǎng)絡(luò)初始化時間NIT414,以及來自圖2中的三個作業(yè)的網(wǎng)絡(luò)釋放時間被整合為超級作業(yè)410的網(wǎng)絡(luò)釋放時間NCT418。進(jìn)一步,來自圖2中的三個作業(yè)的運(yùn)行時間(即RT1+RT2+RT3)整體作為超級作業(yè)410的運(yùn)行時間。從圖4中可見,超級任務(wù)中的運(yùn)行時間在整個執(zhí)行時間中所占的比例大大提聞,因而,分布式計算系統(tǒng)的運(yùn)行效率得以提聞。
[0062]在本發(fā)明的一個實施方式中,可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。由于可執(zhí)行程序的使用者通常并不具有該可執(zhí)行程序的源代碼,因而并不能針對各個可執(zhí)行程序的運(yùn)行效率進(jìn)行優(yōu)化。應(yīng)當(dāng)注意,當(dāng)可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫編寫時,可以從可執(zhí)行程序的代碼(例如,二進(jìn)制代碼)中提取出與配置任務(wù)和計算任務(wù)相關(guān)聯(lián)的部分。在下文中將詳細(xì)說明具體步驟。
[0063]圖5示意性示出了與作業(yè)相關(guān)聯(lián)的源代碼與可執(zhí)行代碼之間的映射關(guān)系500。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可執(zhí)行程序是通過編譯源代碼來形成的。具體地,圖5左側(cè)示意性示出了與可執(zhí)行程序520相關(guān)聯(lián)的源代碼510。在編寫源代碼時,可以調(diào)用分布式計算基礎(chǔ)函數(shù)庫中的各個函數(shù)。例如,可以調(diào)用基礎(chǔ)函數(shù)庫中的MPI_Init()函數(shù),來實現(xiàn)與初始化相關(guān)聯(lián)的功能,可以調(diào)用MPI_Finalize()來實現(xiàn)與釋放資源等相關(guān)聯(lián)的功能。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖5中的函數(shù)MPI_Init()和MPI_Finalize()僅僅是示意性的,基礎(chǔ)函數(shù)庫中還可以存在與初始化和資源釋放等操作相關(guān)聯(lián)的其他函數(shù)。
[0064]圖5右側(cè)的可執(zhí)行程序520是將源代碼510編譯后所得的可執(zhí)行程序??蓤?zhí)行程序520例如可以是二進(jìn)制代碼的形式,并且該二進(jìn)制代碼可以包括分別與源代碼中的各個函數(shù)相對應(yīng)的代碼段。例如,代碼段1522可以對應(yīng)于MPI_Init()函數(shù),代碼段2524可以對應(yīng)于Compute O函數(shù),而代碼段3526可以對應(yīng)于MPI_Finalize O函數(shù)。因而,可以通過解析可執(zhí)行程序的代碼段,來分析可執(zhí)行程序的具體含義。本發(fā)明的一個實施方式可以基于上述原理來將作業(yè)中的多個任務(wù)劃分為配置任務(wù)和計算任務(wù)。
[0065]具體地,在本發(fā)明的一個實施方式中,響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)中所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù)包括:針對多個作業(yè)中的當(dāng)前作業(yè),根據(jù)分布式計算基礎(chǔ)函數(shù)庫的定義,從當(dāng)前作業(yè)中的多個任務(wù)中提取以下至少任一項來作為配置任務(wù):調(diào)度任務(wù)、網(wǎng)絡(luò)資源管理任務(wù),調(diào)度任務(wù)用于啟動當(dāng)前作業(yè),網(wǎng)絡(luò)資源管理任務(wù)用于管理執(zhí)行當(dāng)前作業(yè)所需的網(wǎng)絡(luò)資源;以及將當(dāng)前作業(yè)的多個任務(wù)中、配置任務(wù)以外的任務(wù)作為作業(yè)的計算任務(wù)。
[0066]由于分布式計算基礎(chǔ)函數(shù)庫中已經(jīng)明確定義了各個函數(shù)的內(nèi)容,并且與各個函數(shù)相關(guān)聯(lián)的代碼段的內(nèi)容也是可知的。因而,可以根據(jù)分布式計算基礎(chǔ)函數(shù)庫的定義,從當(dāng)前作業(yè)中的多個任務(wù)中提取以下至少任一項來作為配置任務(wù):調(diào)度任務(wù)、網(wǎng)絡(luò)資源管理任務(wù)。
[0067]針對圖5中的具體示例,當(dāng)在基礎(chǔ)函數(shù)庫中定義了函數(shù)MPI_Init()和MPI_FinalizeO分別是分配和釋放網(wǎng)絡(luò)資源的任務(wù)時,可以得知:可執(zhí)行程序520中的代碼段1522和代碼段3526為網(wǎng)絡(luò)資源管理任務(wù)。類似地,本領(lǐng)域技術(shù)人員還可以基于基礎(chǔ)函數(shù)庫中對于與調(diào)度任務(wù)相關(guān)聯(lián)的函數(shù)的定義,來確定哪些代碼段屬于調(diào)度任務(wù)。應(yīng)當(dāng)注意,上文中的函數(shù)MPI_Init O和MPI_Finalize O僅僅是示意性的,它們分別示意性示出了進(jìn)入用戶程序之前和退出用戶程序之后的操作。對于由不同提供者所提供的基礎(chǔ)函數(shù)庫,還可以以其他的一個或者多個函數(shù)來表示分配資源和釋放資源的操作。
[0068]當(dāng)已經(jīng)確定了配置任務(wù)之后,可以將當(dāng)前作業(yè)的多個任務(wù)中、配置任務(wù)以外的任務(wù)作為作業(yè)的計算任務(wù)。針對圖5中的具體示例,可以確定:對應(yīng)于ComputeO函數(shù)的代碼段2524屬于計算任務(wù)。應(yīng)當(dāng)注意,盡管圖5中僅以ComputeO來代表計算任務(wù),本領(lǐng)域技術(shù)人員可以理解,計算任務(wù)是指可以由分布式計算系統(tǒng)中的各個計算節(jié)點(diǎn)至少部分地并行執(zhí)行的多個任務(wù)。
[0069]在下文中,將參見圖6描述如何并行地執(zhí)行多個任務(wù)。圖6示意性示出了根據(jù)本發(fā)明的一個實施方式的用于執(zhí)行包括并行任務(wù)的作業(yè)的原理的示意圖600。例如,作業(yè)610
中可以包括多個任務(wù):任務(wù)1612、任務(wù)2614.....任務(wù)N616等等,其中這些任務(wù)中的至少一部分可以并行地執(zhí)行。
[0070]根據(jù)分布式計算的一個原理,在執(zhí)行作業(yè)時,每個任務(wù)可以具有特定的網(wǎng)絡(luò)地址。在執(zhí)行作業(yè)的初始階段,每個任務(wù)可以向特定設(shè)備發(fā)送自己的網(wǎng)絡(luò)地址,以構(gòu)造包括各個任務(wù)的網(wǎng)絡(luò)地址的網(wǎng)絡(luò)地址表(或者還可以由該特定設(shè)備主動采集各個任務(wù)的網(wǎng)絡(luò)地址以構(gòu)造網(wǎng)絡(luò)地址表,等)。繼而,多個任務(wù)可以通過網(wǎng)絡(luò)地址表中的地址來彼此通信,以便完成作業(yè)。如圖6中所示的多個任務(wù)1612、任務(wù)2614、...、任務(wù)N616可以通過網(wǎng)絡(luò)地址表620來進(jìn)行通信。
[0071]在本發(fā)明的一個實施方式中,網(wǎng)絡(luò)資源管理任務(wù)至少包括網(wǎng)絡(luò)初始化任務(wù)以及網(wǎng)絡(luò)釋放任務(wù)。
[0072]在本發(fā)明的一個實施方式中,網(wǎng)絡(luò)初始化任務(wù)至少包括:采集各個計算任務(wù)的網(wǎng)絡(luò)地址以形成用于在各個計算任務(wù)之間進(jìn)行通信的網(wǎng)絡(luò)地址表。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在此實施方式中的網(wǎng)絡(luò)初始化任務(wù)例如可以包括:針對如圖6中所示的多個任務(wù)1612...任務(wù)N616來構(gòu)建網(wǎng)絡(luò)地址表620的操作。
[0073]在本發(fā)明的一個實施方式中,網(wǎng)絡(luò)釋放任務(wù)至少包括:釋放網(wǎng)絡(luò)地址表。應(yīng)當(dāng)注意,由于網(wǎng)絡(luò)地址表是與作業(yè)中的特定任務(wù)相關(guān)聯(lián),因而當(dāng)已經(jīng)執(zhí)行了作業(yè)中的全部任務(wù)時,網(wǎng)絡(luò)地址表也將變得無用,此時還需要移除網(wǎng)絡(luò)地址表。在此實施方式中,網(wǎng)絡(luò)釋放任務(wù)例如可以包括移除網(wǎng)絡(luò)地址表的操作。
[0074]應(yīng)當(dāng)注意,盡管上文中分別以構(gòu)建和移除網(wǎng)絡(luò)地址表作為網(wǎng)絡(luò)初始化任務(wù)和網(wǎng)絡(luò)釋放任務(wù)的具體示例,上述兩種任務(wù)還可以包括其他操作。例如,網(wǎng)絡(luò)初始化任務(wù)還可以包括,針對分布式計算系統(tǒng)中的各個計算節(jié)點(diǎn)的網(wǎng)絡(luò)配置進(jìn)行設(shè)置,等。
[0075]在本發(fā)明的一個實施方式中,利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù)包括:與計算任務(wù)串行地執(zhí)行超級配置任務(wù);以及至少部分并行地執(zhí)行計算任務(wù)。
[0076]一方面,超級配置任務(wù)的功能在于為計算任務(wù)設(shè)置適當(dāng)?shù)沫h(huán)境,以及當(dāng)完成計算任務(wù)時將計算環(huán)境復(fù)位,因而可以與計算任務(wù)串行地執(zhí)行超級配置任務(wù)。例如,可以在執(zhí)行計算任務(wù)之前初始化分布式計算系統(tǒng)的網(wǎng)絡(luò)資源,在執(zhí)行計算任務(wù)之后釋放所使用的網(wǎng)絡(luò)資源。另一方面,計算任務(wù)包括可以并行執(zhí)行的多個任務(wù),因而可以按照分布式計算技術(shù)的一般原理,來由多個計算節(jié)點(diǎn)至少部分并行地執(zhí)行這些計算任務(wù)。
[0077]在本發(fā)明的一個實施方式中,與計算任務(wù)串行地執(zhí)行超級配置任務(wù)包括:串行地執(zhí)行調(diào)度任務(wù)、網(wǎng)絡(luò)初始化任務(wù)、計算任務(wù)、以及網(wǎng)絡(luò)釋放任務(wù)。在下文中將參見圖7進(jìn)行詳細(xì)描述。
[0078]圖7示意性示出了根據(jù)本發(fā)明的一個實施方式的用于執(zhí)行超級任務(wù)的方法的流程圖700。首先,在步驟S702處執(zhí)行調(diào)度任務(wù),以啟動當(dāng)前作業(yè)。接著,在步驟S704中,判斷在分布式計算系統(tǒng)中是否已經(jīng)存在網(wǎng)絡(luò)地址表,如果判斷結(jié)果為“否”,則在步驟S706中,獲取超級任務(wù)中的多個計算任務(wù)的網(wǎng)絡(luò)地址,以形成網(wǎng)絡(luò)地址表。繼而,操作流程前進(jìn)至步驟S708。如果在步驟S704處的判斷結(jié)果為“是”,則操作流程直接前進(jìn)至步驟S708。
[0079]在步驟S708中,利用網(wǎng)絡(luò)地址表在計算任務(wù)之間進(jìn)行通信,以執(zhí)行計算任務(wù)。當(dāng)完成計算任務(wù)中的一個計算任務(wù)時,在步驟S710中判斷是否還存在下一計算任務(wù):如果存在,則操作流程返回步驟S708。如果已經(jīng)完成了全部的計算任務(wù),則操作流程前進(jìn)至步驟S712以釋放網(wǎng)絡(luò)資源。
[0080]應(yīng)當(dāng)注意,圖7中所示的方法中,步驟S704-S706屬于網(wǎng)絡(luò)初始化任務(wù),步驟S708-S710屬于計算任務(wù)。應(yīng)當(dāng)注意,步驟S708-S710中示出的操作并非在單一計算節(jié)點(diǎn)處執(zhí)行,而是可以在分布式計算系統(tǒng)中的多個計算節(jié)點(diǎn)處執(zhí)行。例如,空閑的計算節(jié)點(diǎn)可以查詢是否存在下一計算任務(wù),當(dāng)發(fā)現(xiàn)還有尚未完成的計算任務(wù)A時,該空閑節(jié)點(diǎn)可以執(zhí)行該計算任務(wù)A。
[0081]在本發(fā)明的一個實施方式中,至少部分并行地執(zhí)行計算任務(wù)包括:利用網(wǎng)絡(luò)地址表在計算任務(wù)之間進(jìn)行通信,以執(zhí)行計算任務(wù)。網(wǎng)絡(luò)地址表中可以記載唯一地標(biāo)識作業(yè)中的每個計算任務(wù)的網(wǎng)絡(luò)地址。例如,計算任務(wù)A的網(wǎng)絡(luò)地址可以表示為“AAAA”,而計算任務(wù)B的網(wǎng)絡(luò)地址可以表示為“BBBB”,當(dāng)計算任務(wù)A需要向計算任務(wù)B發(fā)送消息時,則可以直接向網(wǎng)絡(luò)地址傳輸數(shù)據(jù)包。各個計算任務(wù)經(jīng)由網(wǎng)絡(luò)地址表中的網(wǎng)絡(luò)地址來傳遞消息,隨著在相應(yīng)的計算任務(wù)之間傳遞消息,各個計算任務(wù)得以完成。
[0082]圖8示意性示出了根據(jù)本發(fā)明的一個實施方式的用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置的框圖800。具體地,提供了一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置,包括:劃分模塊810,配置用于響應(yīng)于接收到多個作業(yè),將多個作業(yè)中的每個作業(yè)中所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù);組合模塊820,配置用于將與多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù);整合模塊830,配置用于基于超級配置任務(wù)和計算任務(wù)來將多個作業(yè)整合為一超級作業(yè);以及執(zhí)行模塊840,配置用于利用分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在超級作業(yè)中的超級配置任務(wù)和計算任務(wù),其中多個作業(yè)中的每個作業(yè)是可執(zhí)行程序。
[0083]在本發(fā)明的一個實施方式中,超級配置任務(wù)僅被執(zhí)行一次。
[0084]在本發(fā)明的一個實施方式中,可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。
[0085]在本發(fā)明的一個實施方式中,劃分模塊810包括:提取模塊,配置用于針對多個作業(yè)中的當(dāng)前作業(yè),根據(jù)分布式計算基礎(chǔ)函數(shù)庫的定義,從當(dāng)前作業(yè)中的多個任務(wù)中提取以下至少任一項來作為配置任務(wù):調(diào)度任務(wù)、網(wǎng)絡(luò)資源管理任務(wù),調(diào)度任務(wù)用于啟動當(dāng)前作業(yè),網(wǎng)絡(luò)資源管理任務(wù)用于管理執(zhí)行當(dāng)前作業(yè)所需的網(wǎng)絡(luò)資源;以及指定模塊,配置用于將當(dāng)前作業(yè)的多個任務(wù)中、配置任務(wù)以外的任務(wù)作為作業(yè)的計算任務(wù)。
[0086]在本發(fā)明的一個實施方式中,網(wǎng)絡(luò)資源管理任務(wù)至少包括網(wǎng)絡(luò)初始化任務(wù)以及網(wǎng)絡(luò)釋放任務(wù)。
[0087]在本發(fā)明的一個實施方式中,執(zhí)行模塊840包括:串行執(zhí)行模塊,配置用于與計算任務(wù)串行地執(zhí)行超級配置任務(wù);以及并行執(zhí)行模塊,配置用于至少部分并行地執(zhí)行計算任務(wù)。
[0088]在本發(fā)明的一個實施方式中,串行執(zhí)行模塊包括:第一串行模塊,配置用于串行地執(zhí)行調(diào)度任務(wù)、網(wǎng)絡(luò)初始化任務(wù)、計算任務(wù)、以及網(wǎng)絡(luò)釋放任務(wù)。
[0089]在本發(fā)明的一個實施方式中,述網(wǎng)絡(luò)初始化任務(wù)至少包括:采集各個計算任務(wù)的網(wǎng)絡(luò)地址以形成用于在各個計算任務(wù)之間進(jìn)行通信的網(wǎng)絡(luò)地址表。
[0090]在本發(fā)明的一個實施方式中,網(wǎng)絡(luò)釋放任務(wù)至少包括:釋放網(wǎng)絡(luò)地址表。
[0091]在本發(fā)明的一個實施方式中,并行執(zhí)行模塊包括:通信模塊,配置用于利用網(wǎng)絡(luò)地址表在計算任務(wù)之間進(jìn)行通信,以執(zhí)行計算任務(wù)。
[0092]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施方式的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0093]以上已經(jīng)描述了本發(fā)明的各實施方式,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施方式。在不偏離所說明的各實施方式的范圍和精神的情況下,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施方式的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進(jìn),或者使本【技術(shù)領(lǐng)域】的其他普通技術(shù)人員能理解本文披露的各實施方式。
【權(quán)利要求】
1.一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的方法,包括: 響應(yīng)于接收到所述多個作業(yè),將所述多個作業(yè)中的每個作業(yè)所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù),其中所述多個作業(yè)中的每個作業(yè)是可執(zhí)行程序; 將與所述多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù); 基于所述超級配置任務(wù)和所述計算任務(wù)來將所述多個作業(yè)整合為一超級作業(yè);以及利用所述分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在所述超級作業(yè)中的所述超級配置任務(wù)和所述計算任務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述超級配置任務(wù)僅被執(zhí)行一次。
3.根據(jù)權(quán)利要求1或2所述的方法,其中所述可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。
4.根據(jù)權(quán)利要求3所述的方法,其中響應(yīng)于接收到所述多個作業(yè),將所述多個作業(yè)中的每個作業(yè)中所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù)包括:針對所述多個作業(yè)中的當(dāng)前作業(yè), 根據(jù)所述分布式計算基礎(chǔ)函數(shù)庫的定義,從所述當(dāng)前作業(yè)中的多個任務(wù)中提取以下至少一項來作為配置任務(wù):調(diào)度任務(wù)、網(wǎng)絡(luò)資源管理任務(wù),所述調(diào)度任務(wù)用于啟動所述當(dāng)前作業(yè),所述網(wǎng)絡(luò)資源管理任務(wù)用于管理執(zhí)行所述當(dāng)前作業(yè)所需的網(wǎng)絡(luò)資源;以及 將所述當(dāng)前作業(yè)的多個任務(wù)中、所述配置任務(wù)以外的任務(wù)作為所述作業(yè)的所述計算任務(wù)。
5.根據(jù)權(quán)利要求4所述的方法,其中所述網(wǎng)絡(luò)資源管理任務(wù)至少包括網(wǎng)絡(luò)初始化任務(wù)以及網(wǎng)絡(luò)釋放任務(wù)。
6.根據(jù)權(quán)利要求5所述的方法,其中利用所述分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在所述超級作業(yè)中的所述超級配置任務(wù)和所述計算任務(wù)包括: 與所述計算任務(wù)串行地執(zhí)行所述超級配置任務(wù);以及 至少部分并行地執(zhí)行所述計算任務(wù)。
7.根據(jù)權(quán)利要求6所述的方法,其中與所述計算任務(wù)串行地執(zhí)行所述超級配置任務(wù)包括: 串行地執(zhí)行所述調(diào)度任務(wù)、所述網(wǎng)絡(luò)初始化任務(wù)、所述計算任務(wù)、以及所述網(wǎng)絡(luò)釋放任務(wù)。
8.根據(jù)權(quán)利要求6所述的方法,其中所述網(wǎng)絡(luò)初始化任務(wù)至少包括:采集各個計算任務(wù)的網(wǎng)絡(luò)地址以形成用于在各個計算任務(wù)之間進(jìn)行通信的網(wǎng)絡(luò)地址表。
9.根據(jù)權(quán)利要求8所述的方法,其中所述網(wǎng)絡(luò)釋放任務(wù)至少包括:釋放所述網(wǎng)絡(luò)地址表。
10.根據(jù)權(quán)利要求9所述的方法,其中至少部分并行地執(zhí)行所述計算任務(wù)包括: 利用所述網(wǎng)絡(luò)地址表在所述計算任務(wù)之間進(jìn)行通信,以執(zhí)行所述計算任務(wù)。
11.一種用于在分布式計算系統(tǒng)中管理多個作業(yè)的裝置,包括: 劃分模塊,配置用于響應(yīng)于接收到所述多個作業(yè),將所述多個作業(yè)中的每個作業(yè)所包括的多個任務(wù)劃分為配置任務(wù)和計算任務(wù),其中所述多個作業(yè)中的每個作業(yè)是可執(zhí)行程序; 組合模塊,配置用于將與所述多個作業(yè)相關(guān)聯(lián)的配置任務(wù)組合為一超級配置任務(wù); 整合模塊,配置用于基于所述超級配置任務(wù)和所述計算任務(wù)來將所述多個作業(yè)整合為一超級作業(yè);以及 執(zhí)行模塊,配置用于利用所述分布式計算環(huán)境中的多個計算節(jié)點(diǎn),執(zhí)行包括在所述超級作業(yè)中的所述超級配置任務(wù)和所述計算任務(wù)。
12.根據(jù)權(quán)利要求11所述的裝置,其中所述超級配置任務(wù)僅被執(zhí)行一次。
13.根據(jù)權(quán)利要求11或12所述的裝置,其中所述可執(zhí)行程序是基于分布式計算基礎(chǔ)函數(shù)庫來編寫的。
14.根據(jù)權(quán)利要求13所述的裝置,其中所述劃分模塊包括: 提取模塊,配置用于針對所述多個作業(yè)中的當(dāng)前作業(yè),根據(jù)所述分布式計算基礎(chǔ)函數(shù)庫的定義,從所述當(dāng)前作業(yè)中的多個任務(wù)中提取以下至少一項來作為配置任務(wù):調(diào)度任務(wù)、網(wǎng)絡(luò)資源管理任務(wù),所述調(diào)度任務(wù)用于啟動所述當(dāng)前作業(yè),所述網(wǎng)絡(luò)資源管理任務(wù)用于管理執(zhí)行所述當(dāng)前作業(yè)所需的網(wǎng)絡(luò)資源;以及 指定模塊,配置用于將所述當(dāng)前作業(yè)的多個任務(wù)中、所述配置任務(wù)以外的任務(wù)作為所述作業(yè)的所述計算任務(wù)。
15.根據(jù)權(quán)利要求14所述的裝置,其中所述網(wǎng)絡(luò)資源管理任務(wù)至少包括網(wǎng)絡(luò)初始化任務(wù)以及網(wǎng)絡(luò)釋放任務(wù)。
16.根據(jù)權(quán)利要求15所述的裝置,其中所述執(zhí)行模塊包括: 串行執(zhí)行模塊,配置用于與所述計算任務(wù)串行地執(zhí)行所述超級配置任務(wù);以及 并行執(zhí)行模塊,配置用于至少部分并行地執(zhí)行所述計算任務(wù)。
17.根據(jù)權(quán)利要求16所述的裝置,其中所述串行執(zhí)行模塊包括: 第一串行模塊,配置用于串行地執(zhí)行所述調(diào)度任務(wù)、所述網(wǎng)絡(luò)初始化任務(wù)、所述計算任務(wù)、以及所述網(wǎng)絡(luò)釋放任務(wù)。
18.根據(jù)權(quán)利要求16所述的裝置,其中所述網(wǎng)絡(luò)初始化任務(wù)至少包括:采集各個計算任務(wù)的網(wǎng)絡(luò)地址以形成用于在各個計算任務(wù)之間進(jìn)行通信的網(wǎng)絡(luò)地址表。
19.根據(jù)權(quán)利要求18所述的裝置,其中所述網(wǎng)絡(luò)釋放任務(wù)至少包括:釋放所述網(wǎng)絡(luò)地址表。
20.根據(jù)權(quán)利要求19所述的裝置,其中所述并行執(zhí)行模塊包括: 通信模塊,配置用于利用所述網(wǎng)絡(luò)地址表在所述計算任務(wù)之間進(jìn)行通信,以執(zhí)行所述計算任務(wù)。
【文檔編號】H04L29/08GK104252391SQ201310267938
【公開日】2014年12月31日 申請日期:2013年6月28日 優(yōu)先權(quán)日:2013年6月28日
【發(fā)明者】賀軍, 李廣磊, 柴華, 郭傳偉, 李 榮 申請人:國際商業(yè)機(jī)器公司