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

用于高效并行運行的反饋驅(qū)動調(diào)節(jié)的制作方法

文檔序號:6486921閱讀:181來源:國知局
用于高效并行運行的反饋驅(qū)動調(diào)節(jié)的制作方法
【專利摘要】提供一種并行運行管理器,可以確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺。并行運行管理器可以包括:線程數(shù)目管理器,被配置為從該多個可用的處理線程中對于固定任務(wù)大小選擇被選擇的線程數(shù)目,以及任務(wù)大小管理器,被配置為從多個可用的任務(wù)大小中并且使用該被選擇的線程數(shù)目選擇被選擇的任務(wù)大小。并行運行管理器還可以包括:優(yōu)化器,被配置為運行迭代循環(huán),在該迭代循環(huán)中該被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且所述更新的選擇的線程數(shù)目被用于獲得更新的選擇的任務(wù)大小,并且優(yōu)化器還被配置為完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
【專利說明】用于高效并行運行的反饋驅(qū)動調(diào)節(jié)
【技術(shù)領(lǐng)域】
[0001]本描述涉及并行處理。
【背景技術(shù)】
[0002]大數(shù)據(jù)庫和其它軟件應(yīng)用的大小可能是在這種應(yīng)用的效用方面的限制因素,特別是當(dāng)查詢、計算、操作和其它任務(wù)自身較長和復(fù)雜時。例如,用戶可能想要發(fā)出復(fù)雜查詢以從具有數(shù)以千計或上百萬的記錄的關(guān)系數(shù)據(jù)庫獲得結(jié)果,在這種情況下,提供相應(yīng)查詢結(jié)果的響應(yīng)時間可能難以承受的長。此外,例如,通過允許由一個用戶相對于其他當(dāng)前用戶過度消耗資源,這種情形可能致使可用的計算資源的低效使用。
[0003]多核(例如,多CPU)計算系統(tǒng)的可用性已經(jīng)促進(jìn)了作為減輕這種影響的方式的并行運行的技術(shù)發(fā)展。例如,通過使用兩個可用的核,多任務(wù)(和/或其多個部分)可以彼此并行計算。因此,例如,可以以小于運行兩個同等的任務(wù)中的一個所花費的時間的兩倍的時間來運行該兩個任務(wù)。
[0004]然而,這種并行任務(wù)的實現(xiàn)難以以高效或最優(yōu)的方式來達(dá)到。例如,可能存在與向多個核劃分/分配多個任務(wù)關(guān)聯(lián)的成本,以及與重新結(jié)合或合并所述多個任務(wù)結(jié)果關(guān)聯(lián)的成本。例如,依靠所討論的任務(wù)的性質(zhì)和并行化的程度,這種成本可能限制、并且可能最終凌駕于或壓倒并行化的益處。
[0005]此外,一個或多個運行任務(wù)的運行時環(huán)境的復(fù)雜性和不可預(yù)測性可能加重多核并行任務(wù)處理的困難。例如,即使在所討論的(多個)任務(wù)的運行時間之前制定用于并行化的可接受的計劃,也可能發(fā)生的情況是運行時間事件可能減少規(guī)劃的調(diào)度的效果或愿望(例如,當(dāng)處理核具有比預(yù)期實質(zhì)上更大或更少的運行時間可用性時)。
[0006]附加地,這些和其它計算開銷類型可能根據(jù)正在計算的任務(wù)類型而變化。例如,一些任務(wù)可能比其他任務(wù)更易于劃分和/或組合。此外,正在計算的任務(wù)可能隨時間變化,例如,當(dāng)當(dāng)前任務(wù)完成并且新任務(wù)被加載之時。因此,并且取決于如何配置多個任務(wù)用于其并行計算,變化的任務(wù)可能以不同的程度再次遭受關(guān)聯(lián)的計算開銷的不利影響。
[0007]從而,當(dāng)對于任務(wù)的并行計算而創(chuàng)建任務(wù)和/或配置創(chuàng)建的任務(wù)時,可能難以預(yù)測和/或計算關(guān)聯(lián)的計算開銷的各種類型的影響。因此,可能難以實現(xiàn)并行計算的全部的益處。

【發(fā)明內(nèi)容】

[0008]根據(jù)一個一般方面,一種系統(tǒng)可以包括記錄在計算機(jī)可讀介質(zhì)上、并且可由至少一個處理器運行的指令。所述系統(tǒng)可以包括并行運行管理器,被配置為使得所述至少一個處理器確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺。所述并行運行管理器可以包括:線程數(shù)目管理器,被配置為從所述多個可用的處理線程中并且對于固定任務(wù)大小選擇被選擇的線程數(shù)目;以及任務(wù)大小管理器,被配置為從多個可用的任務(wù)大小中并且使用被選擇的線程數(shù)目來選擇被選擇的任務(wù)大小。所述并行運行管理器還可以包括優(yōu)化器,被配置為運行迭代循環(huán),在該迭代循環(huán)中選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且所述更新的選擇線程數(shù)目用于獲得更新的選擇的任務(wù)大小,并且優(yōu)化器還被配置為完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
[0009]實施方式可以包括以下特征中的一個或多個。例如,所述并行運行管理器可以包括被配置為監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間的響應(yīng)時間監(jiān)視器。所述線程數(shù)目管理器可以配置為在使用現(xiàn)有的線程數(shù)目時從響應(yīng)時間監(jiān)視器接收對于任務(wù)的基準(zhǔn)處理時間,并且還可以配置為對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時利用所述隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。所述線程數(shù)目管理器還可以配置為執(zhí)行隨后的線程數(shù)目的解空間的二次探查,以從其中選擇隨后的線程數(shù)目用于對比基準(zhǔn)處理時間的迭代測試。
[0010]所述任務(wù)大小管理器可以配置為在使用現(xiàn)有的任務(wù)大小時從響應(yīng)時間監(jiān)視器接收對于任務(wù)的基準(zhǔn)處理時間,并且還可以配置為對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時利用所述隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。所述任務(wù)大小管理器可以被配置為執(zhí)行隨后的任務(wù)大小的解空間的探查,其中所述解空間包括可以同等地分配給每個處理線程的任務(wù)大小。
[0011]所述并行運行管理器可以包括驗證器,所述驗證器被配置為提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài)。所述驗證器還可以被配置為使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間,改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間,并且基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。所述驗證器還可以被配置為使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間,改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并以其獲得更新的基準(zhǔn)處理時間,并且基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。附加地,或替代地,所述驗證器可以配置為動態(tài)地調(diào)整當(dāng)前線程數(shù)目和/或任務(wù)大小的多個驗證的各個之間的時間段。
[0012]一種用于運行存儲在計算機(jī)可讀存儲介質(zhì)上的指令的計算機(jī)實現(xiàn)方法,所述方法可以包括確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺。所述方法可以包括從所述多個可用的處理線程中并且對于固定任務(wù)大小來選擇被選擇的線程數(shù)目,以及從多個可用的任務(wù)大小中并且使用被選擇的線程數(shù)目來選擇被選擇的任務(wù)大小。所述方法還可以包括:運行迭代循環(huán),在該迭代循環(huán)中被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且所述更新的選擇的線程數(shù)目用于獲得更新的選擇的任務(wù)大小,并且還被配置為完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
[0013]實施方式可以包括以下特征中的一個或多個。例如,所述方法可以包括監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間,并且基于監(jiān)視的運行時間選擇被選擇的線程數(shù)目和被選擇的任務(wù)大小。[0014]所述從所述多個可用的處理線程中、并且對于固定任務(wù)大小選擇被選擇的線程數(shù)目可以包括:在使用現(xiàn)有的線程數(shù)目時接收對于任務(wù)的基準(zhǔn)處理時間,并且對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用所述隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。
[0015]所述從多個可用的任務(wù)大小中、并且使用選擇的線程數(shù)目來選擇被選擇的任務(wù)大小可以包括:使用現(xiàn)有的任務(wù)大小接收對于任務(wù)的基準(zhǔn)處理時間,并且對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用所述隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。
[0016]所述方法可以包括在提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài)。所述驗證可以包括使用:當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間,改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間,并且基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。
[0017]根據(jù)另一一般方面,一種切實地具體實現(xiàn)在計算機(jī)可讀存儲介質(zhì)上的計算機(jī)程序產(chǎn)品可以包括指令,當(dāng)所述指令被運行時,所述指令被配置為確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺。當(dāng)所述指令被運行時,還可以被配置為從所述多個可用的處理線程中并且對于固定任務(wù)大小選擇被選擇的線程數(shù)目,以及從多個可用的任務(wù)大小中并且使用該被選擇的線程數(shù)目來選擇被選擇的任務(wù)大小。當(dāng)所述指令被運行時,還可以被配置為運行迭代循環(huán),在該迭代循環(huán)中被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且所述更新的選擇的線程數(shù)目用于獲得更新的選擇的任務(wù)大小,并且完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
[0018]實施方式可以包括以下特征中的一個或多個。例如,當(dāng)指令被運行時,還可以被配置為監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間,并且基于監(jiān)視的運行時間選擇被選擇的線程數(shù)目和被選擇的任務(wù)大小。所述選擇的線程數(shù)目可以包括:在使用現(xiàn)有的線程數(shù)目時接收對于任務(wù)的基準(zhǔn)處理時間,并且對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用所述隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。附加地,或替代地,所述被選擇的任務(wù)大小的選擇可以包括:在使用現(xiàn)有的任務(wù)大小時接收對于任務(wù)的基準(zhǔn)處理時間,并且對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。
[0019]當(dāng)所述指令被運行時,還可以被配置為在提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài)。所述驗證可以包括:使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間,改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間,并且基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。
[0020]在附圖和下面的描述中闡述一個或多個實施方式的細(xì)節(jié)。其它特征將由從描述和附圖、以及從權(quán)利要求書中變得清楚。
【專利附圖】

