專利名稱:用于分配計(jì)算中心中資源的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及分布式計(jì)算。更具體地,本發(fā)明涉及用于分配計(jì)算中心中資源
的方法和裝置。
背景技術(shù):
廉價(jià)硬件的可用性已造就了稱作計(jì)算中心(computing farm)的分布式計(jì)算系統(tǒng), 其中大量計(jì)算機(jī)系統(tǒng)(例如,服務(wù)器)使用高速網(wǎng)絡(luò)耦合在一起。許多企業(yè)使用計(jì)算中心 來(lái)執(zhí)行計(jì)算密集型任務(wù)。具體地,計(jì)算中心已經(jīng)用于執(zhí)行各種各樣的任務(wù),包括但不限于, 計(jì)算機(jī)輔助設(shè)計(jì)、圖形渲染、軟件編輯和數(shù)據(jù)庫(kù)查詢處理。 傳統(tǒng)技術(shù)通常使用排隊(duì)系統(tǒng)來(lái)管理計(jì)算中心中的資源。在傳統(tǒng)方法中,系統(tǒng)管理 員通常根據(jù)公司的標(biāo)準(zhǔn)使用策略來(lái)配置排隊(duì)系統(tǒng)。當(dāng)項(xiàng)目需要有保證的資源以實(shí)現(xiàn)某個(gè)里 程碑時(shí),系統(tǒng)管理員通常將計(jì)算中心中的一組計(jì)算機(jī)系統(tǒng)專門用于該項(xiàng)目。遺憾的是,如果 該項(xiàng)目沒(méi)有使用所有的專用資源,此方法可導(dǎo)致利用率的降低。此外應(yīng)注意,系統(tǒng)管理員通 常必須手動(dòng)重新配置排隊(duì)系統(tǒng)以便對(duì)資源進(jìn)行專門使用,因此,此方法沿襲了伴隨任何需 要手動(dòng)干預(yù)的過(guò)程的所有缺點(diǎn)和風(fēng)險(xiǎn)。 因此,非常需要找到用于分配計(jì)算中心中的資源而沒(méi)有上述缺點(diǎn)的系統(tǒng)和技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的一些實(shí)施方式提供了一種系統(tǒng),其可以使項(xiàng)目所有者能夠確保該項(xiàng)目按 時(shí)完成。該系統(tǒng)可以接收關(guān)于項(xiàng)目所需的作業(yè)槽(jobslot)數(shù)量的信息,并且可以將作業(yè) 槽需求動(dòng)態(tài)映射至計(jì)算中心內(nèi)的作業(yè)槽。該系統(tǒng)可以利用調(diào)度計(jì)算中心中作業(yè)的排隊(duì)系統(tǒng) 來(lái)加以使用。注意,排隊(duì)系統(tǒng)通常不理解時(shí)間以及數(shù)天或數(shù)周內(nèi)的資源規(guī)劃的概念。 一些 實(shí)施方式可以包含多周滾動(dòng)調(diào)度,以支持管理者調(diào)度以后的工作。 該系統(tǒng)可以操控排隊(duì)系統(tǒng)中作業(yè)的優(yōu)先級(jí),以輔助排隊(duì)系統(tǒng)放置作業(yè)。如果作業(yè) 多于一個(gè)預(yù)定時(shí)期仍未解決,并且如果該待決作業(yè)與具有分配的項(xiàng)目相關(guān)聯(lián),則系統(tǒng)可以 動(dòng)態(tài)地操控計(jì)算中心中的作業(yè),從而使排隊(duì)系統(tǒng)調(diào)度該待決作業(yè)。注意,該系統(tǒng)可以使用從 管理接口接收到的信息來(lái)確定與作業(yè)相關(guān)聯(lián)的項(xiàng)目,并且確定該項(xiàng)目是否具有分配。
具體地,操作過(guò)程中,該系統(tǒng)可以接收針對(duì)項(xiàng)目的資源需求信息。該資源需求信息 可以允許資源管理者指定,在特定的星期內(nèi)應(yīng)當(dāng)分配給特定的項(xiàng)目、或分配給指派至該項(xiàng) 目的特定用戶,或分配給執(zhí)行該項(xiàng)目的流程步驟的作業(yè)的用戶的作業(yè)槽的特定數(shù)目。注意, 可以指定針對(duì)未來(lái)數(shù)周(例如,最多到未來(lái)的十二個(gè)周)的資源需求。 接下來(lái),該系統(tǒng)可以接收在計(jì)算中心中執(zhí)行新作業(yè)的請(qǐng)求。系統(tǒng)可以使用資源需 求信息來(lái)確定該新作業(yè)是否與已分配作業(yè)槽的項(xiàng)目相關(guān)聯(lián)。接下來(lái),系統(tǒng)可以確定計(jì)算中 心是否具有可用的作業(yè)槽。而且,系統(tǒng)可以確定其是否已經(jīng)將針對(duì)該項(xiàng)目而分配的所有作 業(yè)槽分配給了與該項(xiàng)目相關(guān)聯(lián)的作業(yè)。如果計(jì)算中心中具有可用的作業(yè)槽,系統(tǒng)可以將可 用的作業(yè)槽分配給新作業(yè)。如果系統(tǒng)沒(méi)有任何可用的作業(yè)槽,并且系統(tǒng)已經(jīng)將所有已分配的作業(yè)槽指派給了與該項(xiàng)目相關(guān)聯(lián)的作業(yè),則系統(tǒng)可以將新作業(yè)放置到隊(duì)列中。 另一方面,如果系統(tǒng)沒(méi)有任何可用的作業(yè)槽,并且如果系統(tǒng)沒(méi)有將所有已分配的
作業(yè)槽指派給與該項(xiàng)目相關(guān)聯(lián)的作業(yè),該系統(tǒng)可以通過(guò)以下操作來(lái)執(zhí)行該新作業(yè)對(duì)當(dāng)前
正在執(zhí)行的作業(yè)進(jìn)行掛起或者重新排隊(duì),并且將釋放的作業(yè)槽分配給新作業(yè)。具體地,用
戶可以選擇作業(yè)應(yīng)當(dāng)被掛起還是重新排隊(duì)。例如,用戶可以通過(guò)使用環(huán)境變量來(lái)指定該選
擇。注意,系統(tǒng)可以基于各種屬性來(lái)動(dòng)態(tài)地、確定地對(duì)作業(yè)進(jìn)行重新排隊(duì),這些屬性包括但
不限于該作業(yè)開(kāi)始的時(shí),與該作業(yè)相關(guān)聯(lián)的項(xiàng)目的超額水平、所有活動(dòng)項(xiàng)目的待決作業(yè)的 數(shù)量、該作業(yè)當(dāng)前消耗的資源的數(shù)量以及該作業(yè)的運(yùn)行時(shí)間限制。 在此方式中,該系統(tǒng)可以使得看起來(lái)該系統(tǒng)已經(jīng)將確定數(shù)量的作業(yè)槽專門用于項(xiàng) 某目,但事實(shí)上,該系統(tǒng)沒(méi)有將作業(yè)槽專用于該項(xiàng)目。相反,當(dāng)項(xiàng)目沒(méi)有使用分配的作業(yè)槽 時(shí),系統(tǒng)將所分配的作業(yè)槽指派給其它作業(yè),但是該系統(tǒng)確保當(dāng)該項(xiàng)目需要作業(yè)槽時(shí)將所 分配的作業(yè)槽指派給該項(xiàng)目。 通常,每個(gè)作業(yè)槽代表計(jì)算中心中標(biāo)準(zhǔn)資源量。因此,當(dāng)排隊(duì)系統(tǒng)將作業(yè)槽分配給 作業(yè)時(shí),其隱式假設(shè)該標(biāo)準(zhǔn)資源量足夠用于執(zhí)行該作業(yè)。然而,一些作業(yè)可能請(qǐng)求比標(biāo)準(zhǔn)資 源量更多的資源。如果排隊(duì)系統(tǒng)在同一計(jì)算機(jī)系統(tǒng)調(diào)度多個(gè)資源密集型作業(yè),則可能導(dǎo)致 嚴(yán)重的性能問(wèn)題,如顛簸(thrashing)。 本發(fā)明的一些實(shí)施方式使用啞元(dummy)作業(yè)來(lái)防止排隊(duì)系統(tǒng)在同一計(jì)算機(jī)系
統(tǒng)上調(diào)度多個(gè)資源密集型作業(yè)。具體地,如果系統(tǒng)接收到資源密集型作業(yè),該系統(tǒng)可以創(chuàng)
建啞元作業(yè),并且在資源密集型作業(yè)的同一計(jì)算機(jī)上調(diào)度該啞元作業(yè),以防止排隊(duì)系統(tǒng)在
同一計(jì)算機(jī)系統(tǒng)上調(diào)度多個(gè)資源密集型作業(yè)。注意,鵬元作業(yè)被認(rèn)為僅使用最少的資源,因
此,在資源密集型作業(yè)的同一計(jì)算機(jī)上調(diào)度鵬元作業(yè)不會(huì)降低計(jì)算機(jī)系統(tǒng)的性能。 此外,如果系統(tǒng)接收到輕型作業(yè),該系統(tǒng)可以在當(dāng)前分配給啞元作業(yè)的作業(yè)槽中
執(zhí)行該輕型作業(yè)。輕型作業(yè)可以是使用的資源量小于標(biāo)準(zhǔn)資源量的作業(yè)。具體而言,如果
排隊(duì)系統(tǒng)在資源密集型作業(yè)的同一計(jì)算機(jī)系統(tǒng)上執(zhí)行輕型作業(yè),該計(jì)算機(jī)系統(tǒng)的性能不會(huì)
大幅降低。以此方式,系統(tǒng)可以改進(jìn)計(jì)算中心的利用率,同時(shí)確保排隊(duì)系統(tǒng)沒(méi)有因?yàn)檎{(diào)度同
一計(jì)算機(jī)系統(tǒng)上多個(gè)資源密集型作業(yè)而引起性能問(wèn)題。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的計(jì)算中心; 圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的計(jì)算機(jī)系統(tǒng); 圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的基于優(yōu)先級(jí)的分配系統(tǒng); 圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的、如何將啞元作業(yè)"外科上"插入計(jì)算機(jī)系
統(tǒng)以防止不期望的資源分配; 圖5給出了示出根據(jù)本發(fā)明一個(gè)實(shí)施方式的、用于在計(jì)算中心中管理資源的過(guò)程 的流程圖;以及 圖6給出了示出根據(jù)本發(fā)明一個(gè)實(shí)施方式的、用于插入啞元作業(yè)以防止不期望的 資源分配的過(guò)程流程圖。
具體實(shí)施例方式
給出下面的描述是為了使任何本領(lǐng)域的技術(shù)人員能夠進(jìn)行和使用所公開(kāi)的實(shí)施
方式,下面的描述是在特定應(yīng)用及其需求的上下文中提供的。對(duì)于本領(lǐng)域技術(shù)人員而言,對(duì)
所公開(kāi)實(shí)施方式的各種修改是顯而易見(jiàn)的,并且在不背離本描述的精神和范圍的情況下,
在此定義的一般性原理可以應(yīng)用于其它實(shí)施方式和應(yīng)用。因此,并非意在將本描述限于所
示的實(shí)施方式,本描述將根據(jù)符合在此公開(kāi)的原理和特征的最寬范圍。 計(jì)算中心 廉價(jià)硬件的可用性已造就了稱作計(jì)算中心的分布式計(jì)算系統(tǒng),其中大量計(jì)算機(jī)系 統(tǒng)(例如,服務(wù)器)使用高速網(wǎng)絡(luò)耦合在一起。許多企業(yè)使用計(jì)算中心來(lái)執(zhí)行計(jì)算密集型任 務(wù)。具體地,計(jì)算中心已經(jīng)用于執(zhí)行多種任務(wù),包括但不限于計(jì)算機(jī)輔助設(shè)計(jì)、圖形渲染、 軟件編輯和數(shù)據(jù)庫(kù)查詢過(guò)程等。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的計(jì)算中心。 計(jì)算中心102包括大量利用網(wǎng)絡(luò)耦合在一起的計(jì)算機(jī)。組成該計(jì)算中心的計(jì)算機(jī) 可以位于單個(gè)建筑物內(nèi)(例如,數(shù)據(jù)中心),或者它們可以全球分布。 通常將計(jì)算中心與通用計(jì)算機(jī)網(wǎng)絡(luò)區(qū)分開(kāi)來(lái)的是計(jì)算中心通常包括如下軟件,該 軟件使用戶能夠在作為整體的計(jì)算中心上執(zhí)行作業(yè)。換句話說(shuō),該軟件對(duì)用戶隱藏了計(jì)算 中心架構(gòu)的細(xì)節(jié)。該軟件提供計(jì)算中心中資源的抽象概念,這使得計(jì)算中心更加用戶友好, 并且還使得計(jì)算中心更易于管理和維護(hù)。例如,在計(jì)算中心上執(zhí)行作業(yè),用戶不需要知道計(jì) 算機(jī)的網(wǎng)絡(luò)地址或不同計(jì)算機(jī)的負(fù)載。相反,用戶只是簡(jiǎn)單地將作業(yè)提供給管理該計(jì)算中 心的軟件,而該軟件隨后會(huì)確定如何執(zhí)行該作業(yè)以及何時(shí)執(zhí)行該作業(yè)。 在一個(gè)實(shí)施方式中,該軟件使用戶能夠把計(jì)算中心看作是作業(yè)槽的集合。作業(yè)槽是可 以用于執(zhí)行作業(yè)的一般化資源單元。例如,作業(yè)槽可以代表具有特定量存儲(chǔ)器的專用處理器, 或者其可以僅代表沒(méi)有存儲(chǔ)器保證的處理器時(shí)間的百分比。此外,作業(yè)槽可以是不同類型,例 如, 一些作業(yè)槽可以預(yù)留給高度交互式作業(yè),而其它作業(yè)槽可以預(yù)留給計(jì)算密集型作業(yè)。
例如,計(jì)算中心102可以視為作業(yè)槽104的集合。作業(yè)槽104可以基于作業(yè)的不 同類型而劃分為不同的種類。例如,作業(yè)槽104可以包括輕型交互式作業(yè)槽106、重型交互 式作業(yè)槽108、溢出作業(yè)槽110和批處理作業(yè)槽112。輕型交互式作業(yè)槽106可以用于執(zhí)行 要求用戶交互但是并非計(jì)算密集型的作業(yè)。重型交互式作業(yè)槽108可以用于執(zhí)行要求用戶 交互并且被認(rèn)為是計(jì)算密集型的作業(yè)。溢出作業(yè)槽IIO可以用于執(zhí)行"溢出"作業(yè),即系統(tǒng) 無(wú)法為其找到未使用作業(yè)槽的那些作業(yè)。批處理作業(yè)槽112可以用于執(zhí)行不要求用戶交互 的計(jì)算密集型作業(yè)。批處理作業(yè)槽112還可以用于執(zhí)行要求專用資源的高優(yōu)先級(jí)作業(yè)。
不同類型的作業(yè)槽可以代表不同的資源量。例如,由于輕型交互式作業(yè)不被認(rèn)為 是計(jì)算密集型的,因此每個(gè)輕型交互式作業(yè)槽可以代表少量的處理器和存儲(chǔ)器資源。換句 話說(shuō),計(jì)算中心中的單個(gè)計(jì)算機(jī)可以提供大量的輕型交互式作業(yè)槽。相反,批處理槽可以代 表大量處理器和存儲(chǔ)器資源,例如,專用計(jì)算機(jī)系統(tǒng)。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的計(jì)算機(jī)系統(tǒng)。 計(jì)算機(jī)系統(tǒng)202包括處理器204、存儲(chǔ)器206和存儲(chǔ)設(shè)備208。計(jì)算機(jī)系統(tǒng)202可 以與顯示器214、鍵盤210和指點(diǎn)設(shè)備212耦合。存儲(chǔ)設(shè)備208可以存儲(chǔ)應(yīng)用216、操作系 統(tǒng)218和數(shù)據(jù)220。注意,計(jì)算中心中的計(jì)算機(jī)系統(tǒng)通常不與輸入/輸出設(shè)備耦合。然而,在維護(hù)期間,計(jì)算機(jī)系統(tǒng)可以與輸入/輸出設(shè)備耦合。 計(jì)算中心中的每個(gè)計(jì)算機(jī)系統(tǒng)通常是"單機(jī)"計(jì)算機(jī)系統(tǒng),即每個(gè)計(jì)算機(jī)系統(tǒng)具有 自己的操作系統(tǒng),并且通過(guò)將作業(yè)加載至其存儲(chǔ)器以及在其處理器上執(zhí)行相關(guān)聯(lián)的指令來(lái) 執(zhí)行作業(yè)。計(jì)算中心通常無(wú)法在不丟失狀態(tài)的情況下將正在一個(gè)計(jì)算機(jī)系統(tǒng)執(zhí)行的作業(yè)移 至另一個(gè)計(jì)算機(jī)系統(tǒng)。換句話說(shuō),在計(jì)算中心中,將作業(yè)從第一計(jì)算機(jī)系統(tǒng)移至第二計(jì)算機(jī) 系統(tǒng)通常包括在第一計(jì)算機(jī)系統(tǒng)上停止該作業(yè),以及在第二計(jì)算機(jī)系統(tǒng)上從頭開(kāi)始重啟 該作業(yè)。在這方面,計(jì)算中心可能與分布式系統(tǒng)不同,其中該分布式系統(tǒng)從最終用戶看來(lái)就 像是單個(gè)計(jì)算機(jī)系統(tǒng),并且支持作業(yè)的無(wú)縫轉(zhuǎn)移。 上文對(duì)計(jì)算機(jī)系統(tǒng)和計(jì)算中心的描述僅出于說(shuō)明和描述的目的。其并非旨在窮盡 或者將本發(fā)明限制在所公開(kāi)的形式。 一般而言,計(jì)算中心中的計(jì)算機(jī)系統(tǒng)可以是任何可以 處理數(shù)據(jù)并且可以與其它計(jì)算機(jī)系統(tǒng)通信的系統(tǒng)。具體地,計(jì)算中心可以包括多處理器系 統(tǒng)和/或具有多核處理器的計(jì)算機(jī)系統(tǒng)。
資源分配 用于分配計(jì)算中心中資源的傳統(tǒng)技術(shù)通常使用排隊(duì)系統(tǒng)。例如,來(lái)自Platform Computing公司的負(fù)載均衡系統(tǒng)(LSF)軟件就是可以用于分配計(jì)算中心中資源的排隊(duì)系 統(tǒng)。 排隊(duì)系統(tǒng)通常跟蹤計(jì)算中心中可用的作業(yè)槽,并且根據(jù)規(guī)則集來(lái)指派這些作業(yè) 槽。排隊(duì)系統(tǒng)通常支持具有不同優(yōu)先級(jí)級(jí)的多個(gè)隊(duì)列。提交至該隊(duì)列的作業(yè)可以利用不同 排隊(duì)規(guī)定來(lái)加以處理。例如,排隊(duì)系統(tǒng)可以基于先來(lái)先服務(wù)原則來(lái)處理隊(duì)列中的作業(yè)。此 外,排隊(duì)系統(tǒng)可以基于可動(dòng)態(tài)配置的作業(yè)優(yōu)先級(jí)來(lái)處理隊(duì)列中的作業(yè)。 例如,排隊(duì)系統(tǒng)可以有三個(gè)隊(duì)列低優(yōu)先級(jí)隊(duì)列、中優(yōu)先級(jí)隊(duì)列和高優(yōu)先級(jí)隊(duì)列。
排隊(duì)系統(tǒng)可以保證高優(yōu)先級(jí)隊(duì)列中的作業(yè)總會(huì)比中優(yōu)先級(jí)隊(duì)列中的作業(yè)或低優(yōu)先級(jí)隊(duì)列
中的作業(yè)先執(zhí)行。此外,系統(tǒng)可以將特定的計(jì)算機(jī)系統(tǒng)專用于高優(yōu)先級(jí)隊(duì)列,并且這些計(jì)算
機(jī)系統(tǒng)即使空閑也不能由中優(yōu)先級(jí)中的作業(yè)或低優(yōu)先級(jí)中的作業(yè)來(lái)使用。 根據(jù)作業(yè)的重要性,用戶可以將作業(yè)提交至適當(dāng)?shù)年?duì)列。此外,排隊(duì)系統(tǒng)可以確保
在適當(dāng)?shù)年?duì)列中,具有較高優(yōu)先級(jí)的作業(yè)或較早接收到的作業(yè)將在具有較低優(yōu)先級(jí)的作業(yè)
或較晚接收到的作業(yè)之前執(zhí)行。 遺憾的是,即使傳統(tǒng)排隊(duì)系統(tǒng)是復(fù)雜的,其仍然不足以處理大型機(jī)構(gòu)每天面臨的 許多問(wèn)題。例如,公司可能有數(shù)十個(gè)產(chǎn)品組,每個(gè)產(chǎn)品組有共享計(jì)算中心的數(shù)十個(gè)工程師 或數(shù)百個(gè)工程師。正常操作過(guò)程中,工程師將其作業(yè)提交至計(jì)算中心和排隊(duì)系統(tǒng)(例如, LSF),確定如何調(diào)度該作業(yè)。然而,當(dāng)項(xiàng)目接近絕限時(shí),項(xiàng)目管理者可能要求向與該項(xiàng)目相 關(guān)聯(lián)的作業(yè)給予更高的優(yōu)先級(jí)。 處理此類情況的傳統(tǒng)方式是使一定數(shù)量的計(jì)算機(jī)系統(tǒng)專用于該項(xiàng)目或?yàn)樵擁?xiàng)目 創(chuàng)建獨(dú)立的高優(yōu)先級(jí)隊(duì)列。遺憾的是,這些傳統(tǒng)的方法有許多嚴(yán)重的缺點(diǎn)。
第一,如果專用計(jì)算機(jī)系統(tǒng)沒(méi)有得到最大限度的使用,則這些方法可造成利用率 較低。第二,這些方法不是自動(dòng)化的,即它們要求人工干預(yù),這耗時(shí)并且易錯(cuò)。通常,信息技 術(shù)(IT)管理員必須人工重新配置排隊(duì)系統(tǒng),以創(chuàng)建新的高優(yōu)先級(jí)隊(duì)列或者將一定數(shù)量的 計(jì)算機(jī)系統(tǒng)專用于高優(yōu)先級(jí)項(xiàng)目。第三,這些方法可能對(duì)整個(gè)系統(tǒng)產(chǎn)生影響,可導(dǎo)致意想不 到的后果。例如,當(dāng)IT管理員創(chuàng)建新的高優(yōu)先級(jí)隊(duì)列或是將一些計(jì)算機(jī)專用于特定項(xiàng)目時(shí),其可以從其他項(xiàng)目取走資源,這可能導(dǎo)致該其他項(xiàng)目錯(cuò)過(guò)其絕限。換句話說(shuō),當(dāng)項(xiàng)目的 優(yōu)先級(jí)改變時(shí),傳統(tǒng)方法沒(méi)有提供最小化對(duì)其它項(xiàng)目影響的方式。最后,傳統(tǒng)方法是自組 織的(ad hoc),S卩,其沒(méi)有使用系統(tǒng)化方法來(lái)確保排隊(duì)系統(tǒng)用于根據(jù)機(jī)構(gòu)的優(yōu)先級(jí)來(lái)調(diào)度 作業(yè)。具體地,在傳統(tǒng)方法中,分配給項(xiàng)目的資源量更多地取決于機(jī)構(gòu)內(nèi)項(xiàng)目管理者的影響 力,而不是取決于項(xiàng)目本身的重要性。 因此,需要有助于管理計(jì)算中心中的作業(yè)的系統(tǒng)和技術(shù),以改進(jìn)資源的利用率,并 且確保資源是根據(jù)機(jī)構(gòu)的優(yōu)先級(jí)分配的。 本發(fā)明的一些實(shí)施方式改進(jìn)了使用LSF排隊(duì)系統(tǒng)的計(jì)算中心中的資源利用率,從 而支持較大的工程吞吐量、較高的生產(chǎn)力、較好的投資回報(bào)和較低的成本。具體地,本發(fā)明 的一些實(shí)施方式在LSF之上使用虛擬化層和基于規(guī)則的管理,以支持機(jī)構(gòu)以降低的管理開(kāi) 銷來(lái)有效地使用較少但是較大的計(jì)算中心。此外,本發(fā)明的一些實(shí)施方式利用空閑資源的 實(shí)時(shí)重分配來(lái)支持有效的規(guī)劃和調(diào)度,從而實(shí)現(xiàn)從小規(guī)模到大規(guī)模計(jì)算中心的新的可擴(kuò)展 水平。 某于優(yōu)先級(jí)的分配(PBA) PBA是自動(dòng)化層,其利用基于分配調(diào)度和優(yōu)先級(jí)的按需動(dòng)態(tài)資源重分配來(lái)組合已 調(diào)度的資源分配,從而增強(qiáng)排隊(duì)系統(tǒng)。PBA可以允許供特定項(xiàng)目專用的先前空閑的處理器由 其它項(xiàng)目使用,從而改進(jìn)批處理計(jì)算資源的利用率。PBA可以降低為滿足改變的最終用戶 需求而人工重配置排隊(duì)系統(tǒng)的人為干預(yù)的需要,這降低了管理費(fèi)用和潛在的人為錯(cuò)誤。PBA 可以包括全套的自動(dòng)化報(bào)告,其可以為用戶、項(xiàng)目領(lǐng)導(dǎo)、資源管理者和排隊(duì)系統(tǒng)專家提供前 瞻性反饋,以優(yōu)化利用率并且提供可預(yù)知的結(jié)果。 PBA可以包括在線分配系統(tǒng),其允許經(jīng)授權(quán)的資源管理者和非排隊(duì)系統(tǒng)管理員對(duì) 資源使用進(jìn)行優(yōu)先級(jí)化和調(diào)度,并且將多個(gè)項(xiàng)目的需求映射至可用的批處理計(jì)算資源。PBA 可以基于項(xiàng)目的概念、與項(xiàng)目相關(guān)聯(lián)的UNIX群組標(biāo)識(shí)符(GID)(出于安全目的)、與項(xiàng)目相 關(guān)聯(lián)的人員和可能要求唯一資源分配的工作流中的步驟來(lái)理解和促進(jìn)分配。當(dāng)作業(yè)提交至 排隊(duì)系統(tǒng)時(shí),PBA系統(tǒng)讓排隊(duì)系統(tǒng)嘗試并調(diào)度該作業(yè),就像其通常配置的那樣。
超額項(xiàng)目可以定義為執(zhí)行的作業(yè)比分配給它的作業(yè)槽數(shù)多的項(xiàng)目。例如,如果項(xiàng) 目有10個(gè)作業(yè)槽的分配,但其有100個(gè)作業(yè)在計(jì)算中心上運(yùn)行,該項(xiàng)目可以被認(rèn)為超額90。 不足額項(xiàng)目可以定義為執(zhí)行的作業(yè)比分配給它的作業(yè)槽數(shù)少的項(xiàng)目。如果作業(yè)是待決的, 并且如果該作業(yè)與具有分配的項(xiàng)目相關(guān)聯(lián),則PBA可以動(dòng)態(tài)地確定中心中最不重要的作業(yè) 并且啟動(dòng)適當(dāng)?shù)牟僮?。注意,正在?zhí)行最不重要作業(yè)的作業(yè)槽被認(rèn)為是低優(yōu)先級(jí)的作業(yè)槽。 不具有分配的項(xiàng)目被假設(shè)為具有零作業(yè)槽的分配,由此,即使該項(xiàng)目在計(jì)算中心中執(zhí)行單 個(gè)作業(yè),其也會(huì)被認(rèn)為是超額的。注意,PBA作業(yè)可以使其優(yōu)先級(jí)在進(jìn)入排隊(duì)系統(tǒng)時(shí)被立即 操控,并且可以標(biāo)示為PBA作業(yè)。 如果針對(duì)資源的需求超過(guò)了供給,則PBA可以通過(guò)對(duì)作業(yè)進(jìn)行重排隊(duì)或掛起來(lái)自
動(dòng)找到并釋放與超額作業(yè)相關(guān)聯(lián)的作業(yè)槽。對(duì)于在超過(guò)可配置時(shí)間周期內(nèi)還是待決的不足 額作業(yè),PBA可在一對(duì)一的基礎(chǔ)上,為每個(gè)不足額作業(yè)釋放一個(gè)超額的作業(yè)槽。實(shí)際效果是, 管理員無(wú)需人工創(chuàng)建新的項(xiàng)目隊(duì)列并且將資源專門用于項(xiàng)目,而是由PBA增加抽象層使得 作業(yè)槽看似專用于該項(xiàng)目,這是因?yàn)楫?dāng)項(xiàng)目需要作業(yè)槽時(shí),PBA把作業(yè)槽動(dòng)態(tài)地重分配給該 項(xiàng)目。
注意,PBA不會(huì)將多于已分配作業(yè)槽數(shù)量的作業(yè)槽分配給項(xiàng)目。通常,通過(guò)PBA而 分配給項(xiàng)目的作業(yè)槽總數(shù)小于排隊(duì)系統(tǒng)中作業(yè)槽的總數(shù)。例如,計(jì)算中心可能支持1000個(gè) 批處理作業(yè)槽,并且通過(guò)PBA分配的作業(yè)槽總數(shù)可以是850。如果針對(duì)項(xiàng)目的資源需求信息 指定項(xiàng)目需要100個(gè)作業(yè)槽,則PBA將僅分配最多100個(gè)作業(yè)槽給該項(xiàng)目。這與航線預(yù)訂 系統(tǒng)不同,航線預(yù)訂系統(tǒng)通常超額預(yù)定航程,因?yàn)槠湔J(rèn)為一些乘客將會(huì)取消他們的預(yù)訂。例 如,航線預(yù)訂系統(tǒng)可以為430個(gè)乘客預(yù)訂座位,即使該飛機(jī)只有400個(gè)座位。
PBA增加資源的利用率和改進(jìn)用戶的生產(chǎn)力。其使項(xiàng)目管理者能夠更有效地計(jì)劃 并且實(shí)現(xiàn)可預(yù)知的結(jié)果。PBA還降低了排隊(duì)系統(tǒng)的復(fù)雜性。最后,其提供了有效的方法來(lái)確 保作業(yè)槽預(yù)留而無(wú)需實(shí)現(xiàn)潛在會(huì)浪費(fèi)的專用隊(duì)列、無(wú)需重寫(xiě)作業(yè)提交腳本、且無(wú)需任何用 戶干預(yù)??梢栽谌魏螘r(shí)間使用PBA的圖形化用戶界面來(lái)容易地進(jìn)行作業(yè)槽分配,并且修改 可以在短時(shí)期內(nèi)生效而不會(huì)產(chǎn)生任何顯著費(fèi)用。 在一些實(shí)施方式中,系統(tǒng)在作業(yè)進(jìn)入排隊(duì)系統(tǒng)之前對(duì)每個(gè)作業(yè)執(zhí)行一系列資格核 準(zhǔn)檢查。此預(yù)先資格核準(zhǔn)步驟與PBA是異步的,其根據(jù)作業(yè)槽分配來(lái)放置作業(yè)。在預(yù)先資 格核準(zhǔn)步驟中,系統(tǒng)可以驗(yàn)證是否已經(jīng)為作業(yè)設(shè)置了預(yù)先定義的"項(xiàng)目"標(biāo)簽。如果是的話, 系統(tǒng)繼而可以驗(yàn)證(1)由"項(xiàng)目"標(biāo)簽標(biāo)識(shí)的項(xiàng)目名稱是否是有效項(xiàng)目名稱;(2)提交作業(yè) 的用戶是否是該項(xiàng)目的有效成員;以及(3)是否已經(jīng)為該項(xiàng)目分配了作業(yè)槽。如果作業(yè)通 過(guò)所有這些測(cè)試,則可以利用內(nèi)部標(biāo)簽來(lái)修改該作業(yè),以使系統(tǒng)能夠在計(jì)算中心中追蹤該 作業(yè)。 一旦預(yù)先資格核準(zhǔn)步驟完成,作業(yè)繼而可以由排隊(duì)系統(tǒng)來(lái)處理。如果作業(yè)在這些測(cè) 試中的任何一個(gè)失敗了,系統(tǒng)可以將該失敗傳達(dá)給用戶并且將該作業(yè)放置在排隊(duì)系統(tǒng)中的 最低優(yōu)先級(jí)隊(duì)列中。在一些實(shí)施方式中,在最低優(yōu)先級(jí)隊(duì)列中的作業(yè)僅在存在最低優(yōu)先級(jí) 的空閑作業(yè)槽的情況下才會(huì)被調(diào)度,并且即使是在被調(diào)度之后,這些作業(yè)也可能被較高優(yōu) 先級(jí)的作業(yè)先占。 一旦適當(dāng)?shù)匦薷牧俗鳂I(yè)的優(yōu)先級(jí),排隊(duì)系統(tǒng)可以按照正常方式來(lái)處理作 業(yè)。 在UNIX環(huán)境中,系統(tǒng)可以調(diào)度"cron"(計(jì)劃任務(wù))作業(yè)對(duì)作業(yè)的優(yōu)先級(jí)進(jìn)行修 改,并且調(diào)度活動(dòng)。每個(gè)周期中,系統(tǒng)可以確定是否存在任何已經(jīng)標(biāo)記為分配的作業(yè)。如果 找到已標(biāo)記的作業(yè),該系統(tǒng)可以遞增作業(yè)的優(yōu)先級(jí)。系統(tǒng)可以為每種作業(yè)類型使用不同的 增量值。注意,"cron"周期的持續(xù)時(shí)間和增量值是可以配置的。 在一些實(shí)施方式中,用于PBA作業(yè)(g卩,與具有分配的項(xiàng)目相關(guān)聯(lián)的作業(yè))的增量 可以大于用于重排隊(duì)作業(yè)的增量。作為示范性示例,系統(tǒng)最初可以為作業(yè)指派默認(rèn)優(yōu)先級(jí) 值20。系統(tǒng)可以使用基本增量值100用于增加PBA作業(yè)的優(yōu)先級(jí),并使用基本增量值10用 于增加"重排隊(duì)"作業(yè)的優(yōu)先級(jí)。 例如,假設(shè)新作業(yè)進(jìn)入排隊(duì)系統(tǒng)。系統(tǒng)開(kāi)始可以為其指派默認(rèn)優(yōu)先級(jí)值20。接下 來(lái),系統(tǒng)可以檢測(cè)作業(yè)是否具有相關(guān)聯(lián)的分配,如果是的話,則可以將作業(yè)的優(yōu)先級(jí)修改為 20加IOO成為新的值120。接下來(lái),在每個(gè)"cron"周期中,系統(tǒng)可以對(duì)作業(yè)的優(yōu)先級(jí)增加 1。因此,假設(shè)"cron"周期是20秒,作業(yè)的優(yōu)先級(jí)60秒后會(huì)是122 :最初優(yōu)先級(jí)是20,第一 個(gè)"cron"后將是120,第二個(gè)"cron"后將是121,最后,第三個(gè)"cron"后將是122。
每次當(dāng)作業(yè)重排隊(duì)時(shí),系統(tǒng)可以將優(yōu)先級(jí)增加重排隊(duì)增量。重排隊(duì)作業(yè)可以存儲(chǔ) 進(jìn)數(shù)據(jù)庫(kù),以便系統(tǒng)可以在每個(gè)"cron"周期增加其優(yōu)先級(jí)值。例如,當(dāng)新作業(yè)提交到系統(tǒng), 系統(tǒng)可以為新作業(yè)賦予默認(rèn)優(yōu)先級(jí)20。接下來(lái),如果作業(yè)處于待決狀態(tài)達(dá)兩個(gè)"cron"周期,系統(tǒng)可以在每個(gè)"cron"周期中將作業(yè)的優(yōu)先級(jí)增加l,從而在兩個(gè)"cron"后作業(yè)的優(yōu)先級(jí)將是22。系統(tǒng)繼而可以調(diào)度該作業(yè)。如果作業(yè)隨后被重排隊(duì),系統(tǒng)將在該作業(yè)被調(diào)度時(shí)將該作業(yè)的優(yōu)先級(jí)增加重排隊(duì)增量(10),從而使該作業(yè)的優(yōu)先級(jí)等于32。系統(tǒng)繼而可以在作業(yè)處于待決狀態(tài)中時(shí)增加作業(yè)的優(yōu)先級(jí)。例如,如果作業(yè)處于待決狀態(tài)達(dá)一個(gè)"cron"周期,系統(tǒng)可以將作業(yè)的優(yōu)先級(jí)增加到33。此后,如果作業(yè)在系統(tǒng)中被調(diào)度,并且繼而再次重排隊(duì),則系統(tǒng)將為該作業(yè)賦予優(yōu)先級(jí)43,其等于作業(yè)在被調(diào)度時(shí)的優(yōu)先級(jí)(33)加上重排隊(duì)增量(10)。系統(tǒng)可以跟蹤作業(yè)重排隊(duì)的次數(shù),并且確保被重排隊(duì)過(guò)特定次數(shù)的作業(yè)不再重排隊(duì)。 通過(guò)使用適當(dāng)?shù)脑隽恐?,系統(tǒng)可以確保PBA作業(yè)比普通作業(yè)具有更高的優(yōu)先級(jí)。此外,系統(tǒng)可以確保所有為了使分配作業(yè)能夠運(yùn)行而被重排隊(duì)的作業(yè)以高于剛進(jìn)入系統(tǒng)的普通作業(yè)的優(yōu)先級(jí)被放回到排隊(duì)系統(tǒng)。在此方式中,系統(tǒng)可以確保重排隊(duì)的作業(yè)在普通作業(yè)之前被調(diào)度。另外,如果作業(yè)具有分配,并且待決超過(guò)了預(yù)定的時(shí)間周期,系統(tǒng)可以確定中心中最不重要的作業(yè),并且將該最不重要的作業(yè)替換為與不足額項(xiàng)目相關(guān)聯(lián)的待決作業(yè)。 圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的基于優(yōu)先級(jí)的分配系統(tǒng)。 資源管理者302和信息技術(shù)(IT)管理員304可以使用管理界面306來(lái)提交項(xiàng)目
簡(jiǎn)檔308。項(xiàng)目簡(jiǎn)檔可以指定需要分配給該項(xiàng)目的資源量。具體地,項(xiàng)目可以包括步驟序
列,其中每個(gè)步驟與一組作業(yè)相關(guān)聯(lián)。例如,芯片設(shè)計(jì)項(xiàng)目可能包括邏輯設(shè)計(jì)、合成、網(wǎng)表驗(yàn)
證、物理驗(yàn)證、分辨率增強(qiáng)和掩模數(shù)據(jù)準(zhǔn)備等步驟。進(jìn)一步,項(xiàng)目中的每個(gè)步驟可以與一組
特定的作業(yè)相關(guān)聯(lián)。例如,合成步驟可以包括執(zhí)行邏輯編譯器,分辨率增強(qiáng)步驟可以包括執(zhí)
行光學(xué)鄰近校正軟件等。注意,當(dāng)計(jì)算機(jī)系統(tǒng)執(zhí)行作業(yè)時(shí),其可以產(chǎn)生一個(gè)或多個(gè)進(jìn)程。除
使資源管理者302能夠?qū)iT為項(xiàng)目中的步驟分配資源之外,該系統(tǒng)還可以允許資源管理者
302為特定的用戶分配資源。例如,可以僅當(dāng)特定用戶執(zhí)行作業(yè)時(shí)提供分配,但當(dāng)另一個(gè)用
戶執(zhí)行相同的作業(yè)時(shí)便不提供分配。 項(xiàng)目簡(jiǎn)檔還可以顯示服務(wù)水平協(xié)議(SLA)。具體地,系統(tǒng)可以支持速度SLA和吞吐量SLA。速度SLA指示系統(tǒng)應(yīng)當(dāng)試圖在可能的最短時(shí)間中完成盡可能多的作業(yè)。為了滿足速度SLA,系統(tǒng)通常為該項(xiàng)目執(zhí)行盡可能多的并行作業(yè)。另一方面,吞吐量SLA規(guī)定需要在一定時(shí)間內(nèi)完成的作業(yè)量。因此,在此類SLA類型中,該系統(tǒng)對(duì)于其需要并行執(zhí)行多少作業(yè)更具靈活性。 再次重申,項(xiàng)目簡(jiǎn)檔可以允許資源管理者為非常特定的任務(wù)分配資源。例如,資源管理者可以分配作業(yè)槽,使得特定用戶可以針對(duì)特定項(xiàng)目來(lái)執(zhí)行特定應(yīng)用。 一些實(shí)施方式使用UNIX群組標(biāo)識(shí)符來(lái)標(biāo)識(shí)已經(jīng)分配有資源的用戶。換句話說(shuō),資源管理者可以分配作業(yè)槽,使得與項(xiàng)目相關(guān)聯(lián)的特定UNIX組中的用戶可以針對(duì)該項(xiàng)目執(zhí)行特定的應(yīng)用。系統(tǒng)可以理解預(yù)配置的流程和流程內(nèi)的步驟序列。此外,系統(tǒng)還可以以每個(gè)項(xiàng)目為基礎(chǔ),提供注冊(cè)自定義流程和該流程的步驟序列的能力。 用戶312可以利用排隊(duì)系統(tǒng)316的用戶接口來(lái)提交作業(yè),并且提交的作業(yè)可以被排隊(duì)。為了提交作業(yè),用戶可以提供項(xiàng)目名稱和系統(tǒng)處理該作業(yè)所需的任何其它信息。例如,在LSF中,作業(yè)通常是使用bsub函數(shù)提交的,該函數(shù)具有稱作"project (項(xiàng)目)"的輸入?yún)?shù)。在一個(gè)實(shí)施方式中,用戶可以為此輸入?yún)?shù)指派值,該值對(duì)該項(xiàng)目名稱、流程中的步驟和/或與該作業(yè)相關(guān)聯(lián)的其它相關(guān)信息進(jìn)行編碼。 PBA引擎310可以接收排隊(duì)系統(tǒng)316的狀態(tài)信息,該狀態(tài)信息可以包括處于待決狀態(tài)314的作業(yè)的有關(guān)信息。接下來(lái),PBA引擎310可以使用項(xiàng)目簡(jiǎn)檔308和排隊(duì)系統(tǒng)316的狀態(tài)信息來(lái)確定特定作業(yè)是否需要特殊處理,即,是否需要按照不同于排隊(duì)系統(tǒng)通常處理作業(yè)的方式來(lái)處理該作業(yè)。如果PBA引擎310確定作業(yè)需要特殊處理,則PBA引擎310可以使用排隊(duì)系統(tǒng)316的接口來(lái)動(dòng)態(tài)配置該作業(yè)的屬性和/或配置排隊(duì)系統(tǒng)的行為,從而使該作業(yè)被適當(dāng)?shù)靥幚怼?排隊(duì)系統(tǒng)316可以提供對(duì)計(jì)算中心中資源的提取。該提取可以表示為作業(yè)槽318的集合。作業(yè)槽318可以是不同的類型,例如,輕型交互式作業(yè)槽320、重型交互式作業(yè)槽322、溢出作業(yè)槽324和批處理作業(yè)槽326。在一些實(shí)施方式中,由排隊(duì)系統(tǒng)316獨(dú)自管理作業(yè)到作業(yè)槽318的分配,并且影響排隊(duì)系統(tǒng)316的行為的唯一方法是利用排隊(duì)系統(tǒng)316的接口,例如,命令行接口 (CLI)或應(yīng)用編程接口 (API)。 注意,排隊(duì)系統(tǒng)的接口可以允許用戶在該排隊(duì)系統(tǒng)執(zhí)行其自身的處理之前,對(duì)所提交的作業(yè)執(zhí)行用戶特定的處理。例如,LSF的esub命令允許用戶提供在作業(yè)提交時(shí)對(duì)作業(yè)進(jìn)行驗(yàn)證、修改或拒絕的指令。具體地,本發(fā)明的一些實(shí)施方式可以使用LSF的esub命令來(lái)標(biāo)識(shí)其屬性可能需要修改的作業(yè),并且在需要的情況下修改作業(yè)的屬性。
在操作過(guò)程中,不同類型的作業(yè)可以提交到排隊(duì)系統(tǒng)316。例如,作業(yè)328、作業(yè)330、作業(yè)332和作業(yè)334可以提交到排隊(duì)系統(tǒng)316。具體地,作業(yè)328可以是重型交互式作業(yè),作業(yè)330可以是批處理作業(yè),作業(yè)332可以是輕型交互式作業(yè),而作業(yè)334也可以是批處理作業(yè)。在提交這些作業(yè)時(shí),排隊(duì)系統(tǒng)316可以執(zhí)行用戶特定的指令來(lái)標(biāo)識(shí)哪些作業(yè)可能需要特別處理。例如,作業(yè)330可以是已由用戶特定的指令標(biāo)記為PBA作業(yè)的批處理作業(yè),其中所述用戶特定的指令只要在新作業(yè)提交到該排隊(duì)系統(tǒng)時(shí)就會(huì)執(zhí)行(在圖中,作業(yè)330已被標(biāo)記為PBA作業(yè)這一事實(shí)由"P"示出)。另一方面,作業(yè)334可以是沒(méi)有被標(biāo)記為PBA作業(yè)的普通批處理作業(yè)(在圖中,作業(yè)334是"普通"作業(yè)這一事實(shí)由"N"示出)。
作業(yè)328和作業(yè)332可以由排隊(duì)系統(tǒng)以通常方式來(lái)處理。例如,如果重型交互式作業(yè)槽可用,則將作業(yè)328指派給重型交互式作業(yè)槽,而作業(yè)328將在待決狀態(tài)314中等待直到槽變?yōu)榭捎?。類似地,如果輕型交互式作業(yè)槽可用,則將作業(yè)332指派給輕型交互式作業(yè)槽,而作業(yè)332將會(huì)在待決狀態(tài)314中等待直到槽變?yōu)榭捎谩?然而,由于PBA,排隊(duì)系統(tǒng)可能以不同方式來(lái)處理批處理作業(yè)。具體地,如果批處理作業(yè)槽可用,則系統(tǒng)將把該作業(yè)槽指派到提交到該排隊(duì)系統(tǒng)的下一批處理作業(yè)。如果沒(méi)有批處理作業(yè)槽可用,則該排隊(duì)系統(tǒng)將對(duì)隊(duì)列中的普通批處理作業(yè)進(jìn)行排隊(duì)。然而,如果沒(méi)有批處理作業(yè)槽可用,并且如果作業(yè)已經(jīng)被標(biāo)記為PBA批處理作業(yè),則PBA引擎310可以選擇當(dāng)前正在執(zhí)行的普通批處理作業(yè),并且將選擇的批處理作業(yè)掛起或者重排隊(duì)。接下來(lái),PBA引擎310可以改變?cè)揚(yáng)BA批處理作業(yè)的優(yōu)先級(jí),使得排隊(duì)系統(tǒng)316在最近釋放的作業(yè)槽中調(diào)度該P(yáng)BA批處理作業(yè)。 本發(fā)明的一些實(shí)施方式中,在排隊(duì)系統(tǒng)中僅使用一個(gè)隊(duì)列。具體地,排隊(duì)系統(tǒng)可以支持具有不同優(yōu)先級(jí)的多個(gè)隊(duì)列,但本發(fā)明的一些實(shí)施方式針對(duì)排隊(duì)系統(tǒng)中的批處理作業(yè)使用單個(gè)隊(duì)列,也即,其不具有用于PBA作業(yè)和普通作業(yè)的獨(dú)立隊(duì)列。這些實(shí)施方式利用隊(duì)列中作業(yè)的優(yōu)先級(jí)來(lái)達(dá)到其目標(biāo)。
具體地,PBA具有兩類作業(yè)PBA作業(yè)和普通作業(yè)。PBA可以確保任何PBA作業(yè)的最低優(yōu)先級(jí)總是高于任何普通作業(yè)的最高優(yōu)先級(jí),從而確保PBA作業(yè)總是在普通作業(yè)之前被調(diào)度。類似地,當(dāng)PBA從排隊(duì)系統(tǒng)移除作業(yè)時(shí),其可以為該移除的作業(yè)指派優(yōu)先級(jí),使得該移除的作業(yè)具有在普通作業(yè)中的最高優(yōu)先級(jí)。這確保了移除的作業(yè)將在隊(duì)列中待決的任何其它普通作業(yè)之前被調(diào)度。 在此方式中,系統(tǒng)只要可能便使用空閑作業(yè)槽,并且確保只要PBA作業(yè)需要,作業(yè)槽就是可用的。換句話說(shuō),PBA使得系統(tǒng)看似已經(jīng)將作業(yè)槽專門用于項(xiàng)目,但事實(shí)上該系統(tǒng)沒(méi)有將作業(yè)槽專用于該項(xiàng)目。 注意,傳統(tǒng)的排隊(duì)系統(tǒng)不能夠?qū)崿F(xiàn)當(dāng)項(xiàng)目接近里程碑絕限時(shí)通常需要的分配的類型。例如,對(duì)于將要到達(dá)絕限的項(xiàng)目,特定用戶可能需要在在特定的時(shí)段內(nèi)在專用計(jì)算機(jī)系統(tǒng)上執(zhí)行特定的應(yīng)用。傳統(tǒng)的系統(tǒng)通常通過(guò)將計(jì)算機(jī)系統(tǒng)專用于該項(xiàng)目來(lái)實(shí)現(xiàn)這一要求。然而,如上文說(shuō)明的,此方法通常導(dǎo)致資源浪費(fèi),需要人工重配置排隊(duì)系統(tǒng),并且可能影響其它項(xiàng)目的工作流。 相反,PBA確保了特定的用戶將能夠使用他或她需要的資源來(lái)達(dá)到項(xiàng)目的絕限。此外,PBA防止了浪費(fèi)資源,避免了對(duì)排隊(duì)系統(tǒng)的人工重配置,并且最小化了對(duì)其它項(xiàng)目的影響。具體地,本發(fā)明的一些實(shí)施方式僅將PBA用于需要確保資源來(lái)達(dá)到項(xiàng)目里程碑的項(xiàng)目。
注意, 一些排隊(duì)系統(tǒng)可以保證用戶和/或項(xiàng)目不執(zhí)行多于一定數(shù)量的作業(yè)。另一方面,PBA系統(tǒng)可以動(dòng)態(tài)地操作排隊(duì)系統(tǒng)中的作業(yè)以確保項(xiàng)目和/或用戶可以執(zhí)行至少最小數(shù)量的作業(yè)。"外科"啞元作業(yè)插入 圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式、如何將啞元作業(yè)"外科地"插入計(jì)算機(jī)系統(tǒng)以防止不期望的資源分配。 計(jì)算機(jī)系統(tǒng)402可以是計(jì)算中心的一部分。為說(shuō)明啞元作業(yè)插入,假設(shè)計(jì)算機(jī)系統(tǒng)402可以容納四個(gè)作業(yè)槽,也就是作業(yè)槽404、406、408和410。此外,假設(shè)計(jì)算機(jī)系統(tǒng)402具有16GB的存儲(chǔ)器。計(jì)算機(jī)系統(tǒng)402的存儲(chǔ)器在圖4中以四個(gè)大小為4GB的存儲(chǔ)塊示出,也就是存儲(chǔ)塊412、414、416和418。還假設(shè)作業(yè)槽與4GB存儲(chǔ)塊相關(guān)聯(lián)。
現(xiàn)在,假設(shè)該系統(tǒng)在作業(yè)槽404中調(diào)度作業(yè),并且假設(shè)預(yù)期此作業(yè)使用12GB的存儲(chǔ)器。如果該系統(tǒng)簡(jiǎn)單地調(diào)度該作業(yè)而不采取任何進(jìn)一步的動(dòng)作,將可能導(dǎo)致嚴(yán)重的執(zhí)行問(wèn)題。例如,如果該系統(tǒng)調(diào)度作業(yè)槽406中的另一作業(yè),其也要使用12GB的存儲(chǔ)器,則可能導(dǎo)致顛簸。因此,需要用于防止系統(tǒng)以將會(huì)導(dǎo)致執(zhí)行問(wèn)題的方式將作業(yè)分配到作業(yè)槽的技術(shù)和系統(tǒng)。 本發(fā)明的一些實(shí)施方式將啞元作業(yè)提交到排隊(duì)系統(tǒng),從而使排隊(duì)系統(tǒng)不會(huì)以可能導(dǎo)致執(zhí)行問(wèn)題的方式來(lái)調(diào)度作業(yè)。具體地,在圖4中顯示的實(shí)例中,該系統(tǒng)可以將作業(yè)槽406和作業(yè)槽408分配給兩個(gè)啞元作業(yè),從而確保排隊(duì)系統(tǒng)不會(huì)將這些作業(yè)槽分配給可能引起系統(tǒng)顛簸的真實(shí)作業(yè)。 注意,啞元作業(yè)通過(guò)使用排隊(duì)系統(tǒng)的接口"外科地"被插入。本發(fā)明的一些實(shí)施方式修改排隊(duì)系統(tǒng)的行為而不改變排隊(duì)系統(tǒng)的軟件。修改排隊(duì)系統(tǒng)的行為,因?yàn)橐坏┡抨?duì)系統(tǒng)將啞元作業(yè)分配給了作業(yè)槽406和作業(yè)槽408,排隊(duì)系統(tǒng)在計(jì)算系系統(tǒng)402上將最多再調(diào)度一個(gè)要求標(biāo)準(zhǔn)資源量的作業(yè),從而防止系統(tǒng)顛簸。
注意,系統(tǒng)知道計(jì)算中心中所有計(jì)算機(jī)系統(tǒng)的配置,并且系統(tǒng)可以在處理器之間
等同地劃分系統(tǒng)上的存儲(chǔ)器。例如,在具有16GB存儲(chǔ)器的四處理器系統(tǒng)中,系統(tǒng)可以使每
個(gè)批處理作業(yè)槽與處理器和4GB存儲(chǔ)器相關(guān)聯(lián)。另一方面,在具有64GB存儲(chǔ)器的四處理器
系統(tǒng)中,每個(gè)批處理作業(yè)槽可以與處理器和16GB的存儲(chǔ)器相關(guān)聯(lián)。 基于上文討論,下文部分描述用于分配計(jì)算中心中資源的系統(tǒng)和技術(shù)。ffl f營(yíng)週巾心輸原白勺討禾罕 圖5給出了示出根據(jù)本發(fā)明一個(gè)實(shí)施方式的、用于管理計(jì)算中心中資源的過(guò)程的 流程圖。如上文所述,計(jì)算中心的資源可以使用作業(yè)槽的集合來(lái)表示,并且作業(yè)槽的集合可 以由排隊(duì)系統(tǒng)來(lái)管理。 該過(guò)程可以開(kāi)始于接收針對(duì)項(xiàng)目的資源需求信息(步驟502)。具體地,該資源需 求信息可以指示第一數(shù)量的作業(yè)需要分配以便執(zhí)行與項(xiàng)目相關(guān)聯(lián)的作業(yè)。此外,該資源需 求信息可以指定將要使用第一數(shù)量的作業(yè)槽以支持第一用戶執(zhí)行項(xiàng)目的第一步驟。
接下來(lái),系統(tǒng)可以接收與該項(xiàng)目相關(guān)聯(lián)的新作業(yè)(步驟504)。具體地,如果該項(xiàng)目 指定將使用作業(yè)槽來(lái)支持第一用戶執(zhí)行該項(xiàng)目的第一步驟,則系統(tǒng)可以確定該新作業(yè)是否 與該項(xiàng)目的第一步驟相關(guān)聯(lián),并且該新作業(yè)是否已經(jīng)由該第一用戶提交。如果這兩個(gè)條件 都為真,系統(tǒng)可以將該作業(yè)標(biāo)記為"PBA"作業(yè),并且相應(yīng)地調(diào)度該作業(yè);否則,系統(tǒng)可以將 該作業(yè)標(biāo)記為"普通"作業(yè),并且以普通的方式調(diào)度該作業(yè)。 系統(tǒng)繼而可以確定該項(xiàng)目是否正在使用為其分派的所有作業(yè)槽(步驟506)。具體 地,該系統(tǒng)可以確定已經(jīng)分派給與該項(xiàng)目相關(guān)聯(lián)的作業(yè)的作業(yè)槽的第二數(shù)量,并且將作業(yè) 槽的第二數(shù)量與作業(yè)槽的第一數(shù)量進(jìn)行比較,以確定該項(xiàng)目是否正在使用所有為其分派的 作業(yè)槽。 接下來(lái),系統(tǒng)可以確定是否有任何空閑的作業(yè)槽可用于執(zhí)行新作業(yè)(步驟508)。
如果項(xiàng)目正在使用為其分配的所有作業(yè)槽,或者如果空閑的作業(yè)槽可用于執(zhí)行新 作業(yè),該系統(tǒng)可以照常調(diào)度新作業(yè)(步驟516)。 另一方面,如果項(xiàng)目沒(méi)有使用為其分配的所有作業(yè)槽,并且如果沒(méi)有空閑的作業(yè) 槽可用于執(zhí)行該新作業(yè),系統(tǒng)可以用新作業(yè)替代正在執(zhí)行的作業(yè)。具體地,響應(yīng)于確定了作 業(yè)槽的第二數(shù)量小于作業(yè)槽的第一數(shù)量、并且沒(méi)有作業(yè)槽可用于執(zhí)行與項(xiàng)目相關(guān)聯(lián)的第一 作業(yè),系統(tǒng)可以使用以下過(guò)程來(lái)執(zhí)行該新作業(yè)。 首先,系統(tǒng)可以標(biāo)識(shí)目前分派給執(zhí)行中作業(yè)的低優(yōu)先級(jí)作業(yè)槽(步驟510)。注意, 低優(yōu)先級(jí)作業(yè)槽中執(zhí)行的作業(yè)也被認(rèn)為是最不重要的作業(yè)。 低優(yōu)先級(jí)作業(yè)槽不一定與最后開(kāi)始的作業(yè)相關(guān)聯(lián)。系統(tǒng)可以代之以根據(jù)多個(gè)因素 來(lái)標(biāo)識(shí)低優(yōu)先級(jí)作業(yè)槽。系統(tǒng)可以決定不選擇正在執(zhí)行與具有分配的項(xiàng)目相關(guān)聯(lián)的作業(yè)的 作業(yè)槽。換句話說(shuō),當(dāng)前正在系統(tǒng)上執(zhí)行的作業(yè)可以被劃分為兩類作業(yè)"普通"作業(yè),"PBA" 作業(yè)(即,已經(jīng)由PBA調(diào)度的那些作業(yè))。當(dāng)系統(tǒng)標(biāo)識(shí)低優(yōu)先級(jí)作業(yè)槽時(shí),其可以決定考慮 正在執(zhí)行普通作業(yè)的作業(yè)槽,而且系統(tǒng)可以決定不考慮正在執(zhí)行PBA作業(yè)的作業(yè)槽。
在一些實(shí)施方式中,該系統(tǒng)使用以下因素來(lái)標(biāo)識(shí)低優(yōu)先級(jí)作業(yè)槽作業(yè)是多久之 前開(kāi)始的,與該作業(yè)相關(guān)聯(lián)的項(xiàng)目超額程度,以及該項(xiàng)目有多少作業(yè)處于待決狀態(tài)。在以下 情況下,作業(yè)槽的優(yōu)先級(jí)可能降低(l)該作業(yè)最近才開(kāi)始;(2)與該作業(yè)相關(guān)聯(lián)的項(xiàng)目嚴(yán) 重超額;和/或(3)與該作業(yè)相關(guān)聯(lián)的項(xiàng)目有大量的待決作業(yè)。
作為示范性示例,假設(shè)作業(yè)衛(wèi)和J2是同時(shí)開(kāi)始的,但與作業(yè)衛(wèi)相關(guān)聯(lián)的項(xiàng)目比與 作業(yè)衛(wèi)相關(guān)聯(lián)的項(xiàng)目更加超額。在此情景下,系統(tǒng)可以決定用于J2的作業(yè)槽比用于的 作業(yè)槽具有更低的優(yōu)先級(jí)。如果作業(yè)衛(wèi)和J2是同時(shí)開(kāi)始的,并且如果與作業(yè)衛(wèi)和J2相關(guān) 聯(lián)的項(xiàng)目同等超額,該系統(tǒng)可以根據(jù)待決作業(yè)的數(shù)量來(lái)確定作業(yè)槽的優(yōu)先級(jí)。具體地,如果 與作業(yè)Ji相關(guān)聯(lián)的項(xiàng)目比與作業(yè)衛(wèi)相關(guān)聯(lián)的項(xiàng)目具有更少的待決作業(yè),系統(tǒng)可以決定用于 J2的作業(yè)槽比用于衛(wèi)的作業(yè)槽具有更低的優(yōu)先級(jí)。 接下來(lái),系統(tǒng)可以在低優(yōu)先級(jí)作業(yè)槽中調(diào)度新作業(yè)(步驟512)。系統(tǒng)繼而可以解 分配正在執(zhí)行的作業(yè)(步驟514)。解分配正在執(zhí)行的作業(yè)可以包括(1)停止并且重排隊(duì)正 在執(zhí)行的作業(yè);或(2)掛起正在執(zhí)行的作業(yè)。系統(tǒng)可以使用與作業(yè)相關(guān)聯(lián)的環(huán)境變量來(lái)確 定是停止并且重排隊(duì)該作業(yè),還是掛起該作業(yè)。因?yàn)榄h(huán)境變量的值是由用戶設(shè)置的,因此用 戶可以完全控制在他或她的作業(yè)被解分配之后將會(huì)被如何處理。排隊(duì)系統(tǒng)通?;谧鳂I(yè)被 提交到的隊(duì)列來(lái)確定是重排隊(duì)還是掛起作業(yè)。相反,本發(fā)明的一些實(shí)施方式允許用戶針對(duì) 每個(gè)作業(yè)而控制重排隊(duì)/掛起決定。在解分配正在執(zhí)行的作業(yè)之前調(diào)度新作業(yè),可以使系 統(tǒng)能夠確保排隊(duì)系統(tǒng)不會(huì)在已釋放的作業(yè)槽中調(diào)度不同的作業(yè)。備選地,系統(tǒng)可以為新作 業(yè)分配高優(yōu)先級(jí),使得一旦作業(yè)槽變?yōu)榭捎茫抨?duì)系統(tǒng)便為新作業(yè)分配作業(yè)槽。系統(tǒng)繼而可 以解分配低優(yōu)先級(jí)的作業(yè)槽,從而使排隊(duì)系統(tǒng)將該低優(yōu)先級(jí)作業(yè)槽給新作業(yè)。
圖6給出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的、用于插入啞元作業(yè)以防止不期望資源分 配的過(guò)程的流程圖。 該過(guò)程可以開(kāi)始于接收作業(yè)(步驟602)。注意,每個(gè)作業(yè)槽代表計(jì)算中心中的標(biāo)
準(zhǔn)資源量。因此,當(dāng)排隊(duì)系統(tǒng)為作業(yè)分配作業(yè)槽時(shí),其默認(rèn)該作業(yè)將會(huì)使用標(biāo)準(zhǔn)資源量。 接下來(lái),系統(tǒng)可以確定作業(yè)是否是資源密集型作業(yè)(步驟604)。資源密集型作業(yè)
可以被定義為預(yù)期使用的資源多于標(biāo)準(zhǔn)資源量的作業(yè)。注意,如果排隊(duì)系統(tǒng)在同一個(gè)計(jì)算
機(jī)系統(tǒng)上調(diào)度多個(gè)資源密集型作業(yè),計(jì)算機(jī)系統(tǒng)的性能可能嚴(yán)重惡化。例如,資源密集型作
業(yè)可能使用多于作業(yè)槽的關(guān)聯(lián)存儲(chǔ)量的存儲(chǔ)量,因此,在同一個(gè)計(jì)算機(jī)系統(tǒng)上調(diào)度多個(gè)資
源密集型作業(yè)可以引起顛簸,從而嚴(yán)重惡化該計(jì)算機(jī)系統(tǒng)的性能。 如果該作業(yè)不是資源密集型作業(yè),系統(tǒng)可以照常調(diào)度該作業(yè)(步驟610)。 另一方面,如果該作業(yè)是資源密集型作業(yè),系統(tǒng)可以創(chuàng)建一個(gè)或多個(gè)啞元作業(yè)
(步驟606)。 接下來(lái),系統(tǒng)可以在資源密集型作業(yè)的同一計(jì)算機(jī)系統(tǒng)上調(diào)度該啞元作業(yè),從而
防止排隊(duì)系統(tǒng)調(diào)用該計(jì)算機(jī)系統(tǒng)上的其它資源密集型作業(yè)(步驟608)。 具體地,排隊(duì)系統(tǒng)可以支持以下命令,該命令允許過(guò)程指定排隊(duì)系統(tǒng)將要在其上
調(diào)度作業(yè)的計(jì)算機(jī)系統(tǒng)。因此,該過(guò)程可以指示排隊(duì)系統(tǒng)在同一個(gè)計(jì)算機(jī)系統(tǒng)上調(diào)度資源
密集型作業(yè)和啞元作業(yè)。具體地,該過(guò)程可以改變與該啞元作業(yè)相關(guān)聯(lián)的參數(shù),以便指示排
隊(duì)系統(tǒng)在特定機(jī)器上應(yīng)當(dāng)調(diào)度啞元作業(yè)。接下來(lái),該過(guò)程可以將啞元作業(yè)提交到排隊(duì)系統(tǒng),
從而使排隊(duì)系統(tǒng)在特定機(jī)器上調(diào)度啞元作業(yè)。 注意,如果系統(tǒng)接收到輕型作業(yè)(即,使用的資源少于標(biāo)準(zhǔn)資源量的作業(yè)),該系
統(tǒng)可以在分配給啞元作業(yè)的作業(yè)槽上執(zhí)行該輕型作業(yè),從而改進(jìn)利用率。 具體地,系統(tǒng)可以接收另一作業(yè)(步驟612)。接下來(lái),系統(tǒng)可以確定該作業(yè)是否是
輕型作業(yè)(步驟614)。輕型作業(yè)可以是這樣的作業(yè),預(yù)期在與資源密集型作業(yè)相同的計(jì)算機(jī)系統(tǒng)上調(diào)度該作業(yè)將不會(huì)嚴(yán)重惡化該計(jì)算機(jī)系統(tǒng)的性能。 如果該作業(yè)不是輕型作業(yè),系統(tǒng)可以照常調(diào)度該作業(yè)(步驟610)。另一方面,如果 該作業(yè)是輕型作業(yè),系統(tǒng)可以在分配給啞元作業(yè)的作業(yè)槽上執(zhí)行該輕型作業(yè)(步驟616)。 另外,系統(tǒng)解分配當(dāng)前分配給啞元作業(yè)的作業(yè)槽,并且將該作業(yè)槽分配給該輕型作業(yè)。以此 方式,系統(tǒng)可以改進(jìn)計(jì)算機(jī)系統(tǒng)的利用率而不惡化該計(jì)算機(jī)系統(tǒng)的性能。
結(jié)論 在該詳細(xì)描述中的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲(chǔ)在計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)上,其可以 是任何可存儲(chǔ)用于計(jì)算機(jī)系統(tǒng)使用的代碼和/或數(shù)據(jù)的設(shè)備或介質(zhì)。這包括但不限于 易失性存儲(chǔ)器、非易失性存儲(chǔ)器、磁和光存儲(chǔ)設(shè)備例如磁盤驅(qū)動(dòng)器、磁帶、CD (壓縮光盤)、 DVD(數(shù)字多功能光盤或數(shù)字視頻光盤)或其它的可以存儲(chǔ)已知或未來(lái)開(kāi)發(fā)的計(jì)算機(jī)可讀 介質(zhì)的介質(zhì)。 在具體描述部分所描述的方法和過(guò)程可以實(shí)現(xiàn)為代碼和/或數(shù)據(jù),其可以存儲(chǔ)在 上述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。當(dāng)計(jì)算機(jī)系統(tǒng)讀取和執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的代 碼和/或數(shù)據(jù)時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行實(shí)現(xiàn)為存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)的數(shù)據(jù)結(jié)構(gòu)和代 碼的方法和過(guò)程。 此外,下文描述的方法和過(guò)程可以包括在硬件模塊中。例如,硬件模塊可以包括但 不限于專用集成電路(ASIC)芯片、現(xiàn)場(chǎng)可編程門陣列(FPGA)以及目前已知的或以后開(kāi)發(fā) 的其他可編程邏輯設(shè)備。當(dāng)硬件模塊被激活時(shí),硬件模塊執(zhí)行包括在此硬件模塊內(nèi)的方法 和過(guò)程。 前面已經(jīng)提出的關(guān)于本發(fā)明的實(shí)施方式的描述僅出于說(shuō)明和描述的目的。其并非 意在于窮盡或者將本發(fā)明限制在所公開(kāi)的形式。因此,許多修改和變化對(duì)本領(lǐng)域技術(shù)人員 來(lái)說(shuō)是顯而易見(jiàn)的。此外,上述公開(kāi)的內(nèi)容并不試圖限制本發(fā)明。本發(fā)明的范圍由附加的 權(quán)利要求來(lái)限定。
權(quán)利要求
一種用于分配計(jì)算中心中資源的方法,其中所述計(jì)算中心的資源使用作業(yè)槽的集合來(lái)表示,并且其中所述作業(yè)槽的集合由排隊(duì)系統(tǒng)來(lái)管理,所述方法包括接收針對(duì)項(xiàng)目的資源需求信息,其中所述資源需求信息指示為了執(zhí)行與所述項(xiàng)目相關(guān)聯(lián)的作業(yè)而需要分配的作業(yè)槽的第一數(shù)量;確定已經(jīng)分配給與所述項(xiàng)目相關(guān)聯(lián)的作業(yè)的作業(yè)槽的第二數(shù)量;以及響應(yīng)于確定所述作業(yè)槽的第二數(shù)量小于所述作業(yè)槽的第一數(shù)量、并且沒(méi)有作業(yè)槽可用于執(zhí)行與所述項(xiàng)目相關(guān)聯(lián)的第一作業(yè),通過(guò)以下動(dòng)作來(lái)執(zhí)行所述第一作業(yè)標(biāo)識(shí)當(dāng)前分配給正在執(zhí)行的作業(yè)的低優(yōu)先級(jí)作業(yè)槽;在所述低優(yōu)先級(jí)作業(yè)槽中調(diào)度所述第一作業(yè);以及解分配所述正在執(zhí)行的作業(yè)。
2. 根據(jù)權(quán)利要求1所述的方法,其中基于所述正在執(zhí)行的作業(yè)已經(jīng)執(zhí)行的時(shí)間來(lái)標(biāo)識(shí) 所述低優(yōu)先級(jí)作業(yè)槽。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述資源需求信息指定所述第一數(shù)量的作業(yè)槽將 被用來(lái)支持第一用戶執(zhí)行所述項(xiàng)目的第一步驟。
4. 根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括 接收所述第一作業(yè);以及通過(guò)以下步驟來(lái)確定所述資源需求信息是否應(yīng)用于所述第一作業(yè) 確定所述第一作業(yè)是否與所述項(xiàng)目的所述第一步驟相關(guān)聯(lián);以及 確定所述第一作業(yè)是否已經(jīng)由所述第一用戶提交。
5. 根據(jù)權(quán)利要求1所述的方法,其中解分配所述正在執(zhí)行的作業(yè)包括指示所述排隊(duì) 系統(tǒng)停止并且重排隊(duì)所述正在執(zhí)行的作業(yè)。
6. 根據(jù)權(quán)利要求1所述的方法,其中解分配所述正在執(zhí)行的作業(yè)包括指示所述排隊(duì) 系統(tǒng)掛起所述正在執(zhí)行的作業(yè)。
7. —種用于分配計(jì)算中心中資源的設(shè)備,其中所述計(jì)算中心的資源由作業(yè)槽的集合來(lái) 表示,并且其中所述作業(yè)槽的集合由排隊(duì)系統(tǒng)來(lái)管理,所述設(shè)備包括第一接收裝置,用于接收針對(duì)項(xiàng)目的資源需求信息,其中所述資源需求信息指示為了 執(zhí)行與所述項(xiàng)目相關(guān)聯(lián)的作業(yè)而需要分配的作業(yè)槽的第一數(shù)量;第一確定裝置,用于確定已經(jīng)分配給與所述項(xiàng)目相關(guān)聯(lián)的作業(yè)的作業(yè)槽的第二數(shù)量;以及執(zhí)行裝置,用于響應(yīng)于確定所述作業(yè)槽的第二數(shù)量小于所述作業(yè)槽的第一數(shù)量、并且 沒(méi)有作業(yè)槽可用于執(zhí)行與所述項(xiàng)目相關(guān)聯(lián)的第一作業(yè),來(lái)執(zhí)行所述第一作業(yè),所述執(zhí)行裝 置包括標(biāo)識(shí)裝置,用于標(biāo)識(shí)當(dāng)前分配給正在執(zhí)行的作業(yè)的低優(yōu)先級(jí)作業(yè)槽; 調(diào)度裝置,用于在所述低優(yōu)先級(jí)作業(yè)槽中調(diào)度所述第一作業(yè);以及 解分配裝置,用于解分配所述正在執(zhí)行的作業(yè)。
8. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述標(biāo)識(shí)裝置進(jìn)一步用于基于所述正在執(zhí)行的 作業(yè)已經(jīng)執(zhí)行的時(shí)間來(lái)標(biāo)識(shí)所述低優(yōu)先級(jí)作業(yè)槽。
9. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述資源需求信息指定所述第一數(shù)量的作業(yè)槽將 被用來(lái)支持第一用戶執(zhí)行所述項(xiàng)目的第一步驟。
10. 根據(jù)權(quán)利要求9所述的設(shè)備,進(jìn)一步包括 第二接收裝置,用于接收所述第一作業(yè);以及第二確定裝置,用于確定所述資源需求信息是否應(yīng)用于所述第一作業(yè),所述第二確定 裝置包括用于確定所述第一作業(yè)是否與所述項(xiàng)目的所述第一步驟相關(guān)聯(lián)的裝置;以及 用于確定所述第一作業(yè)是否已經(jīng)由所述第一用戶提交的裝置。
11. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述解分配裝置包括 用于指示所述排隊(duì)系統(tǒng)停止并且重排隊(duì)所述正在執(zhí)行的作業(yè)的裝置。
12. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述解分配裝置包括 用于指示所述排隊(duì)系統(tǒng)掛起所述正在執(zhí)行的作業(yè)的裝置。
13. —種用于分配計(jì)算中心中資源的方法,其中所述計(jì)算中心的資源使用作業(yè)槽的集 合來(lái)表示,其中每個(gè)作業(yè)槽表示標(biāo)準(zhǔn)資源量,并且其中所述作業(yè)槽的集合由排隊(duì)系統(tǒng)來(lái)管 理,所述方法包括將第一作業(yè)槽分配給資源密集型作業(yè),其中預(yù)計(jì)所述資源密集型作業(yè)將使用多于所 述標(biāo)準(zhǔn)資源量的大量資源,其中所述第一作業(yè)槽與所述計(jì)算中心中的第一計(jì)算機(jī)系統(tǒng)相關(guān) 聯(lián),并且其中,如果所述排隊(duì)系統(tǒng)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度另一資源密集型作業(yè),所述 第一計(jì)算機(jī)系統(tǒng)的性能將會(huì)嚴(yán)重惡化;以及將第二作業(yè)槽分配給鵬元作業(yè),其中所述第二作業(yè)槽與所述計(jì)算中心中的所述第一計(jì) 算機(jī)系統(tǒng)相關(guān)聯(lián),并且其中,將所述第二作業(yè)槽分配給所述鵬元作業(yè)防止了所述排隊(duì)系統(tǒng) 在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度另一資源密集型作業(yè)。
14. 根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括 接收所述資源密集型作業(yè);以及響應(yīng)于確定所述資源密集型作業(yè)預(yù)計(jì)使用所述大量資源,執(zhí)行以下步驟 創(chuàng)建所述鵬元作業(yè),其中所述鵬元作業(yè)指定所述鵬元作業(yè)將要在所述計(jì)算中心中的所 述第一計(jì)算機(jī)系統(tǒng)上調(diào)度,以及將所述鵬元作業(yè)提交到所述排隊(duì)系統(tǒng)。
15. 根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括接收輕型作業(yè),其中所述輕型作業(yè)預(yù)計(jì)使用小于所述標(biāo)準(zhǔn)資源量的少量資源,并且其 中,如果所述排隊(duì)系統(tǒng)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度所述輕型作業(yè),所述第一計(jì)算機(jī)系統(tǒng) 的性能不會(huì)嚴(yán)重惡化;以及在所述第二作業(yè)槽上執(zhí)行所述輕型作業(yè),從而在不惡化所述第一計(jì)算機(jī)系統(tǒng)的性能的 情況下改進(jìn)所述第一計(jì)算機(jī)系統(tǒng)的利用率。
16. 根據(jù)權(quán)利要求13所述的方法,其中所述標(biāo)準(zhǔn)資源量包括標(biāo)準(zhǔn)存儲(chǔ)量,其中所述大 量資源包括大于所述標(biāo)準(zhǔn)存儲(chǔ)數(shù)量的存儲(chǔ)量,并且其中,預(yù)計(jì)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào) 度多個(gè)資源密集型作業(yè)將導(dǎo)致顛簸,從而嚴(yán)重惡化所述第一計(jì)算機(jī)系統(tǒng)的性能。
17. —種用于分配計(jì)算中心中資源的設(shè)備,其中所述計(jì)算中心的資源使用作業(yè)槽的集 合來(lái)表示,其中每個(gè)作業(yè)槽表示標(biāo)準(zhǔn)資源量,并且其中所述作業(yè)槽的集合由排隊(duì)系統(tǒng)來(lái)管 理,所述設(shè)備包括第一分配裝置,用于將第一作業(yè)槽分配給資源密集型作業(yè),其中預(yù)計(jì)所述資源密集型作業(yè)使用多于所述標(biāo)準(zhǔn)資源量的大量資源,其中所述第一作業(yè)槽與所述計(jì)算中心中的第一 計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián),并且其中,如果所述排隊(duì)系統(tǒng)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度另一資源 密集型作業(yè),所述第一計(jì)算機(jī)系統(tǒng)的性能將會(huì)嚴(yán)重惡化;以及第二分配裝置,用于將第二作業(yè)槽分配給鵬元作業(yè),其中所述第二作業(yè)槽與所述計(jì)算 中心中的所述第一計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián),并且其中,將所述第二作業(yè)槽分配給所述鵬元作業(yè) 防止了所述排隊(duì)系統(tǒng)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度另一資源密集型作業(yè)。
18. 根據(jù)權(quán)利要求17所述的設(shè)備,進(jìn)一步包括 第一接收裝置,用于接收所述資源密集型作業(yè);以及啞元處理裝置,用于響應(yīng)于確定所述資源密集型作業(yè)預(yù)計(jì)使用所述大量資源,而 創(chuàng)建所述鵬元作業(yè),其中所述鵬元作業(yè)指定所述鵬元作業(yè)將要在所述計(jì)算中心中的所 述第一計(jì)算機(jī)系統(tǒng)上調(diào)度,以及將所述鵬元作業(yè)提交到所述排隊(duì)系統(tǒng)。
19. 根據(jù)權(quán)利要求17所述的設(shè)備,進(jìn)一步包括第二接收裝置,用于接收輕型作業(yè),其中所述輕型作業(yè)預(yù)計(jì)使用小于所述標(biāo)準(zhǔn)資源量 的少量資源,并且其中,如果所述排隊(duì)系統(tǒng)在所述第一計(jì)算機(jī)系統(tǒng)上調(diào)度所述輕型作業(yè),所 述第一計(jì)算機(jī)系統(tǒng)的性能不會(huì)嚴(yán)重惡化;以及執(zhí)行裝置,用于在所述第二作業(yè)槽上執(zhí)行所述輕型作業(yè),從而在不惡化所述第一計(jì)算 機(jī)系統(tǒng)的性能的情況下改進(jìn)所述第一計(jì)算機(jī)系統(tǒng)的利用率。
20. 根據(jù)權(quán)利要求17所述的設(shè)備,其中所述標(biāo)準(zhǔn)資源量包括標(biāo)準(zhǔn)存儲(chǔ)量,其中所述大 量資源包括大于所述標(biāo)準(zhǔn)存儲(chǔ)數(shù)量的存儲(chǔ)量,并且其中,預(yù)計(jì)在第一計(jì)算機(jī)系統(tǒng)上調(diào)度多 個(gè)資源密集型作業(yè)將導(dǎo)致顛簸,從而嚴(yán)重地惡化所述第一計(jì)算機(jī)系統(tǒng)的性能。
全文摘要
本申請(qǐng)涉及用于分配計(jì)算中心中資源的方法和裝置。具體地,公開(kāi)了一種用于分配計(jì)算中心中資源的系統(tǒng)。操作過(guò)程中,該系統(tǒng)可以接收針對(duì)項(xiàng)目的資源需求信息。接下來(lái),該系統(tǒng)可以接收在計(jì)算中心中執(zhí)行新作業(yè)的請(qǐng)求。響應(yīng)于確定沒(méi)有作業(yè)槽可用于執(zhí)行新作業(yè)、并且與該新作業(yè)相關(guān)聯(lián)的項(xiàng)目還沒(méi)有用盡為其分配的作業(yè)槽,該系統(tǒng)可以掛起或重排隊(duì)當(dāng)前正在執(zhí)行的作業(yè),并且將釋放的作業(yè)槽分配給新作業(yè),從而執(zhí)行新作業(yè)。如果系統(tǒng)接收到資源密集型作業(yè),系統(tǒng)可以創(chuàng)建啞元作業(yè),并且在資源密集型作業(yè)的同一計(jì)算機(jī)系統(tǒng)上調(diào)度該啞元作業(yè),以防止調(diào)度程序在同一計(jì)算機(jī)系統(tǒng)上調(diào)度多個(gè)資源密集型作業(yè)。
文檔編號(hào)G06F9/50GK101727357SQ200910207630
公開(kāi)日2010年6月9日 申請(qǐng)日期2009年10月28日 優(yōu)先權(quán)日2008年10月31日
發(fā)明者J·R·明卡雷利 申請(qǐng)人:新思科技有限公司