專利名稱:并行處理期間資源分配的校準(zhǔn)的制作方法
技術(shù)領(lǐng)域:
本說明書涉及并行處理期間的資源分配。
背景技術(shù):
已知計算領(lǐng)域中的許多場景(scenarios)受益于并行處理。一般說來,這樣的并 行處理可以指代使用兩個或更多個在其它方面分立的(otherwise-s印arate)計算資源以 同時或重疊的方式執(zhí)行單個任務(wù)或計算。這樣的并行處理的一個例子可能發(fā)生在數(shù)據(jù)庫搜 索/訪問領(lǐng)域,在該領(lǐng)域中使用兩個或更多個計算資源(例如,兩個服務(wù)器、處理器或核) 來執(zhí)行大型數(shù)據(jù)庫的單個查詢,以便比僅用單個計算資源所能夠達到的速度更快地提供查 詢結(jié)果??赡苁芤嬗诓⑿刑幚淼念I(lǐng)域的許多例子中另一個是云計算(cloudcomputing)。云 計算一般指的是將計算/處理能力作為公用設(shè)施來提供,并且按需滿足用戶(多個用戶) 的計算需求,包括依照用戶的需要增加、減少或者以其他方式改變用戶的計算能力(從而 增加、減少或者以其他方式改變提供這些計算能力的相關(guān)成本)。例如,用戶可以使用一般 的通用計算設(shè)備來通過網(wǎng)絡(luò)訪問提供商的計算資源,從而使提供商可以對所提供的計算資 源進行控制。為了實現(xiàn)這些場景,提供商可以部署必要的硬件和軟件,這些硬件和軟件被認(rèn)為 是向提供商的消費者群體(customer base)提供服務(wù)必不可少的。也就是說,這樣的提供 商會對將訪問提供商的硬件/軟件資源的用戶數(shù)量具有某種期望或預(yù)測,并且對這些用戶 將消費資源的規(guī)模也有所期望/預(yù)測(例如,可能有些用戶要求的任務(wù)的數(shù)據(jù)密集性遠(yuǎn)高 于其它用戶)。于是,為了提高成本效率,提供商一般會試圖優(yōu)化可用資源,包括使用最少的 必要資源來滿足提供商的消費者群體的當(dāng)前計算需求。并行處理允許這種場景下的提供商通過例如將并行執(zhí)行的資源分配給特定用戶 和/或用于特定計算任務(wù)來進行這樣的優(yōu)化。通過這樣的方式,特定用戶可以在期望時間 段內(nèi)得到訪問大量計算資源的效果(例如,快速的處理速度),而不會產(chǎn)生與實際購買、安 裝以及管理相關(guān)硬件和軟件關(guān)聯(lián)的所有成本。但是,這樣的并行處理的實施難以以有效或最優(yōu)的方式實現(xiàn)。例如,可能存在與將 (多個用戶的)多個任務(wù)劃分/分配給多個可用處理資源相關(guān)聯(lián)的開銷成本、以及與重新結(jié) 合或合并任務(wù)處理結(jié)果相關(guān)聯(lián)的成本。例如,取決于所討論的任務(wù)的特性以及并行化的程 度,可能使添加的處理資源的利用率降低,并且這些開銷成本可能限制、并可能最終支配或 者淹沒并行化的好處。這種使用超出最優(yōu)數(shù)目或數(shù)量的處理資源的場景可以被稱為過度并 行化(over-parallelization)。相反,為給定任務(wù)/用戶分配過少的處理資源的情況也可 能發(fā)生,這可以被稱為低度并行化(under-parallelization),低度并行化可能導(dǎo)致無謂的 較慢的總處理時間以及相應(yīng)的用戶滿意度下降。而且,一個或多個正在運行的任務(wù)的運行時環(huán)境的復(fù)雜度和不可預(yù)測性可能使多 核并行查詢處理的難度加劇。例如,即使在運行時之前制定了用于并行處理的可接受的計劃,也可能出現(xiàn)使所計劃的并行化的有效性或合意性降低的運行時事件。因此,并行處理的 有效實施是一項艱巨的挑戰(zhàn),次優(yōu)的實施方式可能限制計算資源的有效性以及用戶的生產(chǎn)率/滿意度。
發(fā)明內(nèi)容
根據(jù)一個一般方面,一種系統(tǒng)包括記錄于計算機可讀介質(zhì)上的指令。該系統(tǒng)可以 包括抽樣器,其被配置為在任務(wù)由并行操作的第一數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí) 行的任務(wù)的第一性能量度,并且被配置為在該任務(wù)由并行操作的第二數(shù)量的節(jié)點執(zhí)行的同 時確定該正在執(zhí)行的任務(wù)的第二性能量度;以及校準(zhǔn)器,其被配置為基于第一性能量度和 第二性能量度,相對于節(jié)點數(shù)量的變化,計算開銷因子,該開銷因子表征利用并行執(zhí)行的節(jié) 點執(zhí)行所述任務(wù)的并行化開銷的變化,并且該校準(zhǔn)器被配置為基于該開銷因子來確定并行 操作以繼續(xù)執(zhí)行所述任務(wù)的節(jié)點的最優(yōu)數(shù)量。實施方式可以包括一個或多個下列特征。例如,所述任務(wù)可以包括軟件應(yīng)用的任 務(wù),并且第一性能量度和第二性能量度可以分別包括使用第一數(shù)量的節(jié)點和第二數(shù)量的節(jié) 點處理該軟件應(yīng)用的固定數(shù)據(jù)量所用的逝去時間的量度。所述抽樣器可以包括調(diào)整管理器,其被配置為在確定了第一性能量度之后確定并 執(zhí)行從第一節(jié)點數(shù)量調(diào)整為第二節(jié)點數(shù)量,包括確定固定節(jié)點數(shù)量以及確定將第一節(jié)點數(shù) 量增加還是減少該固定節(jié)點數(shù)量以得到第二節(jié)點數(shù)量。所述調(diào)整管理器可以被配置為基于 第一性能量度與前一性能量度之間的差來確定增加還是減少第一節(jié)點數(shù)量。所述校準(zhǔn)器可以被配置為基于第一性能量度和第二性能量度確定第一開銷因 子;在任務(wù)正在由并行操作的第三數(shù)量的節(jié)點執(zhí)行的同時,接收至少該正在執(zhí)行的任務(wù)的 第三性能量度;使用第三性能量度和至少一個其它的性能量度確定第二開銷因子;以及確 定第一開銷因子和第二開銷因子的平均值作為所述開銷因子。所述校準(zhǔn)器可以被配置為計算所述開銷因子,使其表征衰減函數(shù)f(n) = (1/ η)+0(η)中的開銷函數(shù)0(n),其中,η表示節(jié)點數(shù)量,并且其中,該衰減函數(shù)表征了利用并 行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的變化。所述開銷函數(shù)Ο(η)可以被表示為αη, 并且所述校準(zhǔn)器可以被配置為計算開銷因子,該開銷因子包括α項,以表示利用并行執(zhí)行 的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的線性變化速率。所述校準(zhǔn)器可以被配置為根據(jù)公式 f (Nsecond) -f (Nfirst) = (Psecond-Pfirst) /T,通過將利用第一節(jié)點數(shù)量和第二節(jié)點數(shù)量求值的衰 減函數(shù)與第一性能和第二性能之間的性能變化進行比較,來確定包括α項的開銷因子,在 公式中Pfiret和Pserand分別表示第一性能量度和第二性能量度,T表示使用單個節(jié)點執(zhí)行的 時間。最優(yōu)節(jié)點數(shù)量的確定可以表示當(dāng)前抽樣然后校準(zhǔn)操作的結(jié)束,并且所述系統(tǒng)還可 以包括校準(zhǔn)持續(xù)時間控制器,其被配置為控制當(dāng)前抽樣然后校準(zhǔn)操作與后續(xù)抽樣然后校準(zhǔn) 操作之間的時間間隔。所述校準(zhǔn)持續(xù)時間控制器可以被配置為,基于當(dāng)前抽樣然后校準(zhǔn)操 作的最優(yōu)節(jié)點數(shù)量和至少一個先前抽樣然后校準(zhǔn)操作的至少一個先前確定的最優(yōu)節(jié)點數(shù) 量中的變化,來確定所述時間間隔。所述校準(zhǔn)持續(xù)時間控制器可以被配置為,基于當(dāng)前抽樣 然后校準(zhǔn)操作與前一抽樣然后校準(zhǔn)操作之間的前一時間間隔來確定所述時間間隔。所述校準(zhǔn)器可以被配置為指令資源調(diào)度器分配所述最優(yōu)數(shù)量的節(jié)點以供利用其執(zhí)行所述任務(wù)。根據(jù)另一個一般方面,提供一種計算機實現(xiàn)的方法。可以在任務(wù)由并行操作的第 一數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第一性能量度。可以在該任務(wù)由并行操 作的第二數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第二性能量度??梢曰诘谝恍?能量度和第二性能量度、相對于節(jié)點數(shù)量的變化來計算開銷因子,該開銷因子表征利用并 行執(zhí)行的節(jié)點來執(zhí)行該任務(wù)的并行化開銷的變化。然后,可以基于該開銷因子來確定將并 行操作以繼續(xù)執(zhí)行該任務(wù)的節(jié)點的最優(yōu)數(shù)量。實施方式可以包括一個或多個下列特征。例如確定第一性能量度可以包括在 確定了第一性能量度之后執(zhí)行從第一節(jié)點數(shù)量調(diào)整為第二節(jié)點數(shù)量,包括確定固定節(jié)點數(shù) 量以及確定將第一節(jié)點數(shù)量增加還是減少該固定節(jié)點數(shù)量以得到第二節(jié)點數(shù)量。計算開 銷因子可以包括將所述開銷因子計算為表征衰減函數(shù)f (η) = (1/η)+0(η)中的開銷函數(shù) Ο(η),其中,η表示節(jié)點數(shù)量,并且其中,該衰減函數(shù)表征利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù) 的并行化開銷的變化。所述最優(yōu)節(jié)點數(shù)量的確定可以與當(dāng)前抽樣然后校準(zhǔn)操作的結(jié)束相關(guān)聯(lián)。然后,可 以基于當(dāng)前抽樣然后校準(zhǔn)操作的最優(yōu)節(jié)點數(shù)量和至少一個先前抽樣然后校準(zhǔn)操作的至少 一個先前確定的最優(yōu)節(jié)點數(shù)量中的變化,并且基于當(dāng)前抽樣然后校準(zhǔn)操作與最新近的先前 抽樣然后校準(zhǔn)操作之間的先前時間間隔,來控制當(dāng)前抽樣然后校準(zhǔn)操作與后續(xù)抽樣然后校 準(zhǔn)操作之間的時間間隔。根據(jù)另一個一般方面,一種計算機程序產(chǎn)品可以被有形地具體實施在計算機可讀 介質(zhì)上,并且可以包括指令,所述指令在被執(zhí)行時被配置為在任務(wù)由并行操作的第一數(shù)量 的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第一性能量度;在任務(wù)由并行操作的第二數(shù)量 的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第二性能量度;基于第一性能量度和第二性能 量度、相對于節(jié)點數(shù)量的變化來計算開銷因子,該開銷因子表征利用并行執(zhí)行的節(jié)點來執(zhí) 行任務(wù)的并行化開銷的變化;以及基于該開銷因子確定將并行操作以繼續(xù)執(zhí)行該任務(wù)的節(jié) 點的最優(yōu)數(shù)量。實施方式可以包括一個或多個下列特征。例如,所述開銷因子可以表征衰減函數(shù) f(n) = (1/η)+0(η)中的開銷函數(shù)0 (η),其中,η表示節(jié)點數(shù)量,并且其中,該衰減函數(shù)表征 了利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的變化。所述開銷函數(shù)Ο(η)可以表示 為α η,并且所述開銷因子可以被計算為包括項α,以表示利用并行執(zhí)行的節(jié)點執(zhí)行所述 任務(wù)的并行化開銷的線性變化速率。所述最優(yōu)節(jié)點數(shù)量的確定可以與當(dāng)前抽樣然后校準(zhǔn)操作的結(jié)束相關(guān)聯(lián),并且可以 基于當(dāng)前抽樣然后校準(zhǔn)操作的最優(yōu)節(jié)點數(shù)量不同于先前抽樣然后校準(zhǔn)操作的先前確定的 最優(yōu)節(jié)點數(shù)量的程度,來確定當(dāng)前抽樣然后校準(zhǔn)操作與后續(xù)抽樣然后校準(zhǔn)操作之間的時間 間隔。一個或多個實施方式的細(xì)節(jié)將在附圖和下面的描述中進行闡述。從說明書和附圖 以及權(quán)利要求書中其它特征將變得清楚。
圖1是用于對并行處理的資源分配進行校準(zhǔn)的系統(tǒng)的框圖。
圖2A是示出抽樣時間與對應(yīng)的節(jié)點數(shù)量的關(guān)系的圖。圖2B是示出逝去的處理時間相對于節(jié)點數(shù)量的圖。圖2C是示出并行開銷相對于節(jié)點數(shù)量的圖。圖3是示出圖1的系統(tǒng)的示例操作的流程圖。圖4是示出圖1的系統(tǒng)的示例實施方式的流程圖。圖5是圖1的系統(tǒng)的實施方式的框圖。圖6是示出用于執(zhí)行圖1和圖5的系統(tǒng)的示例操作的流程圖。
具體實施例方式圖1是在并行處理期間用于對資源分配進行校準(zhǔn)的系統(tǒng)100的框圖。在圖1的例 子中,自適應(yīng)資源控制器102被配置為向資源調(diào)度器104提供指令,由此指令資源調(diào)度器 104在包括任務(wù)108和任務(wù)110在內(nèi)的多個任務(wù)中和所述多個任務(wù)之間分配邏輯資源106。 更加具體來說,自適應(yīng)資源控制器102可以被配置為確保適當(dāng)數(shù)量的邏輯資源106被分配 用于執(zhí)行任務(wù)108、110中的每一個,以便使任務(wù)108、110的執(zhí)行可以以最優(yōu)方式或者其它 期望的方式進行。在圖1的例子中,邏輯資源106可以被理解為表示例如幾乎任何分立的和/或獨 立的計算資源,這些計算資源可以被配置為彼此并行操作以便執(zhí)行任務(wù)108、110中的一個 或全部。例如,邏輯資源106可以包括多個節(jié)點或節(jié)點池(pool),所述節(jié)點可以表示基于硬 件和/或軟件的服務(wù)器、各個處理器、處理核或者可以被配置為與對應(yīng)的組件、設(shè)備或資源 并行操作的任何其它計算組件、設(shè)備或資源。例如,術(shù)語“核”應(yīng)當(dāng)被理解為指代或包括任 何多計算平臺(multi-computing platform),在該多計算平臺中可獲得多個處理器、中央 處理單元(CPU)或其它處理資源,所述多計算平臺包括網(wǎng)絡(luò)/設(shè)備群。在特定例子中,如上 所述,已知并行查詢處理是用于改進現(xiàn)有SMP/CMP (對稱多處理/芯片級多處理)服務(wù)器的 數(shù)據(jù)庫性能、特別是改進能夠有效處理大量數(shù)據(jù)和復(fù)雜查詢的高性能數(shù)據(jù)庫系統(tǒng)的性能一 個選擇。因此,在本說明書中,應(yīng)當(dāng)理解,邏輯資源106表示在可獲得多種處理選擇的任何 環(huán)境中的處理能力(多個)單元。為了簡便和一致,所有這些資源在這里都被稱為“節(jié)點”, 但是應(yīng)當(dāng)理解,所說的節(jié)點可能實際上表示上述例子中的任何一個或多個,或者可以被配 置為執(zhí)行并行處理的計算資源的其它例子,正如本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚的那樣。相應(yīng)地,應(yīng)當(dāng)理解,任務(wù)108、110可以表示幾乎任何應(yīng)用、操作、查詢、請求、計算 或者可以被劃分成多執(zhí)行線程或處理線程的其它(多個)任務(wù)。例如,從上面的討論應(yīng)當(dāng) 理解,任務(wù)108、110可以表示針對數(shù)據(jù)庫應(yīng)用的查詢、或者可以表示對于作為云計算基礎(chǔ) 設(shè)施的一部分而提供的計算資源的請求。當(dāng)然,這些例子是非限制性的,還存在任務(wù)108、 110的許多其它例子。例如,任務(wù)108、110可以表示對待執(zhí)行的特定計算的請求,或者可以 表示對動態(tài)組裝和提供網(wǎng)站的請求、或者對網(wǎng)站的特定操作或功能(例如,使用所述網(wǎng)站 完成金融交易)的請求。存在許多其它例子,其中的一些將在下面更加詳細(xì)地給出。在圖1的例子中,資源調(diào)度器104可以被理解為部分地表示可以用于執(zhí)行在任務(wù) 108,110中或在任務(wù)108、110之間分配邏輯資源106池內(nèi)的節(jié)點的標(biāo)準(zhǔn)組件或傳統(tǒng)組件。 對于傳統(tǒng)功能,這里不進行詳細(xì)描述。但是,可以理解,在圖1的系統(tǒng)100的特定執(zhí)行中可 能出現(xiàn)資源調(diào)度器104的新功能或特有功能,例如,有關(guān)于與自適應(yīng)資源控制器102和/或邏輯資源106的節(jié)點池的交互或者來自自適應(yīng)資源控制器102和/或邏輯資源106的節(jié)點 池的指令,因此這些在本說明書中會被詳細(xì)介紹。具體來說,如從上述討論中可以理解的那樣,使用諸如資源調(diào)度器104(或者類似 的組件或其組成部分)這樣的組件來分配特定數(shù)量的節(jié)點以并行執(zhí)行,由此試圖提高任務(wù) 的處理速度或效率,這是眾所周知的。但是,也正如上面所述,使用這些傳統(tǒng)組件可能難以 以最優(yōu)方式或其它期望的方式分配用于并行處理任務(wù)108、110的節(jié)點。例如,眾所周知,在開始執(zhí)行任務(wù)108之前分配規(guī)定數(shù)量的節(jié)點,例如,10個節(jié)點 以用于執(zhí)行任務(wù)108。這樣的分配可以例如基于可用資源進行和/或基于對任務(wù)108的需 求的估計進行。在已知的資源分配的可能方案的其它例子中,可以根據(jù)這樣的方法進行資 源分配在開始執(zhí)行任務(wù)之前,將最大數(shù)量的當(dāng)前可用資源分配給每個任務(wù)。在用于執(zhí)行任務(wù)的并行處理的這些技術(shù)以及幾乎所有已知技術(shù)中,存在與并行處 理相關(guān)聯(lián)的并行化開銷(parallelism overhead),其至少與這些相關(guān)將特定任務(wù)劃分成 多個執(zhí)行線程以及隨后在各個執(zhí)行線程完成時將任務(wù)結(jié)合成單個結(jié)果。例如,如果利用單 個節(jié)點來執(zhí)行任務(wù)108,那么就可以直接計算或者確定執(zhí)行特定任務(wù)或子任務(wù)所必需的時 間“T”。分配第二個節(jié)點以用于處理任務(wù)108在理論上將使所用的處理功耗加倍,并因此將 處理時間減少到一半(因子2)。實際中,上面提到的例如與將任務(wù)108劃分成兩個執(zhí)行線 程相關(guān)的成本以及與將這兩個執(zhí)行線程重新結(jié)合成單個結(jié)果相關(guān)的后續(xù)成本,將導(dǎo)致總處 理時間被減少的量少于一半(小于因子2)。更加一般的情況,任務(wù)或子任務(wù)可能是相互依賴的,因此例如必須判斷將哪些任 務(wù)/子任務(wù)分配給哪個節(jié)點。一般必須跟蹤和管理任務(wù)的劃分和隨后的合并,以便確保令 人滿意的結(jié)果。而且,取決于相關(guān)系統(tǒng)架構(gòu)(例如,節(jié)點速度、相關(guān)存儲器的大小和帶寬、輸 入/輸出速度、是否以如何使用高速緩存以及其它已知因素)和/或取決于任務(wù)的特性和 /或其處理,可能要有區(qū)別地進行這種并行操作的劃分/跟蹤/合并。圖2A示出并行化的效果、包括相關(guān)的并行化開銷成本的效果的圖例。如圖2A所 示,X軸示出將并行應(yīng)用于特定任務(wù)(諸如任務(wù)108)的處理的不斷增加的節(jié)點數(shù)量,而Y軸 示出與特定任務(wù)(或者其部分任務(wù)或子任務(wù))的執(zhí)行相關(guān)聯(lián)的逝去時間。如圖/曲線202 所示,最初節(jié)點的增加導(dǎo)致了用于任務(wù)的期望處理的總逝去時間的大幅下降。但是,正如剛 剛提到的那樣,每次添加一個新節(jié)點,除了其它可能的并行化開銷成本之外,都需要額外的 劃分、處理以及結(jié)合對應(yīng)的新的執(zhí)行線程。因此,隨著每個節(jié)點的添加,該并行化開銷成本 增加,直到某個點,并行化開銷成本淹沒了所討論任務(wù)的并行化帶來的好處。在該點,進一 步添加節(jié)點來并行執(zhí)行所討論的任務(wù)只會導(dǎo)致逝去時間的增加,也即,將導(dǎo)致執(zhí)行所討論 的任務(wù)的性能(performance)下降。在圖2A的例子中,圖202的最小值被示為位于例如50 個節(jié)點處。也就是說,50個節(jié)點表示實現(xiàn)最大/最優(yōu)并行化的點,之后與并行化開銷成本相 關(guān)聯(lián)的、所討論的任務(wù)的性能將變差。因此,圖2A的圖202可以用捕捉并表示上述結(jié)果的衰減函數(shù) (reductionfunction)來表示,在所述結(jié)果中,并行節(jié)點數(shù)量的增加帶來逝去處理時間的相 應(yīng)減少以及并行化開銷成本的遞增增長,這種情況隨著每個新節(jié)點的添加而繼續(xù),直到遞 增的并行化開銷成本累積并最終淹沒和消除了添加的節(jié)點的附加好處。下面在公式1中示 出了這樣的衰減函數(shù)的例子
f(n) = 1/η+0(η)公式 1在公式1的衰減函數(shù)中,可以理解的是,衰減函數(shù)f (η)本身指代例如逝去時間或 所討論任務(wù)的其它性能量度,諸如沿圖2Α的Y軸所示的。在所述例子中,相對于上面提到 的時間T來表示/歸一化所述衰減函數(shù),所述時間T是由單個節(jié)點執(zhí)行該任務(wù)所需的時間 (也即,對于 η = 1,f(l) = 1)。與此同時,第一項1/n從概念上表示反線性(reverse-linear)函數(shù),通過該函數(shù) 使逝去的處理時間隨著每個新的并行節(jié)點的添加而減少。函數(shù)O(n)表示并行化開銷成本, 該并行化開銷成本通常將導(dǎo)致與超過最優(yōu)節(jié)點數(shù)量之后每個新節(jié)點的添加相關(guān)聯(lián)的逝去 處理時間的相應(yīng)增加。那么可以理解的是,開銷函數(shù)O(n)可以有助于表征公式1的衰減函數(shù)的總體效 果。也就是說,如果開銷函數(shù)O(n)隨著每個新節(jié)點的添加而迅速增長,那么用于特定任務(wù) 的衰減函數(shù)就會相對快速地到達最優(yōu)節(jié)點數(shù)量,也即,將表示利用相對較小數(shù)量的節(jié)點的 最優(yōu)處理。相反,如果開銷函數(shù)O(n)隨著每個新節(jié)點的添加而緩慢增長,那么在到達最優(yōu) 或最大節(jié)點數(shù)量之前,會有相對較大數(shù)量的節(jié)點被應(yīng)用于所討論的任務(wù)的并行處理中。雖然可以基于上面的描述簡單理解公式1的衰減函數(shù)的一般特性和特征,但是還 應(yīng)當(dāng)理解,開銷函數(shù)O(n)依賴于許多不同的因素,因此可能難以通過任何有意義或有用的 方式來表示或表征。例如,開銷函數(shù)O(n)可能依賴于正在執(zhí)行的任務(wù)的特性或類型,或者 可能依賴于節(jié)點池106的每個節(jié)點的特性或特征。而且,開銷函數(shù)O(n)可能在特定任務(wù)的 執(zhí)行期間動態(tài)變化。例如,在圖1的例子中,任務(wù)110被示為包括第一子任務(wù)110A和第二 子任務(wù)110B。在這種情況下,第一子任務(wù)110A可能與第一開銷函數(shù)相關(guān)聯(lián),而第二子任務(wù) 110B可能與第二開銷函數(shù)相關(guān)聯(lián),其中第一和第二開銷函數(shù)可能是彼此完全不同的。下面 將詳細(xì)提供這樣的不同子任務(wù)的例子,但是應(yīng)當(dāng)理解的是,各種任務(wù)或子任務(wù)的執(zhí)行特征 中的這些差異會導(dǎo)致對每個子任務(wù)或者對整個任務(wù)的開銷函數(shù)0 (η)的表征更加困難。在圖1的系統(tǒng)100的例子中,自適應(yīng)資源控制器102可以被配置為為任務(wù)108、110 分配最優(yōu)數(shù)量的或其他期望數(shù)量的節(jié)點池106的節(jié)點,而無需對相關(guān)開銷函數(shù)的先驗知識 或表征,或者對并行化開銷成本的其它知識。而且,自適應(yīng)資源控制器102可以被配置為在 任務(wù)108、110中每一個的運行時或執(zhí)行期間動態(tài)地進行這種資源分配,并且因此能夠考慮 在任務(wù)108、110的執(zhí)行期間(例如,在任務(wù)110執(zhí)行期間在從第一子任務(wù)110Α變?yōu)榈诙?任務(wù)110Β期間)每一個任務(wù)的不同資源需求。因此,自適應(yīng)資源控制器102和系統(tǒng)100作為整體提供優(yōu)于它們的相應(yīng)傳統(tǒng)組件 或應(yīng)用的改進和優(yōu)點,諸如在上面的例子中所描述的那樣。例如,傳統(tǒng)上使用諸如資源調(diào)度 器104的組件將邏輯資源106的節(jié)點分配給任務(wù)108會包括,如上所述,在開始執(zhí)行任務(wù) 108之前,將固定數(shù)量或估計數(shù)量的節(jié)點分配給該任務(wù)。但是從上面的討論中可以看到,可 能很難以任何精確程度確定這樣的估計。而且,即使這樣的估計最初是精確的,也可能或者 很可能無法在特定任務(wù)(及其子任務(wù))的整體執(zhí)行期間保持精確。而且,從上面的討論中 將理解到,在任何特定任務(wù)的使用執(zhí)行之前將確切數(shù)量的可用節(jié)點分配給該任務(wù)可能是次 優(yōu)的,例如,依照上面公式1的衰減函數(shù),可能使該任務(wù)過度并行化或低度并行化。相反,圖1的自適應(yīng)資源控制器102被配置為在任務(wù)108、110中的每一個任務(wù)的 執(zhí)行期間,為每個任務(wù)動態(tài)地和集中地分配邏輯資源106的節(jié)點。更加具體來說,自適應(yīng)資源控制器102可以包括抽樣器112,抽樣器112被配置為監(jiān)控使用當(dāng)前數(shù)量的所分配節(jié)點的 特定任務(wù)(諸如任務(wù)108)的性能,并且還被配置為更改或調(diào)整當(dāng)前節(jié)點數(shù)量,并在之后繼 續(xù)監(jiān)控使用調(diào)整后數(shù)量的節(jié)點的任務(wù)108的性能。使用該性能信息,自適應(yīng)資源控制器102可以實現(xiàn)校準(zhǔn)器114,校準(zhǔn)器114從抽樣 器112接收性能信息的樣本,并確定相關(guān)開銷函數(shù)0(n)的當(dāng)前特性的表征。然后,基于相 關(guān)或當(dāng)前開銷函數(shù)O(n)的表征,校準(zhǔn)器114可以確定當(dāng)前的最優(yōu)節(jié)點數(shù)量(例如,當(dāng)前最 優(yōu)節(jié)點數(shù)量的近似)。因此,校準(zhǔn)器114可以指令資源調(diào)度器104執(zhí)行將所確定的最優(yōu)數(shù) 量的節(jié)點分配給所討論的任務(wù),例如,任務(wù)108。以此方式,可以基于任務(wù)108的當(dāng)前條件 (condition)以及邏輯資源106的節(jié)點來最優(yōu)化或者接近最優(yōu)化分配給任務(wù)108的節(jié)點數(shù) 量,而無需有關(guān)該任務(wù)的特定先驗知識或其它系統(tǒng)信息,也即無需有關(guān)開銷函數(shù)O(n)的先 驗知識。之后,任務(wù)108可以通過所確定的邏輯資源106的最優(yōu)數(shù)量的節(jié)點來繼續(xù)其并行 執(zhí)行。但是,正如從上面的討論可以理解到的,隨著時間的發(fā)展,可能出現(xiàn)先前所確定的節(jié) 點的最優(yōu)數(shù)量實際上不再是最優(yōu)的。例如,如所述的那樣,任務(wù)108(或其子任務(wù))的特性 可能隨著時間而變化,因此對應(yīng)的開銷函數(shù)以及相關(guān)聯(lián)的節(jié)點最優(yōu)數(shù)量也可能變化。因此,自適應(yīng)資源控制器102可以被配置為重復(fù)抽樣器112和校準(zhǔn)器114的上述 操作。也就是說,抽樣器112可以再次測量使用先前所確定的最優(yōu)數(shù)量節(jié)點的任務(wù)108的 當(dāng)前性能,并且之后可以將當(dāng)前節(jié)點數(shù)量調(diào)整為新的或第三節(jié)點數(shù)量,并且可以確定在這 些條件下任務(wù)108的性能。使用該信息,校準(zhǔn)器114可以得到更近或更新的開銷函數(shù)O(n) 的表征,并且基于該表征,可以確定新的或更新的節(jié)點最優(yōu)數(shù)量。之后,校準(zhǔn)器114可以再 次指令資源調(diào)度器104將新確定的最優(yōu)數(shù)量的節(jié)點分配用于任務(wù)108的執(zhí)行。從而,自適應(yīng)資源控制器102可以被配置為周期性地或以其它時間間隔對執(zhí)行 特定任務(wù)(諸如任務(wù)108)的當(dāng)前所分配的節(jié)點數(shù)量進行主動的(proactive)或搶先的 (preemptive)調(diào)整。這些對所分配節(jié)點的主動或搶先調(diào)整提供了表征當(dāng)前開銷函數(shù)0(n) 的信息,該信息反過來使自適應(yīng)資源控制器102能夠在每次發(fā)生主動或搶先節(jié)點調(diào)整(以 及相關(guān)計算)時更新當(dāng)前的節(jié)點最優(yōu)數(shù)量。因此,自適應(yīng)資源控制器102可以被認(rèn)為是在 并行處理任務(wù)108、110期間校準(zhǔn)相對于任務(wù)108、110的邏輯資源106的分配,并且周期性 地或者以其它時間間隔執(zhí)行這種校準(zhǔn)。可以理解的是,當(dāng)每一次這種校準(zhǔn)發(fā)生時,都可能造成相關(guān)的校準(zhǔn)成本。在如下情 況下最容易觀察到這樣的校準(zhǔn)成本任務(wù)108當(dāng)前利用最優(yōu)數(shù)量的節(jié)點執(zhí)行,并且在校準(zhǔn) 的時間間隔之間節(jié)點的最優(yōu)數(shù)量不發(fā)生變化。在這樣的情況中,雖然系統(tǒng)100的操作員不 知道,但是嘗試的校準(zhǔn)將是不必要的,因為正在使用的已經(jīng)是最優(yōu)數(shù)量的節(jié)點。在這樣的情 況下,自適應(yīng)資源控制器102將如上所述進行操作,以提供對節(jié)點的最優(yōu)數(shù)量的搶先調(diào)整, 并且執(zhí)行相關(guān)計算。這些調(diào)整和計算可能是不必要的,并且因此可能對任務(wù)108的總處理 時間有害,因此其代表了對用于執(zhí)行任務(wù)108的節(jié)點池106的資源的分配進行校準(zhǔn)的成本。 更一般地講,應(yīng)當(dāng)理解,自適應(yīng)資源控制器102的抽樣器112和校準(zhǔn)器114的幾乎任何操作 都可能造成至少一些最小的處理(或其它)成本,這種處理成本會對任務(wù)108的總處理時 間有害。為了最小化這種校準(zhǔn)成本的影響,自適應(yīng)資源控制器102可以包括校準(zhǔn)持續(xù)時間控制器116。如下面將更加詳細(xì)描述的,校準(zhǔn)持續(xù)時間控制器116可以被配置為調(diào)整自適應(yīng) 資源控制器102執(zhí)行與抽樣器112和校準(zhǔn)器114相關(guān)聯(lián)的校準(zhǔn)功能的時間間隔的長度。更加具體來說,校準(zhǔn)持續(xù)時間控制器116可以將當(dāng)前校準(zhǔn)結(jié)果與一個或多個先前 校準(zhǔn)結(jié)果的影響進行比較。如果這種比較的結(jié)果顯示事實上節(jié)點的最優(yōu)數(shù)量幾乎或者完全 不需要變化,那么校準(zhǔn)持續(xù)時間控制器116就可以增加直到自適應(yīng)資源控制器102的下一 次校準(zhǔn)操作的時間間隔。相反,如果校準(zhǔn)持續(xù)時間控制器116確定在一個或多個先前校準(zhǔn) 與當(dāng)前校準(zhǔn)之間節(jié)點最優(yōu)數(shù)量出現(xiàn)了相對較大的變化,那么校準(zhǔn)持續(xù)時間控制器116就可 以減小直到自適應(yīng)資源控制器102的下一次校準(zhǔn)操作發(fā)生的時間間隔。通過以這種方式動 態(tài)地調(diào)整校準(zhǔn)之間的時間間隔,校準(zhǔn)持續(xù)時間控制器116可以操作為將與自適應(yīng)資源控制 器102相關(guān)聯(lián)的校準(zhǔn)成本最小化。圖1提供了自適應(yīng)資源控制器102的抽樣器112和校準(zhǔn)器114的較為詳細(xì)的 特定實施方式的例子。具體來說,抽樣器112被示為包括與確定正在執(zhí)行的任務(wù)(諸如 任務(wù)108)的性能數(shù)據(jù)以及與更改或調(diào)整用于執(zhí)行所述任務(wù)的節(jié)點數(shù)量相關(guān)的子組件 (subcomponent),以便在正在使用新的或調(diào)整后的數(shù)量的節(jié)點執(zhí)行所述任務(wù)的同時收集性 能數(shù)據(jù)。因此,抽樣器112被示為包括數(shù)據(jù)收集器112A、性能計算器112B、性能高速緩存 112D和調(diào)整管理器112C。于是,如從上面的討論中可以基本上理解的是,數(shù)據(jù)收集器112A可以被配置為在 利用來自邏輯資源106內(nèi)的節(jié)點池的當(dāng)前數(shù)量的節(jié)點執(zhí)行例如正在運行的任務(wù)108的同 時,收集與正在運行的任務(wù)108的運行情況或執(zhí)行相關(guān)的性能數(shù)據(jù)。在圖1的例子中,正在 運行的任務(wù)108被示為正被用3個節(jié)點來執(zhí)行,這三個節(jié)點為來自邏輯資源106的節(jié)點池 106A. · · 106N的節(jié)點106A、節(jié)點106B和節(jié)點106C。從而,性能計算器112B可以被配置為接 收數(shù)據(jù)收集器112A收集的性能數(shù)據(jù),以及確定表征在數(shù)據(jù)收集時間期間任務(wù)108的性能的 量度。在本上下文中,術(shù)語“性能”一般可以指與執(zhí)行固定大小的數(shù)據(jù)處理過程相關(guān)聯(lián)的 時間消耗的特性。有許多測量和表征執(zhí)行硬件或軟件任務(wù)的性能的已知技術(shù),因此在這里 就不對這些例子進行詳細(xì)討論了。但是,舉例來說,可以理解,這種性能的表征可以根據(jù)與 特定任務(wù)或其子任務(wù)相關(guān)聯(lián)的逝去時間來進行,或者這種性能的表征可以與完成一項任務(wù) 所需要的CPU周期數(shù)量相關(guān)聯(lián),或者與預(yù)定義的時間量內(nèi)的數(shù)據(jù)吞吐量相關(guān)聯(lián)。應(yīng)當(dāng)理解, 也可以用其它的性能的表征來代替。在這點上,還可以理解的是,因為公式1的衰減函數(shù)表示相對于利用單個節(jié)點執(zhí) 行任務(wù)(如上所定義的那樣,被視為花費時間T)的、利用多個并行節(jié)點執(zhí)行任務(wù)的性能特 征,所以公式1的衰減函數(shù)也可以使用上述性能度量(metrics)/技術(shù)中的任意一種來表 達。而且,由于性能數(shù)據(jù)用這些性能度量/技術(shù)來表示并且被用于表征公式1的衰減函數(shù) 的各方面,如下面針對公式2所描述的那樣,所以可以理解的是,相同的度量/技術(shù)既可以 用來表達實際測得的性能數(shù)據(jù),也可以用來表達由公式1的衰減函數(shù)所表示的性能特征的 理論表示。一旦收集并表征了相關(guān)性能數(shù)據(jù),就可以在性能高速緩存112D內(nèi)記錄利用當(dāng)前 數(shù)量節(jié)點的當(dāng)前性能。然后,調(diào)整管理器112C可以被配置為將執(zhí)行任務(wù)108的節(jié)點的數(shù)量 從當(dāng)前數(shù)量調(diào)整為更大或更小的節(jié)點數(shù)量。下面將更加詳細(xì)地描述用于進行這些調(diào)整的技術(shù),但是一般來說,從上面的討論可以理解,這些調(diào)整可以(例如,被校準(zhǔn)器114)用于表征 與并行化任務(wù)108相關(guān)聯(lián)的并行化開銷成本,以便可以由此確定用于計算任務(wù)108的最優(yōu) 節(jié)點數(shù)量。具體來說,一旦進行了從當(dāng)前節(jié)點數(shù)量到新的節(jié)點數(shù)量或第二節(jié)點數(shù)量的校正, 那么數(shù)據(jù)收集器112A就可以重復(fù)對相關(guān)性能數(shù)據(jù)的收集,以便性能計算器112B也可以重 復(fù)其使用所收集的數(shù)據(jù)表征任務(wù)108的性能的計算。圖2B是示出抽樣器112及其子組件112A-112D的上述操作的例子的圖。具體來 說,圖2B示出了這樣的圖其中,X軸示出了抽樣(也即,數(shù)據(jù)收集)時間,而Y軸表示當(dāng)前 用于處理正在運行的任務(wù)(例如,正在運行的任務(wù)108)的節(jié)點數(shù)量。因此,抽樣點S1-S5 表示抽樣器112針對其組件112A-112D執(zhí)行上述抽樣操作的5個不同實例(instance)。具體來說,抽樣點Sl表示數(shù)據(jù)收集器112A收集數(shù)據(jù)的第一操作以及由性能計算 器112B執(zhí)行的后續(xù)性能計算。如圖所示,在抽樣時間Sl處的對應(yīng)數(shù)量的節(jié)點為近似10個 節(jié)點。隨后,可以由圖1的調(diào)整管理器112C向上調(diào)整節(jié)點數(shù)量,數(shù)據(jù)收集器112A和性能計 算器112B的操作可以在抽樣點S2再次重復(fù),并且最終在每個抽樣點并針對每個對應(yīng)的調(diào) 整后的節(jié)點數(shù)量再次重復(fù)。出于示例和解釋的目的,假定圖2B的圖對應(yīng)于圖2A的圖。也就是說,如圖所示, 圖2B假定用于并行執(zhí)行以執(zhí)行所討論任務(wù)的最優(yōu)數(shù)量的節(jié)點為近似50個節(jié)點。因此,如圖 2B的例子中所示,在抽樣點S3和S4之間,在抽樣器112A的抽樣操作期間該最優(yōu)節(jié)點數(shù)量 將被超過。在這樣的一個例子中,系統(tǒng)100的操作員可以通過觀察到與抽樣點S4相關(guān)的性 能數(shù)據(jù)相對于針對抽樣點S3計算的執(zhí)行數(shù)據(jù)有所下降,而得知已經(jīng)超過了最優(yōu)節(jié)點數(shù)量。如上所述并且下面將更加詳細(xì)描述的那樣,抽樣器112收集的抽樣性能數(shù)據(jù)接著 可以被傳遞到校準(zhǔn)器114。然后校準(zhǔn)器114可以著手基于例如來自抽樣器112的最近的抽 樣數(shù)據(jù),獲得與并行化任務(wù)108相關(guān)聯(lián)的并行化開銷成本的表征。接著,校準(zhǔn)器114可以使 用該并行化開銷成本的表征來計算用于執(zhí)行正在運行的任務(wù)的最優(yōu)節(jié)點數(shù)量,并由此提供 這樣的指令到資源調(diào)度器104,以便從邏輯資源106的節(jié)點池分配該最優(yōu)數(shù)量的節(jié)點。更加詳細(xì)來說,如上所述,校準(zhǔn)器114可以使用來自抽樣器112的抽樣數(shù)據(jù),來提 供上面公式1的衰減函數(shù)的開銷函數(shù)O(n)的表征。例如,如下所述,開銷函數(shù)O(n)可以 被表征為線性或單調(diào)增函數(shù)(例如,相對逝去時間而增加,或者換個方式,相對期望性能而 減少),該線性或單調(diào)增函數(shù)通過其相對于正在使用的節(jié)點數(shù)量的增加速率來表征。換句 話說,例如,開銷函數(shù)O(n)可以用(α*η)項來表示,其中α就表示與并行使用以執(zhí)行任務(wù) 108的節(jié)點的數(shù)量的相應(yīng)增加或減少相關(guān)聯(lián)的開銷成本的線性變化速率。因此,校準(zhǔn)器114可以包括開銷因子計算器114Α,其被配置為計算剛才所描述的 開銷因子a。于是,校準(zhǔn)器114也可以包括節(jié)點優(yōu)化器114B,該節(jié)點優(yōu)化器114B可以輸入 開銷因子α并據(jù)此確定最優(yōu)節(jié)點數(shù)量。如上所述,校準(zhǔn)器114從抽樣器112接收抽樣數(shù)據(jù),該抽樣數(shù)據(jù)表示在相應(yīng)的不同 節(jié)點數(shù)量的情況下執(zhí)行時間的差,例如與圖2Β的抽樣點S2處的節(jié)點數(shù)量相較于抽樣點Sl 處的節(jié)點數(shù)量相關(guān)聯(lián)的執(zhí)行時間(例如,逝去時間)差。換句話說,與抽樣點S2處的節(jié)點 數(shù)量相關(guān)聯(lián)的性能可以表示利用新的或調(diào)整后的數(shù)量的節(jié)點的性能,其被表示為Pnrat,同時 相應(yīng)地,先前的性能(性能高速緩存112D中高速緩存的性能),例如在抽樣點Sl處的性能, 可以表示為P。ld,表示與舊的或先前數(shù)量的節(jié)點相關(guān)聯(lián)的在抽樣點Sl處任務(wù)的性能。
如上面針對公式1所描述的那樣,公式1的衰減函數(shù)部分地表示通過添加并行執(zhí) 行的附加節(jié)點以用于執(zhí)行特定任務(wù)而使該任務(wù)的性能降低或提高的量或程度。換句話說, 如上所述,衰減函數(shù)f (η)當(dāng)η = 1時被視為等同于使用單個節(jié)點執(zhí)行任務(wù)的時間“Τ”。換 句話說,衰減函數(shù)可以被視為相對于因子T進行了規(guī)一化。因此,為了使用執(zhí)行時間Pnew和 Pold,也要相對因子T將所述2個計算的執(zhí)行時間之間的差進行規(guī)一化。因此,可以用公式2 來表示與分配用于正在執(zhí)行的任務(wù)的節(jié)點數(shù)量的變化相關(guān)的相應(yīng)的性能的變化fn (Nnew) -fn (Nold) = (Pnew-Pold) /T公式 2其中,使用對應(yīng)的不同節(jié)點數(shù)量的衰減函數(shù)的理論差等于抽樣器112的操作期間 觀察到的實際測得的性能差,例如,抽樣點S2的性能與抽樣點Sl的性能之間的差。于是, 通過輸入已知的和/或觀察到的公式2的各種參數(shù)的值,如上所述,當(dāng)假定開銷函數(shù)O(n) 用函數(shù)(an)表示或表征時,可以直接解出開銷因子α。換句話說,開銷因子計算器114Α可以被配置為執(zhí)行上述計算,并由此確定開銷因 子a。可以理解到,以上述方式使用在圖2B的抽樣點Sl和S2處收集到的數(shù)據(jù)得到開銷因 子a,允許節(jié)點優(yōu)化器114B隨著針對相關(guān)正在執(zhí)行的任務(wù)的并行執(zhí)行添加或移除更多的 節(jié)點,來估計或推斷并行化開銷的影響。在上述的例子中,開銷函數(shù)O(n)被表示為理想線性函數(shù)an,其中并行化開銷成 本隨著附加節(jié)點的添加以特定速率α線性增長,通過開銷計算器114A確定的開銷因子a 接著可以被插入到公式1的衰減函數(shù)中。然后,直接優(yōu)化公式1的衰減函數(shù)以得到優(yōu)化后 的節(jié)點數(shù)量n。p。一旦節(jié)點優(yōu)化器114B計算出最優(yōu)節(jié)點數(shù)量nop,自適應(yīng)資源控制器102就 可以指令資源調(diào)度器104相應(yīng)地從邏輯資源106的節(jié)點池分配最優(yōu)數(shù)量n。p的節(jié)點給所討 論的正在執(zhí)行的任務(wù),例如,任務(wù)108。例如,在圖1的特定例子中,可以將自適應(yīng)資源控制器102的上述操作應(yīng)用于使用 3個并行節(jié)點106A、106B、106C的正在執(zhí)行的任務(wù)108。例如,在自適應(yīng)資源控制器102的 操作期間,可以根據(jù)所收集的與調(diào)整相關(guān)聯(lián)的性能數(shù)據(jù)來更改或調(diào)整用于執(zhí)行任務(wù)108的 節(jié)點數(shù)量,以便可以得到對應(yīng)的開銷因子a,并且最終可以確定對應(yīng)的最優(yōu)節(jié)點數(shù)量n。p。在該例中,結(jié)果可能是,自適應(yīng)資源控制器102的這些操作可能指示最優(yōu)節(jié)點數(shù) 量實際上是當(dāng)前的節(jié)點數(shù)量,即3個節(jié)點。在這種情況下,任務(wù)108可以繼續(xù)利用3個節(jié)點 106A、106B、106C執(zhí)行,而校準(zhǔn)持續(xù)時間控制器116可以監(jiān)控自適應(yīng)資源控制器102的這些 操作并且確定僅需要對任務(wù)108的資源分配進行極微小的優(yōu)化(或不需要優(yōu)化)。因而, 校準(zhǔn)持續(xù)時間控制器116將確定與自適應(yīng)資源控制器102的操作相關(guān)聯(lián)的校準(zhǔn)成本實際 上是不必要的,并且因此可以增加直到自適應(yīng)資源控制器102的下一次重復(fù)操作的時間間 隔。相反,如果校準(zhǔn)持續(xù)時間控制器116發(fā)現(xiàn),自適應(yīng)資源控制器102的操作結(jié)果是執(zhí)行任 務(wù)108的節(jié)點數(shù)量發(fā)生較大變化,那么校準(zhǔn)持續(xù)時間控制器116就可以被配置為減少直到 自適應(yīng)資源控制器102的下一次迭代操作的時間間隔。通過這樣的方式,如上所述以及如 下面將詳細(xì)描述的那樣,校準(zhǔn)持續(xù)時間控制器116可以被配置為動態(tài)地并且精確地調(diào)整自 適應(yīng)資源控制器102嘗試優(yōu)化執(zhí)行特定任務(wù)的節(jié)點數(shù)量的頻率,并且由此可以有助于實現(xiàn) 執(zhí)行所討論任務(wù)的最優(yōu)化,同時使與這種最優(yōu)化相關(guān)聯(lián)的校準(zhǔn)成本最小化。通過這樣做,校準(zhǔn)持續(xù)時間控制器116克服了在為正在執(zhí)行的任務(wù)分配最優(yōu)數(shù)量 節(jié)點中的一個難題。例如,如上所述以及如下面將要詳細(xì)描述的那樣,可能出現(xiàn)這樣的情況特定任務(wù)包括大量子任務(wù),每個子任務(wù)可能與用于執(zhí)行任務(wù)的節(jié)點的不同最優(yōu)數(shù)量相 關(guān)聯(lián)。但是,可能難以預(yù)先知道在操作相應(yīng)總?cè)蝿?wù)期間實際上會需要執(zhí)行哪個子任務(wù),和/ 或可能難以精確估計與每個子任務(wù)的最優(yōu)執(zhí)行相關(guān)聯(lián)的節(jié)點數(shù)量。例如,在圖1中,任務(wù)110被示為包括子任務(wù)IlOA和第二子任務(wù)110B。如圖所示, 子任務(wù)IlOA可以表示相對較易于(amenable)并行化的子任務(wù),例如,其可以與較小或較慢 增長的開銷函數(shù)O(n)相關(guān)聯(lián)。相反,子任務(wù)IlOB可以與相對不那么易于并行化的任務(wù),也 即,其具有快速或急劇增長的開銷函數(shù)0 (η)。換句話說,在上面給出的開銷函數(shù)0 (η)被表 示為理想線性函數(shù)an的例子中,可以發(fā)現(xiàn),子任務(wù)IlOA具有相對較小的α值,而子任務(wù) IlOB具有相對較大的α值。因此,在任務(wù)110的處理過程期間,從子任務(wù)IlOA到子任務(wù) IlOB的轉(zhuǎn)變(transition)將伴隨有相關(guān)開銷函數(shù)以及相關(guān)并行化開銷成本的相應(yīng)改變。有利的是,可以發(fā)現(xiàn),自適應(yīng)資源控制器102可以用于在任務(wù)110的整個執(zhí)行過程 中進行節(jié)點分配,而無需對子任務(wù)110A、110B的特性或外延(extent)的先驗知識。例如, 自適應(yīng)資源控制器102既不需要有關(guān)子任務(wù)110A、110B特性的先驗知識,也不需要與執(zhí)行 子任務(wù)110A、110B相關(guān)聯(lián)的相關(guān)并行化開銷成本的先驗知識。而且,自適應(yīng)資源控制器102 可以在任務(wù)110的整個執(zhí)行過程中簡單地基于需要或基于所做的確定來操作,并且利用這 里所描述的操作,動態(tài)并且自適應(yīng)地確定分配給每個子任務(wù)110A、110B的最優(yōu)(或接近最 優(yōu))節(jié)點數(shù)量。例如,在子任務(wù)IlOA的執(zhí)行期間,自適應(yīng)資源控制器102可以執(zhí)行一次或多次確 定當(dāng)前最優(yōu)節(jié)點數(shù)量。出于示例假定在子任務(wù)IlOA的執(zhí)行期間與子任務(wù)IlOA相關(guān)聯(lián)的最 優(yōu)節(jié)點數(shù)量幾乎沒有變化,則校準(zhǔn)持續(xù)時間控制器114A將發(fā)現(xiàn)出現(xiàn)了這種最優(yōu)節(jié)點數(shù)量 的微小變化,并且將因此逐漸延長自適應(yīng)資源控制器102確定當(dāng)前最優(yōu)節(jié)點數(shù)量的操作之 間的時間間隔。另一方面,一旦子任務(wù)IlOA結(jié)束并且子任務(wù)IlOB開始,自適應(yīng)資源控制器102就 將檢測到并確定需要新的最優(yōu)節(jié)點數(shù)量n。p。在最優(yōu)節(jié)點數(shù)量發(fā)生自適應(yīng)資源控制器102的 某次迭代操作所確定的這種大的變化之后,校準(zhǔn)持續(xù)時間控制器116將減少自適應(yīng)資源控 制器102的后續(xù)操作之間的時間間隔,以便盡可能快速并且精確地確定新的最優(yōu)節(jié)點數(shù)量 nop。通過這樣的方式,自適應(yīng)資源控制器102可以趨向于確定在特定時間所需要的、用于執(zhí) 行當(dāng)前正在運行的任務(wù)或子任務(wù)的最優(yōu)節(jié)點數(shù)量。在圖1的系統(tǒng)100的一些示例實施方式中,抽樣器112和校準(zhǔn)器114可以被配置 為嘗試以盡可能準(zhǔn)確或詳細(xì)的方式表征開銷函數(shù)O(n)所描述的并行化開銷成本。例如,在 理想情況下,自適應(yīng)資源控制器102可以被配置為精確表征開銷函數(shù)O(n),在這種情況下 對校準(zhǔn)器114來說應(yīng)當(dāng)可以僅在自適應(yīng)資源控制器102的一次迭代或一次操作中就確定與 執(zhí)行特定任務(wù)相關(guān)聯(lián)的最優(yōu)節(jié)點數(shù)量。但是,在更加典型或更加現(xiàn)實的場景中,可能太困難或者不值得付出必要的努力 去嘗試將開銷函數(shù)O(n)表征到如此精確的程度。例如,將開銷函數(shù)確定到如此肯定的程度 可能會牽涉太多的因素,從而使這種示例實施方式在許多場景都不可行。相反,在上面描述 的例子中,校準(zhǔn)器114和抽樣器112可以被配置為假定開銷函數(shù)O(n)的相對簡化的表示, 具體來說,可以假定開銷函數(shù)是理想線性的并且從而用函數(shù)αn來表示。雖然已知這樣的 表示很可能在對特定開銷函數(shù)的表征上不是高精確度的或者不具有代表性,但是如這里所描述的那樣,自適應(yīng)資源控制器102可以依靠抽樣器112和校準(zhǔn)器114以校準(zhǔn)持續(xù)時間控 制器116所確定的時間間隔重復(fù)迭代或操作,來逼近必要的節(jié)點數(shù)量的精確優(yōu)化。例如,如圖2C的圖示中所示,示出了開銷函數(shù)O(n)的圖,圖2C的圖中Y軸上的并 行化開銷被表示為節(jié)點數(shù)量的函數(shù),因此在圖2C的X軸上示出了節(jié)點數(shù)量。在圖2C中,曲 線202示出的是實際開銷函數(shù)0(η)的概念化表示,如上所述,系統(tǒng)100的操作員可能不知 道或者無法發(fā)現(xiàn)該函數(shù),或者不值得付出所需的相應(yīng)努力來獲得開銷函數(shù)的這樣精確的表 示。與此同時,直線204、206、208代表實際開銷函數(shù)202的理想化表示,如使用上面的例子 用估計的或理想的線性函數(shù)α η所表示的那樣。因此,如圖2C所示,自適應(yīng)資源控制器102 可以執(zhí)行3次迭代或者操作,以盡可能接近地確定將分配給所討論的正在執(zhí)行的任務(wù)的最 優(yōu)節(jié)點數(shù)量(出于與之前圖2Α和圖2Β的例子保持一致的目的,在圖2C的例子中,假定最 優(yōu)節(jié)點數(shù)量η。ρ = 50)。更加具體來說,可以理解的是,直線204表示自適應(yīng)資源控制器102的第一次迭代 或操作,其中獲得具有α的第一值的直線204,其將導(dǎo)致最優(yōu)節(jié)點數(shù)量的第一次確定。然 后,在自適應(yīng)資源控制器102的第二次迭代或操作中,可以確定具有開銷因子α的第二值 的第二直線208。如圖所示,可能發(fā)生存在過調(diào)節(jié)或過補償或在所討論的開銷函數(shù)的實際 曲線202周圍的振蕩。但是,如所示的那樣,在自適應(yīng)資源控制器102的第三次迭代或操作 中,可以得到具有項α的第三值的第三直線206,其與開銷函數(shù)的實際曲線202在近似最優(yōu) 節(jié)點數(shù)量n。p = 50處相交,該最優(yōu)節(jié)點數(shù)量是執(zhí)行正在討論的任務(wù)所需要的最優(yōu)節(jié)點數(shù)量。通過這樣的方式,通過自適應(yīng)資源控制器102的多次迭代或操作,系統(tǒng)100可以 趨向最優(yōu)節(jié)點數(shù)量,而無需確定詳細(xì)程度或精確程度在直線204、206、208所表示的開銷函 數(shù)之上的曲線202所表示的開銷函數(shù)。也就是說,自適應(yīng)資源控制器102允許系統(tǒng)100趨 向最優(yōu)節(jié)點數(shù)量,和/或趨向于最優(yōu)節(jié)點數(shù)量周圍相對接近的范圍或邊界內(nèi)。而且,如上所 述,校準(zhǔn)持續(xù)時間控制器116可以被配置為確保最初在所確定的最優(yōu)節(jié)點數(shù)量之間相對較 大或相對急劇的變化與自適應(yīng)資源控制器102相對較頻繁的操作或迭代相關(guān)聯(lián)。相反,一 旦自適應(yīng)資源控制器102開始在最優(yōu)節(jié)點數(shù)量周圍相對較小的范圍內(nèi)振蕩時,校準(zhǔn)持續(xù)時 間控制器116就可以降低自適應(yīng)資源控制器102操作或迭代的頻率,以便將與自適應(yīng)資源 控制器102的每次操作相關(guān)聯(lián)的任何校準(zhǔn)開銷成本最小化。雖然上面的描述提供了系統(tǒng)100的操作的各種例子,但是將理解的是,也可以實 施各種其它的示例實施方式,這里將更加詳細(xì)地對其中一些進行描述。例如,上面描述了抽 樣器112可以被配置為確定和提供與用于并行執(zhí)行所討論的正在運行的任務(wù)的至少2個不 同節(jié)點數(shù)量相關(guān)聯(lián)的至少兩個性能表征。然后,如所述的那樣,校準(zhǔn)器114,特別是開銷因子 計算器114Α,可以使用這兩個性能量度來確定已被提供給節(jié)點優(yōu)化器114Β的開銷因子α。在其它示例實施方式中,抽樣器112可以在一段時間內(nèi)執(zhí)行多于兩個的對這種性 能量度的確定,例如,可以確定與圖2Β的例子中所示的5個抽樣點S1-S5相關(guān)聯(lián)的性能量 度。然后,開銷因子計算器114Α可以使用多對相關(guān)性能量度來獲得開銷因子α的多個值。 然后,開銷因子計算器可以確定與多個所確定的α值相關(guān)聯(lián)的α的平均值,以便節(jié)點優(yōu)化 器114可以基于均值α·來進行對最優(yōu)節(jié)點數(shù)量 的確定。通過這樣的方式,開銷因子 計算器114Α可以提供更加穩(wěn)定和/或更加精確的開銷因子α的值,以供節(jié)點優(yōu)化器114Β 使用。
在圖1的例子中,自適應(yīng)資源控制器102被示為在計算設(shè)備118上運行,如所知以 及這里更加詳細(xì)地描述的那樣,計算設(shè)備118可以包括或表示可以被配置為執(zhí)行這里所描 述的自適應(yīng)資源控制器102的功能的幾乎任何計算設(shè)備,包括任何必須或期望的相關(guān)硬件 或軟件,包括適合的處理器、存儲器、顯示器或其它相關(guān)計算資源。雖然在圖1的例子中只 有自適應(yīng)資源控制器102被示為由計算設(shè)備運行,但是應(yīng)當(dāng)理解,資源調(diào)度器104、節(jié)點池 和邏輯資源106、以及任務(wù)108、110全部都可以表示相同或不同的計算設(shè)備118和/或相關(guān) 計算設(shè)備,這應(yīng)當(dāng)是顯而易見的。例如,圖1的系統(tǒng)100的各個組件都可以在單個計算設(shè)備 上實施,或者可以在經(jīng)由網(wǎng)絡(luò)互相通信的多個計算設(shè)備上實施。對本領(lǐng)域技術(shù)人員來說,各 種其它實施方式應(yīng)當(dāng)是顯而易見的。圖3是示出圖1的系統(tǒng)100的示例操作的流程圖300。在圖3的例子中,操作 302-308被示為按順序執(zhí)行。但是,應(yīng)當(dāng)理解,這樣的圖示只是出于示例和易于理解的目的, 而非對圖1的系統(tǒng)100的操作進行限制。例如,應(yīng)當(dāng)理解,除非在這里有所要求,否則操作 302-308可以以不同的次序執(zhí)行,或者可以被運行為使得操作302-308中的各個操作并行 發(fā)生或者以重疊方式發(fā)生,除非這里另作說明。在圖3的例子中,可以在任務(wù)由并行操作的第一數(shù)量的節(jié)點執(zhí)行時,確定該正在 執(zhí)行的任務(wù)的第一性能量度(30 。例如,抽樣器112的數(shù)據(jù)收集器112A可以在任務(wù)110 由第一數(shù)量的節(jié)點(例如,圖1中被示為正在執(zhí)行子任務(wù)IlOA的4個節(jié)點106D-106G)執(zhí) 行時,確定該正在執(zhí)行的任務(wù)110的第一性能量度。可以理解,數(shù)據(jù)收集器112A可以收集 與由并行操作的第一數(shù)量的節(jié)點執(zhí)行任務(wù)110相關(guān)聯(lián)的數(shù)據(jù),基于此,性能計算器112B可 以確定任務(wù)110的相關(guān)性能量度,如上所述,例如,以將所述性能度量存儲在性能高速緩存 112D內(nèi)。例如,可以針對圖2B的抽樣點Sl確定這樣的性能量度。然后,可以在任務(wù)正在由并行操作的第二數(shù)量的節(jié)點執(zhí)行時,確定該正在執(zhí)行的 任務(wù)的第二性能量度(304)。例如,圖1的調(diào)整管理器112C可以被配置為將節(jié)點數(shù)量從第 一節(jié)點數(shù)量調(diào)整為第二節(jié)點數(shù)量以用于執(zhí)行任務(wù)110。例如,調(diào)整管理器可以將節(jié)點數(shù)量從 四更改為其它更大或更小的節(jié)點數(shù)量(在圖1的例子中未明確示出)。然后,可以重復(fù)數(shù)據(jù) 收集器112A收集適合的性能數(shù)據(jù)的操作,以便性能計算器112B可以確定利用第二數(shù)量的 節(jié)點的第二性能量度,如上面所提到的那樣??梢岳斫?,這樣的性能量度可以與圖2B的其 它抽樣點中的一個(例如,抽樣點S2)相關(guān)聯(lián)。然后,可以基于第一性能量度和第二性能量度來計算開銷因子,該開銷因子表征 利用并行執(zhí)行的節(jié)點執(zhí)行任務(wù)的并行化開銷相對于節(jié)點數(shù)量變化的變化(306)。例如,開銷 因子計算器114A可以接收第一性能量度和第二性能量度,并且可以如上所述確定開銷因 子α (例如使用公式幻。還是如上所述,在所提供的特定例子中,通過將使用來自邏輯資源 106的節(jié)點池的并行節(jié)點執(zhí)行任務(wù)110的并行化開銷的變化表示為具有有關(guān)于節(jié)點數(shù)量的 對應(yīng)變化的特定變化速率的線性函數(shù),使開銷因子α表征并行化開銷成本的變化。當(dāng)然, 這只是一個例子,也可以選擇線性函數(shù)之外的其它類型的函數(shù),諸如像指數(shù)函數(shù)。因為例如 設(shè)計者可能希望以被認(rèn)為是最接近地表示實際并行化開銷成本的特定方式來表示開銷函 數(shù)Ο(η),所以對特定類型函數(shù)的選擇和使用可以取決于例如作為基礎(chǔ)的實際并行化開銷成 本的特性。然后,可以基于該開銷因子來確定將并行操作以繼續(xù)執(zhí)行任務(wù)的節(jié)點的最優(yōu)數(shù)量(308)。例如,節(jié)點優(yōu)化器114B可以從開銷因子計算器114A接收開銷因子,并且可以使用 標(biāo)準(zhǔn)算術(shù)技術(shù)、利用公式1的衰減函數(shù)來確定最優(yōu)節(jié)點數(shù)量n。p(例如將衰減函數(shù)的導(dǎo)數(shù)設(shè) 為等于零,或者通過對衰減函數(shù)進行足夠的樣本計算(example calculation)來確定n。p)。 隨后,校準(zhǔn)器114可以提供指令給資源調(diào)度器104,以將最優(yōu)數(shù)量n。p的節(jié)點分配給所討論 的任務(wù)或子任務(wù),例如,任務(wù)110,或者更加具體來說,分配給子任務(wù)110A。圖4是更加詳細(xì)地示出圖1的系統(tǒng)100的示例操作的框圖。在圖4的例子中,在 操作404,利用先前或當(dāng)前校準(zhǔn)的數(shù)量的節(jié)點來執(zhí)行任務(wù)402。在特定時間點,觸發(fā)器406 使得對與任務(wù)402相關(guān)聯(lián)的性能數(shù)據(jù)的抽樣(408)發(fā)生。例如如上所述,抽樣(408)可以 包括數(shù)據(jù)收集器112A的數(shù)據(jù)收集和性能計算器112B的相關(guān)性能確定。然后,可以將所確定的性能量度,也即第一性能量度高速緩存010),例如將其高 速緩存在圖ι的性能高速緩存112D內(nèi)。隨后,調(diào)整管理器112C可以調(diào)整(414)并行執(zhí)行 以運行任務(wù)402的節(jié)點數(shù)量。在自適應(yīng)資源控制器102的第一次或初始操作中,所述調(diào)整 可以是預(yù)先確定的,和/或可以對方向(也即,增大或減小)或幅度(也即,被添加或被移 除的節(jié)點數(shù)量)做隨機調(diào)整。也就是說,既可以添加(418)節(jié)點也可以減少(416)節(jié)點,之 后等待操作420開始。更加具體來說,等待操作420可以被理解為表示所確定的或所指定 的、為了達到任務(wù)402的穩(wěn)定狀態(tài)操作所必須的時間量。換句話說,基于任務(wù)402的類型、 節(jié)點106的特性、所確定的性能量度的特性或者基于其它因素,為了在抽樣器112的下一次 抽樣迭代中獲得后續(xù)的有意義的/有用的量度,等待操作420可能需要不同的時間量。然后,抽樣操作408執(zhí)行響應(yīng)于第二觸發(fā)406而得到的第二性能量度,并且該第二 性能量度可以被輸出,以用于與被高速緩存的第一性能量度的值410進行比較操作412。基 于比較操作412,調(diào)整管理器112C可以確定后續(xù)再次發(fā)生的調(diào)整操作414的特性。例如,如 上所述,調(diào)整管理器112C可以確定添加(418)更多的節(jié)點用于執(zhí)行任務(wù)402是否與相對于 第一性能量度而言第二性能量度的提高相關(guān)聯(lián)(例如,所測量的逝去時間減少)。如果是的 話,那么調(diào)整管理器112C可以確定繼續(xù)添加并行節(jié)點以用于執(zhí)行任務(wù)402,也即可以執(zhí)行 添加節(jié)點操作418。相反,如果調(diào)整管理器112C確定節(jié)點的添加導(dǎo)致第二性能量度相對于第一性能 量度實際有所下降,那么調(diào)整管理器112C就可以確定已經(jīng)超過了最優(yōu)節(jié)點數(shù)量,因此添加 更多節(jié)點只會使執(zhí)行任務(wù)402的執(zhí)行能力下降進一步惡化。因此,調(diào)整管理器112C將執(zhí)行 減少節(jié)點操作416。類似地,如果先前調(diào)整包括相對于第一性能量度的節(jié)點數(shù)量減少了第二性能量度 的節(jié)點數(shù)量,那么調(diào)整管理器112C可以考慮這樣的節(jié)點減少是否導(dǎo)致第二性能量度相對 于第一性能量度的相應(yīng)提高。在節(jié)點數(shù)量的減少提高了性能量度的情況下(例如,使得逝 去時間變少),調(diào)整管理器112C就可以斷定通過執(zhí)行減少節(jié)點操作416繼續(xù)減少節(jié)點數(shù)量 可能是有利的,可能使節(jié)點數(shù)量更加接近最優(yōu)節(jié)點數(shù)量。另一方面,如果先前的節(jié)點減少與 變差的性能相關(guān)聯(lián),那么調(diào)整管理器112C就可以確定必須通過添加節(jié)點操作418來添加更 多的節(jié)點,以再次試圖向更加接近最優(yōu)節(jié)點數(shù)量的方向發(fā)展。當(dāng)有至少兩個性能量度可用于進行比較操作412時,也可以輸出這些性能量度以 進行估計操作422,在估計操作422中,例如可以由開銷因子計算器114A確定開銷因子α。 然后,可以進行校準(zhǔn)操作424,在校準(zhǔn)操作4 中來自估計操作422的開銷因子α被用于確定最優(yōu)節(jié)點數(shù)量。然后,在操作426,可以將所確定的最優(yōu)數(shù)量的節(jié)點實際分配給任務(wù)402, 以使得利用該校準(zhǔn)后數(shù)量的節(jié)點的執(zhí)行404可以繼續(xù)。通過這樣的方式,可以連續(xù)確定任務(wù)402的任務(wù)結(jié)果427,也即,實際執(zhí)行任務(wù)402 的最初期望的結(jié)果或輸出。而且,在自適應(yīng)資源控制器102的特定迭代中,或者在自適應(yīng)資 源控制器102的各個不同操作中,表示抽樣器112的抽樣操作的虛線框4 可以被理解為 被執(zhí)行所需要的次數(shù)。例如,如上所述,在自適應(yīng)資源控制器102的特定校準(zhǔn)操作中,虛線 框428的抽樣操作可能要發(fā)生多于兩次,以便可以獲得開銷因子α的多個值,以用于確定 其平均值。此外,或者可替換地,自適應(yīng)資源控制器102的后續(xù)操作可以按照圖1的校準(zhǔn)持續(xù) 時間控制器116所確定的時間間隔進行,校準(zhǔn)持續(xù)時間控制器116確定所述時間間隔是為 了在最小化與圖4的抽樣操作和校準(zhǔn)操作相關(guān)的校準(zhǔn)開銷成本的同時,將最優(yōu)節(jié)點數(shù)量維 持在期望范圍內(nèi)或鄰近范圍內(nèi)。圖5是圖1的系統(tǒng)100的示例實施方式的框圖。圖5示出了圖1的組件102、104 和106的例子以及多任務(wù)控制器502。更加具體來說,多任務(wù)控制器502可以被理解為表示 這樣的組件其被配置為當(dāng)在并行操作的多個不同任務(wù)之間分配資源時,提供對圖1的系 統(tǒng)100的附加的管理控制層,其中每一個任務(wù)都經(jīng)歷資源調(diào)度器104根據(jù)自適應(yīng)資源控制 器102的指令分配邏輯資源106中的并行節(jié)點的操作。換句話說,可以理解的是,在理想場景下,系統(tǒng)100或系統(tǒng)500接收到的每個任務(wù) 都可以被配置為接收為其分配的最優(yōu)數(shù)量的節(jié)點。但是實際中,可能發(fā)生這樣的情況僅有 有限數(shù)量的節(jié)點可用于在系統(tǒng)500處接收到的多個任務(wù)T1. . . Tn的并行執(zhí)行。在這種情況 下,可能發(fā)生的是,并非所有任務(wù)都可以接收到與其相關(guān)聯(lián)的計算出的/期望的最優(yōu)數(shù)量 的節(jié)點,因為例如當(dāng)前可能不能在邏輯資源106的節(jié)點池中獲得該最優(yōu)數(shù)量的節(jié)點,或者 存在其它約束條件。在一個例子中,可能的情況是,邏輯資源池106中可用節(jié)點的總數(shù)量等于13個節(jié) 點。而且,可能的情況是,由于自適應(yīng)資源控制器102的操作,可能確定,與多個任務(wù)或其子 任務(wù)相關(guān)聯(lián)的最優(yōu)節(jié)點數(shù)量可以被確定。更加具體來說,如圖5中所示,任務(wù)T1的子任務(wù) 504可以與任務(wù)T2的子任務(wù)506協(xié)同執(zhí)行,同時任務(wù)Tn的子任務(wù)508也可以與它們并行執(zhí) 行。在這樣的情況下,如圖所示,自適應(yīng)資源控制器102和并行執(zhí)行調(diào)度器104的相應(yīng) 實例可以做出響應(yīng),以便對當(dāng)前正在執(zhí)行的子任務(wù)504、506和508中的每一個的最優(yōu)節(jié)點 數(shù)量進行相應(yīng)的必要確定。在這樣的情況下,可能發(fā)生的是,為子任務(wù)504確定的最優(yōu)節(jié)點 數(shù)量為10個節(jié)點,而與子任務(wù)506相關(guān)聯(lián)的最優(yōu)節(jié)點數(shù)量為5個節(jié)點,與子任務(wù)508相關(guān) 聯(lián)的最優(yōu)節(jié)點數(shù)量被確定為3個節(jié)點。在這種情況下,很明顯,子任務(wù)504、506、508總共需 要的節(jié)點多于在邏輯資源106的節(jié)點池內(nèi)當(dāng)前可用的13個節(jié)點。在這種情況下,多任務(wù)控制器502可以被配置為提供與每個任務(wù)或子任務(wù)相關(guān)聯(lián) 的優(yōu)先級,以使得并行執(zhí)行調(diào)度器104和/或自適應(yīng)資源控制器102可以對可用節(jié)點資源 進行最充分的利用或最期望的利用。在特定例子中,可能發(fā)生的是,雖然利用10個節(jié)點可 以使任務(wù)504達到最優(yōu)化,但是子任務(wù)504的對應(yīng)優(yōu)先級可能指示僅將可用的13個節(jié)點中 的6個節(jié)點分配給子任務(wù)504。與此同時,雖然利用5個節(jié)點可以使子任務(wù)506達到最優(yōu)化,但是如所示的那樣,可用的13個節(jié)點中只有4個節(jié)點被分配給子任務(wù)506。最后,在特 定例子中,利用3個節(jié)點可以使子任務(wù)508達到最優(yōu)化,如所示的那樣,實際上也從13個可 用節(jié)點的節(jié)點池分配了 3個節(jié)點給子任務(wù)508。因此,以此方式分配可用節(jié)點的一條理由可能是子任務(wù)508是優(yōu)先級最高的子 任務(wù),因此接收到用于完成該子任務(wù)所需要的實際最優(yōu)數(shù)量的節(jié)點。例如,子任務(wù)508可 能與關(guān)聯(lián)到高級質(zhì)量保證或者其它服務(wù)等級擔(dān)保的客戶正在執(zhí)行的任務(wù)相關(guān)聯(lián)。類似地, 子任務(wù)506可能具有相對較高的優(yōu)先級,因此可以接收到其最優(yōu)執(zhí)行所需要的幾乎全部節(jié) 點。另一方面,子任務(wù)504可能被給予較低的優(yōu)先級,因此可能僅接收到所需要的被確定為 執(zhí)行子任務(wù)504的最優(yōu)節(jié)點數(shù)量的10個節(jié)點中的6個。在該例子或類似例子中,多任務(wù)控制器502可以執(zhí)行其它準(zhǔn)則來分配可用節(jié)點。 例如,即使子任務(wù)504、506或508優(yōu)先級相似,也可能確定將最優(yōu)數(shù)量節(jié)點分配給子任務(wù) 508,因為在本例中,該最優(yōu)節(jié)點數(shù)量相對較小,并且可以將其分配給子任務(wù)508以使其迅 速執(zhí)行和完成,從而使得本例中所分配的3個節(jié)點可以返回邏輯資源106的節(jié)點池,之后在 其余正在執(zhí)行的子任務(wù)504、506內(nèi)或在它們之間進行分配。因此,多任務(wù)控制器502可以被配置為在這些場景下協(xié)助自適應(yīng)資源控制器102 和/或并行執(zhí)行調(diào)度器104 邏輯資源106中節(jié)點池內(nèi)的節(jié)點數(shù)量相對于執(zhí)行各個任務(wù) T1. . . Tn的需要或其它要求而言是有限的。雖然已經(jīng)給出了特定例子,但是應(yīng)當(dāng)理解的是,對 于在可用資源相對有限時多任務(wù)控制器502協(xié)助可用資源的分配,也可以實施許多其它例 子。例如,多任務(wù)控制器502可以完全延遲或阻制特定任務(wù)或子任務(wù)的執(zhí)行,以使得其它任 務(wù)可以接收到接近于它的所確定的最優(yōu)節(jié)點數(shù)量的多個的節(jié)點。對本領(lǐng)域技術(shù)人員來說, 其它例子應(yīng)當(dāng)是明顯的。而且,雖然多任務(wù)控制器502被示為與資源調(diào)度器104通信的獨立單元,但是可以 理解的是,這樣的圖示僅僅是出于示例的目的。在其它示例實施方式中,多任務(wù)控制器502 可以被實施為自適應(yīng)資源控制器102的一部分或者與自適應(yīng)資源控制器102結(jié)合在一起。 而且,對于本領(lǐng)域技術(shù)人員來說,其它示例實施方式應(yīng)當(dāng)是明顯的。圖6是分別示出圖1的系統(tǒng)100和圖5的系統(tǒng)500的附加示例操作的流程圖600。 在圖6中的例子中,正在運行的任務(wù)T被接收(60 。可以確定抽樣迭代次數(shù)/輪數(shù)S (604)。 例如,可以由系統(tǒng)100的操作員預(yù)先指定或預(yù)先定義這樣的抽樣輪數(shù),并且該輪數(shù)可以與 被認(rèn)為是精確計算開銷因子α的精確平均值所必須的抽樣次數(shù)相關(guān)聯(lián)。然后,可以確定用于在每次抽樣處理過程期間進行調(diào)整的節(jié)點數(shù)量,表示為 δ (606)。換句話說,如上所述,調(diào)整管理器112C可以被配置為在特定抽樣操作期間調(diào)整節(jié) 點數(shù)量,如在圖4的操作414、416、418中更加詳細(xì)地圖示的那樣。在圖6的示例中,節(jié)點數(shù) 量δ表明調(diào)整管理器112C將在抽樣處理過程期間將當(dāng)前正在執(zhí)行的節(jié)點數(shù)量增加或減少 的節(jié)點數(shù),下面將更加詳細(xì)地描述。類似地,可以確定在每輪抽樣期間添加或是減少剛剛確定數(shù)量的節(jié)點的方向 D(608)。也就是說,如上所述,在給定輪次的抽樣期間要么添加節(jié)點,要么減少節(jié)點,這例如 取決于先前一輪抽樣的先前方向?qū)е逻M行中的抽樣輪性能改善還是惡化。在操作600的第 一實例或迭代中,可以隨機分配方向D,和/或可以由系統(tǒng)100或系統(tǒng)500的操作員確定方 向D。19
然后,可以記錄利用當(dāng)前數(shù)量節(jié)點的正在運行的任務(wù)的性能(610)。例如,如上所 述,數(shù)據(jù)收集器112A和性能計算器112B可以一起操作來確定與第一或當(dāng)前節(jié)點數(shù)量相關(guān) 聯(lián)的第一性能量度。然后,調(diào)整管理器112C可以用D和δ來調(diào)整第一或當(dāng)前節(jié)點數(shù)量,也 即,可以根據(jù)D和δ增加或減少當(dāng)前節(jié)點數(shù)量。然后,系統(tǒng)100或500可以等待記錄新性能量度所需要的時間長度(614)。也就是 說,如上所述,這樣的等待時間長度可以取決于各個節(jié)點因子和/或可以取決于性能量度 的類型、執(zhí)行中的任務(wù)、或待分配的節(jié)點,或者它們的組合或其它因素,如應(yīng)當(dāng)清楚的那樣。如果先前性能優(yōu)于使用當(dāng)前數(shù)量或新數(shù)量的節(jié)點所測得的當(dāng)前性能/新的性能 (616),那么可以將方向D逆轉(zhuǎn)(reverse) (618)。也就是說,如上所述,如果先前性能或第一 性能優(yōu)于新的或第二性能,那么調(diào)整管理器112C就推斷當(dāng)前添加或移除節(jié)點的方向說明 了使性能變差的趨勢,因此將該方向逆轉(zhuǎn)。相反,如果舊的或第一性能不優(yōu)于新的或第二性 能,那么調(diào)整管理器112C就可以推斷性能量度的比較說明了提高性能的趨勢,那么就可以 繼續(xù)保持調(diào)整的方向D。然后可以記錄舊的或第一性能與新的性能之間的差(620),并且然后,可以基于此 計算開銷因子(622)。例如,如上所述,開銷因子計算器114A可以接收性能量度Pnew和P。ld, 并且可以相對于與僅使用單個節(jié)點執(zhí)行任務(wù)相關(guān)聯(lián)的執(zhí)行時間T,將這些性能量度進行比 較,如公式2所示。然后,可以將該比較的結(jié)果設(shè)為等于使用相應(yīng)的第一和第二(也即,舊 的和新的)節(jié)點數(shù)量所求值的公式1的衰減函數(shù)的相應(yīng)的差,如上面公式2中所示的那樣。 通過這樣的方式,可以由開銷因子計算器114A提取并確定因子α。如果尚未達到抽樣輪數(shù),那么操作繼續(xù)記錄利用當(dāng)前(調(diào)整后的)數(shù)量的節(jié)點的 任務(wù)的性能(610),之后繼續(xù)執(zhí)行操作612-622,由此確定更多的開銷因子α的值。一旦達 到了數(shù)量S個α值(6Μ),就可以確定平均開銷因子aav(6^)。使用開銷因子的平均值aav,可以例如由節(jié)點優(yōu)化器114B確定最優(yōu)節(jié)點數(shù)量 (628)。例如,如上所述,可以將所確定的開銷因子α av代入到公式1的衰減函數(shù)中,然后可 以優(yōu)化衰減函數(shù)來確定n。p。從而,校準(zhǔn)器114可以提供指令到資源調(diào)度器104,以將當(dāng)前節(jié) 點數(shù)量設(shè)為由此確定的最優(yōu)節(jié)點數(shù)量(630)。隨后,如上所述,校準(zhǔn)持續(xù)時間控制器116可以操作為確定直到應(yīng)當(dāng)進行另外的 抽樣校準(zhǔn)操作時的時間間隔的長度。具體來說,校準(zhǔn)持續(xù)時間控制器116可以確定從最新 近的校準(zhǔn)開始的時間間隔的持續(xù)時間(632)。而且,校準(zhǔn)持續(xù)時間控制器116可以確定在對 應(yīng)的最新近校準(zhǔn)操作期間最新近的優(yōu)化后的節(jié)點的值的數(shù)量M(634)。使用最新近的持續(xù)時間的量度以及最新近的優(yōu)化后的節(jié)點的值的值M,校準(zhǔn)持續(xù) 時間控制器116可以計算新的校準(zhǔn)持續(xù)時間,其表示直到應(yīng)當(dāng)進行后續(xù)抽樣校準(zhǔn)操作時的 時間間隔(636)。隨后,自適應(yīng)資源控制器102可以在繼續(xù)(也即,繼續(xù)開始記錄利用當(dāng)前 數(shù)量節(jié)點的任務(wù)的性能(610))之前等待由此確定的新的校準(zhǔn)持續(xù)時間的長度(638)。也就是說,如上所述,當(dāng)最新近的優(yōu)化后的節(jié)點的值相對接近時,校準(zhǔn)持續(xù)時間控 制器116可以維持或增加新的校準(zhǔn)持續(xù)時間的時間間隔的長度,因為可以推知正在執(zhí)行的 任務(wù)處于或接近其最優(yōu)節(jié)點數(shù)量。相反,如果M個最新近的優(yōu)化后的節(jié)點的值彼此之間表 現(xiàn)出相對較大的變化,那么校準(zhǔn)持續(xù)時間控制器116可以將新的校準(zhǔn)時間間隔相對于最新 近的前一時間間隔的持續(xù)時間減小。通過這樣的方式,可以有效達到或逼近最優(yōu)節(jié)點數(shù)量,同時將與這里所描述的抽樣校準(zhǔn)操作相關(guān)聯(lián)的校準(zhǔn)開銷成本最小化。形式上,如果Dn是待計算的校準(zhǔn)持續(xù)時間CD的長度,M(如上所述)表示影響Dn 的計算的先前⑶的恒定數(shù)量,那么向量<DN_M,Dm,. . .,DN_i>就表示過去每個⑶的值。然 后,權(quán)重向量<%,W1, ... , 預(yù)定義分配給每個過去值的權(quán)重,其約束條件是該權(quán)重向量 內(nèi)的權(quán)重之和等于1。為了使最近的CD的影響大于過去的CD,可以將權(quán)重向量中的值規(guī)定 為從W1到%單調(diào)增長。利用上面的定義,可以使用權(quán)重向量的權(quán)重,根據(jù)過去CD值的累積 來計算不考慮最優(yōu)并行程度的原始CD即Dtog。如上所述,在確定校準(zhǔn)持續(xù)時間時還可以考慮最新近的校準(zhǔn)結(jié)果的影響。例如,如 果在最近一次和當(dāng)前的校準(zhǔn)處理過程中估計的最優(yōu)節(jié)點數(shù)量是CV1和On,那么這兩個值之 間的比值就顯示出進行多大的調(diào)整。如果比值較接近于100%,那么暗示著當(dāng)前估計的并行 化程度幾乎等于最近一次的估計,而較接近于0%的比值則暗示最優(yōu)節(jié)點數(shù)量的變化較大。 使用該比值,可以將原始⑶Dtog放大一因子Δ乘以該比值的倍數(shù),其中Δ可以通過實驗 和/或用戶偏好來確定。從而,可以通過公式3計算當(dāng)前校準(zhǔn)持續(xù)時間⑶
權(quán)利要求
1.一種包括記錄于計算機可讀介質(zhì)上的指令的系統(tǒng),該系統(tǒng)包括抽樣器,其被配置為在任務(wù)由并行操作的第一數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行 的任務(wù)的第一性能量度,并且被配置為在該任務(wù)由并行操作的第二數(shù)量的節(jié)點執(zhí)行的同時 確定該正在執(zhí)行的任務(wù)的第二性能量度;以及校準(zhǔn)器,其被配置為基于第一性能量度和第二性能量度、相對于節(jié)點數(shù)量的變化來計 算開銷因子,該開銷因子表征利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的變化,并 且該校準(zhǔn)器被配置為基于該開銷因子來確定并行操作以繼續(xù)執(zhí)行所述任務(wù)的節(jié)點的最優(yōu) 數(shù)量。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述任務(wù)包括軟件應(yīng)用的任務(wù),并且其中,所述第 一性能量度和第二性能量度分別包括使用第一數(shù)量的節(jié)點和第二數(shù)量的節(jié)點處理該軟件 應(yīng)用的固定數(shù)據(jù)量所用的逝去時間的量度。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述抽樣器包括調(diào)整管理器,其被配置為在確定了 第一性能量度之后確定并執(zhí)行從第一節(jié)點數(shù)量調(diào)整為第二節(jié)點數(shù)量,包括確定固定節(jié)點數(shù) 量以及確定將第一節(jié)點數(shù)量增加還是減少該固定節(jié)點數(shù)量以得到第二節(jié)點數(shù)量。
4.如權(quán)利要求3所述的系統(tǒng),其中,所述調(diào)整管理器被配置為基于第一性能量度與先 前的性能量度之間的差來確定增加還是減少第一節(jié)點數(shù)量。
5.如權(quán)利要求1所述的系統(tǒng),其中,所述校準(zhǔn)器被配置為基于第一性能量度和第二性能量度確定第一開銷因子;在任務(wù)正在由并行操作的第三數(shù)量的節(jié)點執(zhí)行的同時,接收至少該正在執(zhí)行的任務(wù)的第三性能量度;使用第三性能量度和至少一個其它的性能量度,確定第二開銷因子;以及確定第一開銷因子和第二開銷因子的平均值作為所述開銷因子。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述校準(zhǔn)器被配置為計算所述開銷因子,使其表征 衰減函數(shù)f (η) = (1/η)+0(η)中的開銷函數(shù)0 (η),其中,η表示節(jié)點數(shù)量,并且其中,該衰減 函數(shù)表征了利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的變化。
7.如權(quán)利要求6所述的系統(tǒng),其中,將所述開銷函數(shù)0(η)表示為α η,并且所述校準(zhǔn)器 被配置為計算開銷因子,該開銷因子包括α項,以表示利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù) 的并行化開銷的線性變化速率。
8.如權(quán)利要求7所述的系統(tǒng),其中,所述校準(zhǔn)器被配置為根據(jù)公式f(Nse。。nd)_f (Nfiret) =(P_。nd-Pfi t)/T,通過將利用第一節(jié)點數(shù)量和第二節(jié)點數(shù)量求值的衰減函數(shù)與第一性 能和第二性能之間的性能變化進行比較,來確定包括α項的開銷因子,在公式中Pfiret* Psecond分別表示第一性能量度和第二性能量度,T表示使用單個節(jié)點執(zhí)行的時間。
9.如權(quán)利要求1所述的系統(tǒng),其中,最優(yōu)節(jié)點數(shù)量的確定表示當(dāng)前抽樣然后校準(zhǔn)操作 的結(jié)束,所述系統(tǒng)還包括校準(zhǔn)持續(xù)時間控制器,其被配置為控制當(dāng)前抽樣然后校準(zhǔn)操作與后續(xù)抽樣然后校準(zhǔn)操 作之間的時間間隔。
10.如權(quán)利要求9所述的系統(tǒng),其中,所述校準(zhǔn)持續(xù)時間控制器被配置為,基于當(dāng)前抽 樣然后校準(zhǔn)操作的最優(yōu)節(jié)點數(shù)量和至少一個先前抽樣然后校準(zhǔn)操作的至少一個先前確定 的最優(yōu)節(jié)點數(shù)量中的變化,來確定所述時間間隔。
11.如權(quán)利要求9所述的系統(tǒng),其中,所述校準(zhǔn)持續(xù)時間控制器被配置為,基于當(dāng)前抽 樣然后校準(zhǔn)操作與先前抽樣然后校準(zhǔn)操作之間的先前時間間隔來確定所述時間間隔。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述校準(zhǔn)器被配置為指令資源調(diào)度器分配所述最 優(yōu)數(shù)量的節(jié)點以供利用其執(zhí)行所述任務(wù)。
13.一種計算機實現(xiàn)的方法,包括在任務(wù)由并行操作的第一數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第一性能量度;在該任務(wù)由并行操作的第二數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第二性 能量度;基于第一性能量度和第二性能量度、相對于節(jié)點數(shù)量的變化來計算開銷因子,該開銷 因子表征利用并行執(zhí)行的節(jié)點執(zhí)行該任務(wù)的并行化開銷的變化;以及基于該開銷因子來確定將并行操作以繼續(xù)執(zhí)行該任務(wù)的節(jié)點的最優(yōu)數(shù)量。
14.如權(quán)利要求13所述的方法,其中,確定第一性能量度包括在確定了第一性能量度之后執(zhí)行從第一節(jié)點數(shù)量調(diào)整為第二節(jié)點數(shù)量,包括確定固定 節(jié)點數(shù)量以及確定將第一節(jié)點數(shù)量增加還是減少該固定節(jié)點數(shù)量以得到第二節(jié)點數(shù)量。
15.如權(quán)利要求13所述的方法,其中,計算所述開銷因子包括將所述開銷因子計算為表征衰減函數(shù)f (η) = (1/η)+0(η)中的開銷函數(shù)0(η),其中, η表示節(jié)點數(shù)量,并且其中,該衰減函數(shù)表征利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開 銷的變化。
16.如權(quán)利要求13所述的方法,其中,所述最優(yōu)節(jié)點數(shù)量的確定與當(dāng)前抽樣然后校準(zhǔn) 操作的結(jié)束相關(guān)聯(lián),所述方法還包括基于當(dāng)前抽樣然后校準(zhǔn)操作的最優(yōu)節(jié)點數(shù)量和至少一個先前抽樣然后校準(zhǔn)操作的至 少一個先前確定的最優(yōu)節(jié)點數(shù)量中的變化,并且還基于當(dāng)前抽樣然后校準(zhǔn)操作與最新近的 先前抽樣然后校準(zhǔn)操作之間的先前時間間隔,來控制當(dāng)前抽樣然后校準(zhǔn)操作與后續(xù)抽樣然 后校準(zhǔn)操作之間的時間間隔。
全文摘要
本發(fā)明提供一種并行處理期間資源分配的校準(zhǔn)方法和系統(tǒng)??梢栽谌蝿?wù)由并行操作的第一數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第一性能量度??梢栽谌蝿?wù)由并行操作的第二數(shù)量的節(jié)點執(zhí)行的同時確定該正在執(zhí)行的任務(wù)的第二性能量度。然后,可以基于第一性能量度和第二性能量度,相對于節(jié)點數(shù)量的變化,計算開銷因子,該開銷因子表征利用并行執(zhí)行的節(jié)點執(zhí)行所述任務(wù)的并行化開銷的變化。然后,可以基于該開銷因子來確定并行操作以繼續(xù)執(zhí)行該任務(wù)的節(jié)點的最優(yōu)數(shù)量。
文檔編號G06F9/50GK102043673SQ200910180738
公開日2011年5月4日 申請日期2009年10月21日 優(yōu)先權(quán)日2009年10月21日
發(fā)明者閆劍鋒, 黎文憲 申請人:Sap股份公司