【附圖說明】
[0021]圖1是用于高效并行運行的反饋驅(qū)動調(diào)節(jié)的系統(tǒng)的框圖。
[0022]圖2是示出圖1的系統(tǒng)的示例操作的流程圖。
[0023]圖3A是示出作為線程數(shù)目的函數(shù)的并行處理速度方面的變化的圖。
[0024]圖3B是示出作為任務(wù)大小的函數(shù)的處理速度方面的變化的圖。
[0025]圖4A是示出作為線程數(shù)目和任務(wù)大小兩者的函數(shù)的處理速度方面的變化的3D圖的正視圖。
[0026]圖4B是圖4A的圖的側(cè)視圖。
[0027]圖5是示出圖1的系統(tǒng)的更詳細(xì)的示例操作的流程圖。
[0028]圖6是示出用于用在圖5的流程圖中的確定最優(yōu)并行運行參數(shù)的示例操作的流程圖。
[0029]圖7是示出用于對于固定任務(wù)大小選擇最優(yōu)線程數(shù)目的示例操作的流程圖。
[0030]圖8是示出用于對于固定線程數(shù)目選擇最優(yōu)任務(wù)大小的示例操作的流程圖。
[0031]圖9是示出用于驗證圖5中的最優(yōu)并行運行參數(shù)的持續(xù)可適用性的示例操作的流程圖。
【具體實施方式】
[0032]圖1是用于并行運行的反饋驅(qū)動調(diào)節(jié)的系統(tǒng)100的框圖。在圖1的示例中,并行運行管理器102可以被配置為通過利用平臺106以并行化方式運行任務(wù)104。如所示和描述的,平臺106能夠運行多個、并行的運行線程,如圖1通過處理核106A、106B、...106N的圖示所示的。更具體地,如下面詳細(xì)描述的,并行運行管理器102可以被配置為積極地(actively)管理隨著時間進(jìn)行實現(xiàn)使用平臺106的任務(wù)104的并行化的方式和程度。具體地,并行運行管理102可以被配置為以這樣的方式實現(xiàn)并行化的最優(yōu)化:該方式一般對于平臺106的類型或性質(zhì)是不可知的(agnostic),并且不需要非常了解平臺106和關(guān)聯(lián)的并行化參數(shù)對此處提到的計算開銷的類型做出反應(yīng)的方式和程度,并且下面將詳細(xì)描述。
[0033]在圖1的特定示例中,任務(wù)104可以被理解為實際(virtually)表示軟件應(yīng)用的任何任務(wù),或者可以通過使用合適的計算機(jī)硬件/軟件實現(xiàn)或促進(jìn)的任何任務(wù)。例如,作為非限制性示例,這種任務(wù)可以包括計算、數(shù)據(jù)存儲/管理/檢索、與提供圖形用戶界面和關(guān)聯(lián)的功能有關(guān)的任務(wù),以及可以被劃分用于使用平臺106的并行運行的實際上的任何其他任務(wù)。在以下示例的各種示例中,例如,在圖3A-圖4B的示例中,任務(wù)被描述為銷售預(yù)測應(yīng)用的任務(wù)。雖然如此,從以上描述可以清楚知道,這種示例僅為了說明起見,并不應(yīng)以任何方式看作限制。
[0034]同時,平臺106可以理解為實際上表示可以被利用以實現(xiàn)任務(wù)104的并行化的任何多線程并行運行平臺。例如,平臺106可以表示具有多個運行線程的單個處理器和/或每個被設(shè)計為實現(xiàn)一個或多個運行線程的多個處理器或處理核。在此處描述的多個示例中,如上面提到和在圖1的示例中示出的,平臺106可以描述為包括多個處理核,但是它能夠養(yǎng),可以理解包括這種示例僅為了說明起見,而非以任何方式進(jìn)行限制。[0035]作為具體示例,處理核106A、106B、...、106N可以理解為涉及、或包括任何多計算平臺,在該多計算平臺中多個處理器、中央處理單元(CPU)、或其他處理處理資源是可用的,包括網(wǎng)絡(luò)/設(shè)備群。例如,已知并行查詢處理為用于在現(xiàn)有的SMP/CMP(SymmetricalMult1-Processing/Chip-level Mult1-Processing,對稱多處理 / 芯片級多處理)服務(wù)器上、尤其是用于能夠有效地處理巨大容量的數(shù)據(jù)和復(fù)雜查詢的高性能數(shù)據(jù)庫系統(tǒng)的提高數(shù)據(jù)庫性能的選項。從而,在本描述中,將清楚知道,術(shù)語“核”表示多處理選項可用的任何這種環(huán)境中的處理能力的(多個)單元。
[0036]從而,如描述的,系統(tǒng)100可以利用平臺106來運行任務(wù)104的并行處理。在這點上,系統(tǒng)100可以理解為實現(xiàn)可以與這種并行處理關(guān)聯(lián)的各種本來傳統(tǒng)(otherwise-conventional)的功能。例如,并行運行管理器102,和/或關(guān)聯(lián)的硬件/軟件,可以被配置為將任務(wù)104、或其子集或子任務(wù)劃分成各個運行線程以供使用平臺106的核106A...106N對其進(jìn)行獨立并行處理。類似地,并行運行管理器102可以被配置為聚集或組合這種并行計算的結(jié)果,從而獲得用于原始的任務(wù)的整體結(jié)果(或結(jié)果集合)。
[0037]如上面談到的,執(zhí)行并行處理的這些和其它方面可能引起各種類型或程度的計算開銷。例如,如下面參照圖3A示出和描述的,用來處理任務(wù)104的線程的數(shù)目方面的增加一般與計算開銷的增加關(guān)聯(lián),該計算開銷與剛剛描述的劃分/組合操作關(guān)聯(lián)。如參照圖3A示出和詳細(xì)描述的,處理線程的數(shù)目(例如,利用更多可用的核106A...106N)的增加相應(yīng)于處理時間方面的整體下降,直到達(dá)到增加的計算開銷超過利用附加的線程/核的益處的點。
[0038]由系統(tǒng)100經(jīng)歷的另一類型的計算開銷與任務(wù)104的相對大小有關(guān)。例如,在傳統(tǒng)系統(tǒng)中,可能發(fā)生如下情況:分配給核106A...106N的相應(yīng)各個核的任務(wù)104的各個任務(wù)可能相對彼此大小不同。例如,分配給核106A的任務(wù)包括的數(shù)據(jù)塊(例如,數(shù)據(jù)的字節(jié))可能是分配給核106B的任務(wù)的數(shù)據(jù)塊的兩倍,和/或可能花費的計算時間是分配給核106B的任務(wù)花費的計算時間的兩倍。在這種情形中,其他一切都相等的情況下,處理核106B將比處理核106A更迅速地完成它的任務(wù)。因此,假定只有當(dāng)各個結(jié)果都可以用來聚集或組合時兩個任務(wù)的并行處理才完成,則處理核106B可能被迫空閑直到核106A完成對于它的分配任務(wù)的處理。
[0039]從而,如描述的,各種類型的計算開銷可能對并行處理的整體效率具有不同程度的影響。此外,這種影響的程度可能與正在利用的平臺106的類型相關(guān)地變化,或者可能基于存在于給定情形中的計算開銷的類型而變化(例如,可能基于給出的計算開銷的類型的相互關(guān)系而變化)。從而,即使可以克服在預(yù)測給定并行計算情形中的計算開銷的類型和程度方面的困難,在現(xiàn)有的系統(tǒng)中、以足夠快速而能夠考慮在特定并行處理情形期間可能隨時間發(fā)生的改變的方式來更新和利用這種預(yù)測也可能是不可行或者不可能的。
[0040]從而,并行運行管理器102包括線程數(shù)目管理器108,線程數(shù)目管理器108可以被配置為選擇在任務(wù)104的并行處理中將要利用的處理線程的最優(yōu)線程數(shù)目。更具體地,線程數(shù)目管理器108可以被配置為在當(dāng)前正在計算的任務(wù)104的數(shù)據(jù)尺寸保持固定并恒定的時間期間選擇最優(yōu)線程數(shù)目。
[0041]同時,任務(wù)大小管理器110可以被配置為選擇用于任務(wù)104的最優(yōu)數(shù)據(jù)尺寸。更具體地,任務(wù)大小管理器110可以被配置為在關(guān)聯(lián)的線程數(shù)目保持固定并恒定的時間期間選擇最優(yōu)線程數(shù)目。
[0042]此外,優(yōu)化器112可以被配置為以交替(interleaving)、迭代的方式進(jìn)行線程數(shù)目108和任務(wù)大小管理器110的操作,從而獲得整體、最優(yōu)的并行處理配置。例如,基于由線程數(shù)目管理器108進(jìn)行的最優(yōu)線程數(shù)目的選擇,優(yōu)化器112可以被配置為向任務(wù)大小管理器110提供選擇的、最優(yōu)線程數(shù)目,用作在通過任務(wù)大小管理器110進(jìn)行最優(yōu)任務(wù)大小的選擇期間將利用的相關(guān)固定線程數(shù)目。反之,但是類似地,基于通過任務(wù)大小管理器110進(jìn)行的最優(yōu)任務(wù)大小的作為結(jié)果的選擇,優(yōu)化器112可以被配置為向線程數(shù)目管理器108提供作為結(jié)果的任務(wù)大小,用作在更新的最優(yōu)線程數(shù)目的選擇期間將被使用的相關(guān)固定任務(wù)大小。以這種方式,優(yōu)化器112可以看管(oversee)管理器108、110的迭代的交替操作,從而確定最優(yōu)線程數(shù)目和相應(yīng)的最優(yōu)任務(wù)大小的最終結(jié)果,該最優(yōu)線程數(shù)目和相應(yīng)的最優(yōu)任務(wù)大小的最終結(jié)果用作定義結(jié)果的、整體并行處理配置的基礎(chǔ)。
[0043]在上面描述的操作期間,以及在此處的有關(guān)操作期間,管理器108、110和優(yōu)化器112可以利用由響應(yīng)時間監(jiān)視器114提供的響應(yīng)時間測量。S卩,響應(yīng)時間管理器114可以一般被配置為在并行處理配置的某一參數(shù)集合適用的時間期間、測量或量化或刻畫平臺106為完成計算所需的時間的長度。
[0044]例如,如上面提到的,優(yōu)化器112可以被配置為向線程數(shù)目管理器108分配固定的任務(wù)大小,因此線程數(shù)目管理器108可以前進(jìn)來迭代地或累進(jìn)地測試不同的線程數(shù)目用于其為最優(yōu)線程數(shù)目的潛在選擇。下面更詳細(xì)地描述用于線程數(shù)目管理器108的這種操作的具體示例技術(shù),但是通常,可以清楚知道,線程數(shù)目管理器108可以前進(jìn)來利用固定的任務(wù)大小實現(xiàn)多個不同的線程數(shù)目用于運行任務(wù)104。對于嘗試/考慮的每個線程數(shù)目,可以利用響應(yīng)時間監(jiān)視器114來向線程數(shù)目管理器108提供相應(yīng)的處理時間。以這種方式,線程數(shù)目管理器管理器108可以被配置為比較每個嘗試/潛在的線程數(shù)目的相對處理時間,從而選擇提供最小處理時間的線程數(shù)目作為最優(yōu)線程數(shù)目。
[0045]以類型的方式,任務(wù)大小管理器110可以被配置為當(dāng)使用固定線程數(shù)目執(zhí)行并行處理時利用響應(yīng)時間監(jiān)視器來選擇最優(yōu)任務(wù)大小。換句話說,例如,對于給定的、固定線程數(shù)目,任務(wù)大小管理器110可以查找可用的、潛在任務(wù)大小的解空間,以便確定選擇的、最優(yōu)任務(wù)大小。在如此做的過程中,任務(wù)大小管理器110可以比較對于在解空間之內(nèi)的各個任務(wù)大小實現(xiàn)的處理時間,以便從而嘗試選擇提供最小或最優(yōu)處理時間的任務(wù)大小。從而,如上面關(guān)于線程數(shù)目管理器108提到的,響應(yīng)時間監(jiān)視器114可以被配置為測量或刻畫平臺106的相關(guān)部分的并行處理時間,以便從而向任務(wù)大小管理器110提供有意義地比較不同的任務(wù)大小的能力,從而選擇最優(yōu)任務(wù)大小。
[0046]在示例實現(xiàn)中,如下面關(guān)于圖7-圖8更詳細(xì)描述的,管理器108、110可以被配置為分別識別潛在線程數(shù)目和任務(wù)大小的搜索空間,然后執(zhí)行,例如,折半搜索或二次(quadratic)搜索以分別探索相關(guān)搜索空間并識別最優(yōu)線程數(shù)目和任務(wù)大小,在執(zhí)行這種搜索過程中,例如,管理器108、110可以迭代地選擇潛在線程數(shù)目/任務(wù)大小、使用該潛在線程數(shù)目/任務(wù)大小參數(shù)(基于通過平臺106的例子任務(wù)的運行,如響應(yīng)時間監(jiān)視器114測量的)獲得與運行例子任務(wù)的并行處理關(guān)聯(lián)的性能測量。以這種方式,如果結(jié)果處理時間表示超過當(dāng)前基準(zhǔn)處理時間的改進(jìn),則隨著處理時間的新的當(dāng)前基準(zhǔn)值,在隨后的迭代中可以采用關(guān)聯(lián)的線程數(shù)目/任務(wù)大小處理參數(shù)。否則,與處理時間的當(dāng)前基準(zhǔn)值關(guān)聯(lián)的線程數(shù)目/任務(wù)大小參數(shù)可以向前傳送用于隨后的迭代。
[0047]從而,實際上,優(yōu)化器112可以被配置為利用管理器108、110和響應(yīng)時間監(jiān)視器114的以上描述的功能以動態(tài)、快速、靈活的方式來確定最優(yōu)并行處理配置。特別地,當(dāng)選擇最優(yōu)任務(wù)大小時,優(yōu)化器112可以被配置為使得管理器108、110運行迭代循環(huán),在該迭代循環(huán)中,由線程數(shù)目管理器108在利用固定任務(wù)大小時提供的選擇的線程數(shù)目成為由任務(wù)大小管理器110在選擇最優(yōu)任務(wù)大小時使用的固定線程數(shù)目。進(jìn)而,然后,在線程數(shù)目管理器108在選擇新的、更新的最優(yōu)線程數(shù)目過程中的后續(xù)操作期間可以利用如此選擇的最優(yōu)任務(wù)大小作為更新的、固定任務(wù)大小。如下面詳細(xì)描述的,這個迭代循環(huán)可以持續(xù)直到優(yōu)化器112確定通過隨后迭代幾乎沒有或完全沒有產(chǎn)生增長的改進(jìn),或直到已經(jīng)發(fā)生了預(yù)先配置的迭代次數(shù)或時間推移。
[0048]因此并行運行管理器102可以被配置為識別、選擇和利用最優(yōu)并行處理配置,包括如剛剛描述的,對于最優(yōu)線程數(shù)目和最優(yōu)任務(wù)大小的選擇值。此外,并行運行管理器102可以在幾乎沒有或完全沒有關(guān)于平臺106的性質(zhì)的先驗知識的情況下完成上述操作。替代地,并行運行管理器102可以以依靠在平臺106的實際的操作期間獲得的反饋的方式,在平臺106的運行時間期間確定最優(yōu)并行處理配置。例如,可以在系統(tǒng)100的初始操作期間、利用對于選擇最優(yōu)并行處理參數(shù)的測試目的而選擇的樣本任務(wù)、使用以上描述的技術(shù)確定最優(yōu)并行處理參數(shù)。
[0049]如此,在平臺106運行任務(wù)104的初始操作和/或參數(shù)化期間,并行運行管理器102可以以剛剛描述的方式操作,以便確定將要利用的包括最優(yōu)線程數(shù)目和關(guān)聯(lián)的最優(yōu)任務(wù)大小的并行處理參數(shù)。以這種方式,可以進(jìn)行任務(wù)104的并行處理。
[0050]然而,隨著時間的進(jìn)行,可能發(fā)生可以導(dǎo)致選擇的并行處理參數(shù)成為次最優(yōu)的改變。例如,平臺106的先前不可用的處理核可以成為可用的(或反之亦然),或者新的處理核可以添加到平臺106。同時,任務(wù)104可以隨時間被改變或更新。
[0051]因此,示出的優(yōu)化器112包括最優(yōu)驗證器116,最優(yōu)驗證器116被配置為驗證先前選擇的并行處理參數(shù)是否已經(jīng)隨時間進(jìn)行而成為次最優(yōu)的。例如,在平臺106已經(jīng)使用選擇的、最優(yōu)并行處理參數(shù)來并行運行任務(wù)104達(dá)指定的時間段之后,最優(yōu)驗證器116可以被配置為將并行處理參數(shù)的一些或全部從它們的當(dāng)前值改變,以便確定如此改變的并行處理參數(shù)是否弓I起整體并行處理速度的改進(jìn)。
[0052]如果這種改變沒有引起并行處理速度的改進(jìn),則并行運行管理器102可以繼續(xù)使用已經(jīng)選擇的并行處理參數(shù)來操縱平臺106。然而,如果變更的并行處理參數(shù)表明在并行處理速度方面的改進(jìn),則最優(yōu)驗證器116可以觸發(fā)優(yōu)化器112以選擇新的、更新的(updated)并行處理參數(shù)。換句話說,如描述的,優(yōu)化器112可以再次利用管理器108、110和響應(yīng)時間監(jiān)視器114以選擇最優(yōu)線程數(shù)目和關(guān)聯(lián)的最優(yōu)任務(wù)大小。
[0053]如此,總之,線程數(shù)目管理器108—般被配置為輸入或確定固定任務(wù)大小、多個可用的線程數(shù)目和關(guān)于一個或多個使用平臺106運行的基準(zhǔn)任務(wù)來自響應(yīng)時間監(jiān)視器114的反饋,并輸出選擇的、最優(yōu)線程數(shù)目。同時,類似地,任務(wù)大小管理器110被配置為輸入線程數(shù)目和多個可用的或潛在任務(wù)大小、以及關(guān)于使用平臺106的基準(zhǔn)任務(wù)的運行的來自響應(yīng)時間監(jiān)視器114的反饋。然后,如描述的,優(yōu)化器112可以利用管理器108、110中的一個的輸出作為管理器108、110的另一個的輸入,從而運行迭代循環(huán),直到迭代循環(huán)完成,并且線程數(shù)目和任務(wù)大小的當(dāng)前值此后被提供給平臺106以供隨后用在任務(wù)104的并行處理中。然后,不時地,可以利用驗證器116測試當(dāng)前值是否可以或?qū)⒈桓倪M(jìn),并且,如果是的話,可以使得優(yōu)化器112重復(fù)以上描述的迭代循環(huán)以獲得用于線程數(shù)目和任務(wù)大小的新值。
[0054]圖1提供可以被利用以提供此處描述的各種特征和功能的示例結(jié)構(gòu)和相關(guān)元件。例如,除了已經(jīng)描述的各種元件之外,圖1還包括至少一個計算設(shè)備118,該計算設(shè)備118包括至少一個處理器118a和計算機(jī)可讀存儲介質(zhì)118b。在示例中,可以利用計算機(jī)可讀存儲介質(zhì)118b來存儲指令,所述指令當(dāng)由所述至少一個計算設(shè)備118的至少一個處理器118a運行時可以被配置為提供并行運行管理器102和有關(guān)的特征和功能。
[0055]此外,計算機(jī)可讀存儲介質(zhì)118b可以實際上表示在并行運行管理器102的操作期間可以利用的任何合適的計算機(jī)存儲器。例如,合適的存儲器可以用來存儲任務(wù)104,或存儲在并行運行管理器102的操作的中間階段期間產(chǎn)生的數(shù)據(jù)。
[0056]雖然圖1名義上示出運行并行運行管理器102的單個計算設(shè)備,但是從圖1并且從以上描述可以清楚知道,事實上,可以利用多個計算設(shè)備,例如,分布式計算系統(tǒng),以實現(xiàn)并行運行管理器102。例如,并行運行管理器102的部分可以在這種分布式計算系統(tǒng)的第一部分中運行,同時其他部分可以在分布式系統(tǒng)之內(nèi)的其它地方運行。
[0057]更一般地,可以清楚知道,圖1中示出的任何單個元件可以使用兩個或多個子部件來實現(xiàn),以提供相同的或相似的功能。反之,圖1中示出的任何兩個或多個元件可以被組合以提供單個元件,該單個元件提供相同的相似的功能。具體地,如上面提到的,雖然任務(wù)104與所述計算設(shè)備102分離地示出,但是事實上可以使用所述至少一個計算設(shè)備102存儲任務(wù)104。
[0058]類似地,所述至少一個計算設(shè)備118與平臺106分離地示出,并且例如,可以被包括作為分布式系統(tǒng)的個別的元件。然而,在示例實現(xiàn)中,可以清楚地是,可以組合這兩個元件,以使得并行運行管理器102在平臺106自身的情境(context)中操作。
[0059]如此,關(guān)于示例特征和術(shù)語示出和描述圖1,應(yīng)該將其理解為僅為了示例起見而提供,根本不是作為此處沒有明確地描述的圖1的各種潛在實現(xiàn)的限制。例如,在本描述中,由線程數(shù)目管理器108輸出的線程數(shù)目,以及由任務(wù)大小管理器110輸出的任務(wù)大小可以被稱為最優(yōu)線程數(shù)目和/或最優(yōu)任務(wù)大小。在這點上,可以清楚地是,術(shù)語“最優(yōu)”不需要指嚴(yán)格字面意義上地(literally)使平臺106的處理時間最優(yōu)化的值。例如,術(shù)語“最優(yōu)”可以指的是考慮到現(xiàn)有的約束的最佳可用的線程數(shù)目或任務(wù)大小。由優(yōu)化器112執(zhí)行的迭代循環(huán)的數(shù)目可以通過例如時間來限制,從而最優(yōu)線程數(shù)目/任務(wù)大小表示可以使用可用的時間量獲得的最優(yōu)值。
[0060]圖2是示出圖1的系統(tǒng)100的示例操作的流程圖200。在圖2的示例中,作為分離的、順序操作示出操作202-210,并且包括如此處描述的迭代循環(huán)。然而,可以清楚知道,可以與示出和描述不同地運行多個操作202-210。例如,可以以嵌套方式執(zhí)行操作202-210的變體,和/或可以包括額外的或可替換的操作(未具體地示出)。類似地,可以以與示出的不同的次序執(zhí)行操作,并且可以省略一個或多個操作。
[0061]在圖2的示例中,可以確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺(202)。例如,并行運行管理器102可以被配置為識別平臺106和可用的處理核106A...106N,或其子集,以供在執(zhí)行任務(wù)104的并行處理中使用。[0062]從所述多個可用的處理線程中,并且對于固定任務(wù)大小,可以選擇線程數(shù)目(204)。例如,線程數(shù)目管理器108可以利用固定任務(wù)大小(例如,在迭代循環(huán)的較早的迭代的完成之后從任務(wù)大小管理器110接收到的先前選擇的任務(wù)大小),并且,結(jié)合來自響應(yīng)時間管理器114的反饋,可以從示例中由處理核106A...106N表示的多個潛在線程數(shù)目中選擇被選擇的線程數(shù)目。實際上,例如,如描述的,線程數(shù)目管理器108可以使用固定任務(wù)大小以及可用的處理線程和關(guān)聯(lián)的線程數(shù)目中的各種線程數(shù)目(其中要考慮的不同線程數(shù)目可以在可用的/潛在的線程數(shù)目的折半搜索或二次搜索情境中獲得)來運行基準(zhǔn)任務(wù)。然后,可以使用響應(yīng)時間管理器114測量或量化基準(zhǔn)任務(wù)的并行運行,從而向線程數(shù)目管理器108提供反饋以用于對通過各種考慮的線程數(shù)目獲得的處理結(jié)果進(jìn)行比較,從而選擇與最低處理時間關(guān)聯(lián)的線程數(shù)目作為選擇的線程數(shù)目。
[0063]從多個可用的處理任務(wù)大小中并使用選擇的線程數(shù)目,可以選擇任務(wù)大小(206)。例如,任務(wù)大小管理器110可以執(zhí)行如剛剛關(guān)于線程數(shù)目管理器108描述的相似的操作,不過是使用剛剛選擇的線程數(shù)目作為將要考慮的固定線程數(shù)目,結(jié)合可用的任務(wù)大小的各種任務(wù)大小,再結(jié)合如由響應(yīng)時間114確定的、通過平臺106運行的基準(zhǔn)任務(wù)的處理的度量。
[0064]可以運行迭代循環(huán),在迭代循環(huán)中選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且更新的選擇線程數(shù)目用于獲得更新的選擇的任務(wù)大小(208)。例如,優(yōu)化器112可以被配置為使用管理器108、110運行迭代循環(huán),以使得由線程數(shù)目管理器108提供的線程數(shù)目由任務(wù)大小管理器110利用以確定新的任務(wù)大小,該新的任務(wù)大小隨后由線程數(shù)目管理器108使用以獲得更新的線程數(shù)目。
[0065]可以完成迭代循環(huán),并且可以提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以便由并行運行平臺在并行運行任務(wù)中使用(210)。例如,優(yōu)化器112可以輸出在指定的迭代次數(shù)之后和/或在經(jīng)過指定的時間量之后存在的當(dāng)前線程數(shù)目/任務(wù)大小,以便由平臺106在運行任務(wù)104中使用。
[0066]圖3A和圖3B是分別示出作為線程數(shù)目和任務(wù)大小的函數(shù)的并行處理性能的圖。4A和圖4B是示出作為線程數(shù)目和任務(wù)大小兩者的函數(shù)的處理性能的三維圖,其中,如所不,圖4A是并行處理性能的圖不的正視圖,而圖4B是相同圖不的側(cè)視圖。
[0067]例如,如上面提到的,例如,可以關(guān)于與用于預(yù)測期貨銷售的銷售預(yù)測算法有關(guān)的任務(wù)的運行來構(gòu)造圖3A-圖4B的圖,該任何包括可以分為多個小的任務(wù)的作業(yè),該多個小的任務(wù)具有多個將要使用平臺106并行處理的數(shù)據(jù)的多個日志、。如描述的,在這些任務(wù)的運行之后,可以合并結(jié)果,因此可以創(chuàng)建新的作業(yè),并且可以以循環(huán)重復(fù)所述處理,直到滿足某一條件。
[0068]在上面提到的這些和其它示例上下文中,數(shù)據(jù)分配不一定均勻,從而一些任務(wù)可以比其它任務(wù)運行更長時間。如描述的,這可能導(dǎo)致一些可用的線程/核空閑直到全部任務(wù)完成,這通常導(dǎo)致并行處理益處的減少。還如上面提到的,任務(wù)的相對大小越大,這種不平衡負(fù)載的計算開銷可能更高。另一方面,更大的任務(wù)可能減少相對于對并行運行的每個任務(wù)開始新的/更多的線程的成本的計算開銷。
[0069]圖3A和圖3B如此示出使用一個和72個處理線程之間的、在工作站上運行的這種銷售預(yù)測算法的性能測量,其中由線程中的一個處理的每個任務(wù)的大小可以是從I個數(shù)據(jù)塊到32個數(shù)據(jù)塊的范圍。如此,圖3A示出增加線程的數(shù)目可以導(dǎo)致性能增加,直到在點302處的拐點,在該拐點之后由于相對于提供的并行性的益處的計算開銷的相對量而引起性能降低。
[0070]類似地,關(guān)于圖3B,圖3B示出增加分配給每個線程的任務(wù)的大小使得系統(tǒng)性能方面的初始增加,這是因為向線程分配任務(wù)的計算開銷相對于在并行運行期間不平衡負(fù)載的存在的計算開銷而降低。然而,在拐點304和此后,當(dāng)分配給每個線程的任務(wù)的大小繼續(xù)增加時,與作為結(jié)果的不平衡負(fù)載關(guān)聯(lián)的計算開銷壓倒具有更少的任務(wù)分配的益處。
[0071 ] 同時,如上面提到的,圖4A和圖4B分別示出關(guān)于線程數(shù)目和任務(wù)大小兩者示出的性能測量的前視圖和側(cè)視圖。如圖4A和圖4B的示例中所示的,有效地形成并行運行管理器102的搜索空間的結(jié)果空間可以形象化為碗形狀,這是因為處理時間在至少一個局部最小值附近降低。
[0072]因此圖3A-圖4B示出線程數(shù)目和任務(wù)大小是可選擇的變量,所述變量對并行處理的總效率具有顯著的影響。此外,用于最有效的并行性的最優(yōu)線程數(shù)目和任務(wù)大小可能在不同的情境中顯著不同。例如,并行處理參數(shù)可能對于不同的數(shù)據(jù)集和/或在其上運行并行處理的不同類型的平臺而不同。
[0073]從而,圖1的系統(tǒng)100提供并行處理參數(shù)的反饋驅(qū)動調(diào)節(jié),而不需要關(guān)于平臺106和/或任務(wù)104的特別知識。更具體地,如描述的,圖1的系統(tǒng)100可以被配置為基于從樣本或基準(zhǔn)任務(wù)的并行運行而接收到的反饋來提供線程數(shù)目和任務(wù)大小的調(diào)節(jié),從而探索圖4A、圖4B的示例中所示的解空間,以試圖找到其局部最小值。
[0074]在更具體的示例中,如下面更詳細(xì)描述的,只要響應(yīng)時間持續(xù)被改進(jìn)則任務(wù)大小就可以遞增地增加。為了逼近最優(yōu)/最小點,可以以導(dǎo)致圖4A、圖4B的解空間的折半搜索的方式遞增地改變?nèi)蝿?wù)大小。如描述的,可以按類似方式靠近最優(yōu)線程數(shù)目。如此處描述的,因為并行性效率受線程數(shù)目和任務(wù)大小兩者的影響,所以可以通過以交替方式探索最優(yōu)任務(wù)大小和線程數(shù)目來考慮圖4A、圖4B的解空間。
[0075]隨著時間進(jìn)行,如上面關(guān)于驗證器116描述的,可能關(guān)于平臺106和/或任務(wù)104發(fā)生的改變可能使得線程數(shù)目和任務(wù)大小的先前選擇的值成為次最優(yōu)的。為了測試這是否已經(jīng)發(fā)生,驗證器116可以通過有意改變線程數(shù)目和任務(wù)大小的值、然后將來自先前值的結(jié)果與使用新值獲得的結(jié)果進(jìn)行比較來動態(tài)地調(diào)整線程數(shù)目和任務(wù)大小。因此,如果來自新值的結(jié)果提供更有效的并行性,則優(yōu)化器112可以被配置為計算一套新的并行處理參數(shù)。實際上,這種驗證處理之間的間隔可以變化,因為驗證處理自身涉及降低整體并行性效率的計算開銷。從而,驗證器116可以以最小化這種計算開銷的方式被配置為選擇驗證之間的間隔,同時也最小化在平臺106利用次最優(yōu)的效率運行期間的時間的量。
[0076]圖5-圖9,以及相應(yīng)代碼部分1-5,提供以上描述的圖1的系統(tǒng)100的操作的更詳細(xì)示例,或其變體。具體地,例如,圖5是示出支配用于找到和保持最優(yōu)并行處理參數(shù)的整體處理的示例操作的流程圖500。
[0077]在圖5的示例中,可以找到最優(yōu)并行運行配置和關(guān)聯(lián)的并行處理參數(shù)(502)。例如,并行運行管理器102可以找到線程數(shù)目和任務(wù)大小的最優(yōu)值,如此處描述的。在這點上,下面關(guān)于圖6來描述優(yōu)化器112的操作的更具體的示例,并且下面關(guān)于圖7和圖8分別示出和描述線程數(shù)目管理器108和任務(wù)大小管理器110的關(guān)聯(lián)的操作。
[0078]然后,在并行運行配置的初始確定之后,可以使用如確定的最優(yōu)并行運行配置來運行任務(wù)(504)。也就是說,基于并行運行管理器102在確定最優(yōu)線程數(shù)目和任務(wù)大小的當(dāng)前值的初始操作的完成,可以在使得平臺106利用這些結(jié)果值運行任務(wù)104。
[0079]只要相關(guān)的、確定的時間段尚未過去(506),平臺106就可以使用線程數(shù)目和任務(wù)大小的當(dāng)前值繼續(xù)這種運行。例如,如描述的,驗證器116可以被配置為在并行處理參數(shù)的初始確定之后確定時間的間隔,其中,如還描述的,可以清楚知道,這個時間間隔的值或持續(xù)時間自身可以被動態(tài)地調(diào)整。
[0080]在示例中,一旦相關(guān)時間段的持續(xù)時間已經(jīng)過去(506),驗證器116就可以前進(jìn)來檢驗當(dāng)前配置是否保持最優(yōu)(508)。下面,例如,關(guān)于圖9更詳細(xì)地提供關(guān)于這一點的驗證器116的具體的示例操作。
[0081]然后,如由驗證器116確定的,如果當(dāng)前配置保持最優(yōu)(510),則使用當(dāng)前并行運行配置連同平臺106的任務(wù)104的運行可以繼續(xù)(504)。另一方面,如果驗證器116確定并行處理參數(shù)的當(dāng)前值不是最優(yōu)(510),則驗證器116可以使得優(yōu)化器112重新運行必要的操作用于找到新的、更新的最優(yōu)并行運行配置(502)。
[0082]代碼部分I提供在實現(xiàn)流程圖500的操作中使用的示例偽代碼。
[0083]
#Entry Pointto find an optimal parallel execunon with proper numbers of thread and task
[0084]
Stzei also check the optimal state by the heart beat
Procedure Run_ParaIlel_Execution (CountOfProbeForThread,




Co u ntOfProbe ForT askSize,



CountOfProbeForTestOptimal,



TtmeSpanForHeartBeatCheck)
Begin

//Try to find an optimal parallel execution
Find_Optimal_Parallel_Execution (countofProbeFonhread,





Cou nt Of Pro be F orT askSize,





Co untOfProbe ForT estO ptimal)
Run task on the optimal parallel execution in specified Time Span

IsOptimaIState = Check_if_it_is_stiil_Optimal(NUrr OfThreadi






TaskSize,





CountOf ProbeForTestOptimai)

If IsOptimalState = true

Sleep N seconds and re-check it again.//N: From I to NA2, where NA2 < TimeSpanForHeartBeatCheck

Else

//Re-ffnd the optimal paraBe( execution and run it again the lasted number of threads and task size

RU H_ParaI lei—ExeCUtiOn (CountOfPi obeForThr ead,.Cou n t Of P rob eFo rT askSi ze;




CountOfProbeForTestOptrmal,




TimeSpan ForHeart BeatCheck)
End
[0085]代碼部分I
[0086]如所示,代碼部分I運行名為“run—parallel—execution”的主程序,其接受四個參數(shù)“count of probe for thread,,,“count of probe for task size,,,count of probefor test optimal”和“time span for heartbeat check”作為輸入。如從下面包括代碼部分 2-5 的描述中可以清楚地,參數(shù)“count of probe for thread, ” “count of probe fortask size, ”和“count of probe for test optimal”全部指的是在分別接受線程數(shù)目、任務(wù)大小與迭代之間的值為已經(jīng)收斂到其最優(yōu)值之前運行的迭代的指定最大數(shù)目。同時,參數(shù)“time span for heartbeat check”是指與定義在驗證器116的多個驗證操作之間的時間量關(guān)聯(lián)的參數(shù),如此處描述的。
[0087]如代碼部分I所示,在程序run_parallel_execution之內(nèi),運行子程序“find_optimal_parallel_execution”,例如,下面關(guān)于圖6和代碼部分2詳細(xì)描述該子程序。一般說來,如可以從上面理解的,這個子程序被設(shè)計為使管理器108、110的操作交錯(interleave)直到達(dá)到最優(yōu)并行運行配置。
[0088]隨后,如代碼部分I和上面關(guān)于圖5描述的所示,可以使用最優(yōu)并行運行配置來運行任務(wù)104達(dá)指定時間跨度。此后,運行子程序“check_if_it_is_still_optimal”,如下面關(guān)于圖9和代碼部分5更詳細(xì)地描述的。通常,同樣,可以清楚知道,子程序通常表示驗證器116的示例操作,如此處描述的。如果子程序確定最優(yōu)并行運行配置保持最優(yōu)(例如,“optimal state=true”),則驗證器116可以睡眠N秒,如代碼部分I所示。否則,驗證器116可以指示優(yōu)化器112重新運行主程序run_parallel_execution。
[0089]圖6是示出用于確定最優(yōu)并行運行配置的示例操作的流程圖600,例如,如上面關(guān)于圖5的操作502描述的。具體地,如所示,流程圖600可以從最優(yōu)線程數(shù)目的選擇開始(602),后面是最優(yōu)任務(wù)大小的選擇(604)。例如,優(yōu)化器112可以指引線程數(shù)目管理器108使用固定任務(wù)大小 來選擇這樣的最優(yōu)線程數(shù)目。下面提供關(guān)于這一點的如上所述的線程數(shù)目管理器108的操作,以及,例如,關(guān)于圖7和代碼部分3在下面提供更詳細(xì)的示例。
[0090]此后,類似地,優(yōu)化器112可以指示任務(wù)大小管理器110使用剛剛選擇的最優(yōu)線程數(shù)目作為固定線程數(shù)目值來選擇最優(yōu)任務(wù)大小。上面還描述了關(guān)于這一點的任務(wù)大小管理器110的操作,以及,在下面還例如關(guān)于圖8和代碼部分4提供這些操作的更詳細(xì)示例。
[0091]如由優(yōu)化器112確定的,如果結(jié)果的并行運行配置是最優(yōu)的(606,608),則程序可以前進(jìn)到圖5的操作504。否則,迭代可以繼續(xù)進(jìn)行關(guān)于更新的最優(yōu)線程數(shù)目的進(jìn)一步選擇(602),這次利用最近確定的任務(wù)大小作為固定任務(wù)大小。如此處描述的,用于確定配置是否最優(yōu)(608)的一個技術(shù)是指定流程圖600的迭代的最大數(shù)目,以便最優(yōu)狀態(tài)的確定相當(dāng)于確定是否已經(jīng)達(dá)到迭代的指定最大數(shù)目。
[0092]代碼部分2示出用于運行圖6的操作602-608的示例偽代碼。
[0093]
【權(quán)利要求】
1.一種包括記錄在計算機(jī)可讀介質(zhì)上、并且可由至少一個處理器運行的指令的系統(tǒng),所述系統(tǒng)包括: 并行運行管理器,被配置為使得所述至少一個處理器確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺,所述并行運行管理器包括 線程數(shù)目管理器,被配置為從所述多個可用的處理線程中、并且對于固定任務(wù)大小,選擇被選擇的線程數(shù)目; 任務(wù)大小管理器,被配置為從多個可用的任務(wù)大小中、并且使用該被選擇的線程數(shù)目,選擇被選擇的任務(wù)大?。灰约? 優(yōu)化器,被配置為運行迭代循環(huán),在該迭代循環(huán)中該被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且所述更新的選擇的線程數(shù)目被用于獲得更新的選擇的任務(wù)大小,并且優(yōu)化器還被配置為完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
2.如權(quán)利要求1所述的系統(tǒng),其中所述并行運行管理器包括被配置為監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間的響應(yīng)時間監(jiān)視器。
3.如權(quán)利要求1所述的系統(tǒng),其中所述線程數(shù)目管理器被配置為在使用現(xiàn)有的線程數(shù)目時從響應(yīng)時間監(jiān)視器接收對于任務(wù)的基準(zhǔn)處理時間,并且還被配置為對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用所述隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。
4.如權(quán)利要求3所述的系統(tǒng),其中所述線程數(shù)目管理器被配置為執(zhí)行隨后的線程數(shù)目的解空間的二次探查,以從其中選擇隨后的線程數(shù)目用于對比基準(zhǔn)處理時間的迭代測試。
5.如權(quán)利要求1所述的系統(tǒng),其中所述任務(wù)大小管理器被配置為在使用現(xiàn)有的任務(wù)大小時從響應(yīng)時間監(jiān)視器接收對于任務(wù)的基準(zhǔn)處理時間,并且還被配置為對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用所述隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。
6.如權(quán)利要求5所述的系統(tǒng),其中所述任務(wù)大小管理器被配置為執(zhí)行隨后的任務(wù)大小的解空間的探查,其中所述解空間包括可以同等地分配給每個處理線程的任務(wù)大小。
7.如權(quán)利要求1所述的系統(tǒng),其中所述并行運行管理器包括驗證器,被配置為在提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài)。
8.如權(quán)利要求7所述的系統(tǒng),其中所述驗證器被配置為: 使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間; 改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間;以及 基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。
9.如權(quán)利要求7所述的系統(tǒng),其中所述驗證器被配置為動態(tài)地調(diào)整在當(dāng)前線程數(shù)目和/或任務(wù)大小的多個驗證的各個之間的時間段。
10.一種用于運行存儲在計算機(jī)可讀存儲介質(zhì)上的指令的計算機(jī)實現(xiàn)的方法,所述方法包括: 確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺;從所述多個可用的處理線程中、并且對于固定任務(wù)大小,選擇被選擇的線程數(shù)目; 從多個可用的任務(wù)大小中、并且使用該被選擇的線程數(shù)目,選擇被選擇的任務(wù)大?。贿\行迭代循環(huán),在迭代循環(huán)中該被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且更新的選擇的線程數(shù)目用于獲得更新的選擇的任務(wù)大小;以及 完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
11.如權(quán)利要求10所述的方法,包括: 監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間;以及 基于監(jiān)視的運行時間選擇該被選擇的線程數(shù)目和該被選擇的任務(wù)大小。
12.如權(quán)利要求10所述的方法,其中從所述多個可用的處理線程中、并且對于固定任務(wù)大小,選擇被選擇的線程數(shù)目,包括: 在使用現(xiàn)有的線程數(shù)目時接收對于任務(wù)的基準(zhǔn)處理時間;以及對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。
13.如權(quán)利要求10所述的方法,其中從多個可用的任務(wù)大小中、并且使用被選擇的線程數(shù)目,選擇被選擇的任務(wù)大小,包括: 使用現(xiàn)有的任務(wù)大小接收對于任務(wù)的基準(zhǔn)處理時間;以及 對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。
14.如權(quán)利要求10所述的方法,包括在提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài),其中所述驗證包括: 使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間; 改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間; 以及 基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。
15.一種切實地具體實現(xiàn)在計算機(jī)可讀存儲介質(zhì)上并包括指令的計算機(jī)程序產(chǎn)品,所述指令當(dāng)被運行時,被配置為: 確定被配置為使用多個可用的處理線程并行運行任務(wù)的并行運行平臺; 從所述多個可用的處理線程中、并且對于固定任務(wù)大小,選擇被選擇的線程數(shù)目; 從多個可用的任務(wù)大小中、并且使用該被選擇的線程數(shù)目,選擇被選擇的任務(wù)大小;運行迭代循環(huán),在迭代循環(huán)中該被選擇的任務(wù)大小被用作更新的固定任務(wù)大小以獲得更新的選擇的線程數(shù)目,并且更新的選擇的線程數(shù)目用于獲得更新的選擇的任務(wù)大?。灰约? 完成迭代循環(huán)并提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小以供并行運行平臺在并行運行任務(wù)中使用。
16.如權(quán)利要求15所述的計算機(jī)程序產(chǎn)品,其中所述指令當(dāng)被運行時,還被配置為: 監(jiān)視通過并行運行平臺運行的任務(wù)的運行時間;以及 基于監(jiān)視的運行時間選擇該被選擇的線程數(shù)目和該被選擇的任務(wù)大小。
17.如權(quán)利要求16所述的計算機(jī)程序產(chǎn)品,其中所述被選擇的線程數(shù)目的選擇包括: 在使用現(xiàn)有的線程數(shù)目時接收對于任務(wù)的基準(zhǔn)處理時間;以及 對比基準(zhǔn)處理時間迭代地測試隨后的線程數(shù)目,包括每當(dāng)隨后的線程數(shù)目與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用隨后的線程數(shù)目替換現(xiàn)有的線程數(shù)目,直到獲得被選擇的線程數(shù)目。
18.如權(quán)利要求16所述的計算機(jī)程序產(chǎn)品,其中所述被選擇的任務(wù)大小的選擇包括: 在使用現(xiàn)有的任務(wù)大小時接收對于任務(wù)的基準(zhǔn)處理時間;以及 對比基準(zhǔn)處理時間迭代地測試隨后的任務(wù)大小,包括每當(dāng)隨后的任務(wù)大小與優(yōu)于基準(zhǔn)處理時間的并行處理時間關(guān)聯(lián)時即利用隨后的任務(wù)大小替換現(xiàn)有的任務(wù)大小,直到獲得被選擇的任務(wù)大小。
19.如權(quán)利要求15所述的計算機(jī)程序產(chǎn)品,其中所述指令當(dāng)被運行時,還被配置為: 在提供當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小之后經(jīng)過一段時間以后,驗證當(dāng)前線程數(shù)目和當(dāng)前任務(wù)大小的持續(xù)最優(yōu)狀態(tài)。
20.如權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中所述驗證包括: 使用當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小確定關(guān)于基準(zhǔn)任務(wù)的基準(zhǔn)處理時間; 改變當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小并隨之獲得更新的基準(zhǔn)處理時間; 以及 基于基準(zhǔn)處理時間與更新的基準(zhǔn)處理時間的比較,指示當(dāng)前線程數(shù)目和/或當(dāng)前任務(wù)大小不再是最優(yōu)的。
【文檔編號】G06F9/38GK103543987SQ201210240600
【公開日】2014年1月29日 申請日期:2012年7月11日 優(yōu)先權(quán)日:2012年7月11日
【發(fā)明者】黎文憲, 賈學(xué)鋒 申請人:Sap股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
左贡县| 长阳| 徐州市| 铅山县| 江源县| 翼城县| 阜城县| 桂阳县| 华阴市| 土默特左旗| 延川县| 宜城市| 连平县| 林州市| 义乌市| 彭水| 永修县| 耿马| 福海县| 汶川县| 凤翔县| 黑龙江省| 高清| 丘北县| 嵩明县| 大丰市| 浦北县| 泰和县| 肇源县| 股票| 湘潭县| 盘山县| 五常市| 习水县| 祁连县| 昌江| 廉江市| 黔西| 兰溪市| 屏边| 茂名市|