本發(fā)明一般涉及信息處理系統(tǒng),更具體地涉及動態(tài)控制的工作負(fù)載執(zhí)行。
背景技術(shù):
隨著信息的價值和使用不斷增加,個人和企業(yè)尋求額外的方式來處理和存儲信息。用戶可以選擇的一個選項是信息處理系統(tǒng)。信息處理系統(tǒng)通常處理、編譯、存儲和傳輸用于商業(yè)、個人或其他目的的信息或數(shù)據(jù),從而允許用戶利用信息的價值。由于技術(shù)和信息處理需要和要求在不同的用戶或應(yīng)用之間有所變化,所以信息處理系統(tǒng)也可以根據(jù)處理的信息、信息的處理方式、處理、存儲或傳輸信息的多少以及處理、存儲或傳輸信息的速度和效率而有所變化。信息處理系統(tǒng)的變化允許信息處理系統(tǒng)為特定用戶或特定用途進(jìn)行通用或配置,諸如金融交易處理、航空公司預(yù)訂、企業(yè)數(shù)據(jù)存儲或全球通信。此外,信息處理系統(tǒng)可以包括可以被配置來處理、存儲和傳輸信息的各種硬件和軟件組件,并且可以包括一個或多個計算機(jī)系統(tǒng)、數(shù)據(jù)存儲系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)。
隨著信息處理系統(tǒng)中使用的硬件性能的提高,許多軟件組件和架構(gòu)可能無法有效利用可用硬件的性能。
技術(shù)實現(xiàn)要素:
在一方面,公開了一種用于優(yōu)化信息處理系統(tǒng)的工作負(fù)載的方法,包括接收對信息處理系統(tǒng)的工作負(fù)載請求,其指明用于在信息處理系統(tǒng)執(zhí)行的計算任務(wù)。基于所述工作負(fù)載請求,該方法可以包括確定計算任務(wù)的工作負(fù)載屬性,工作負(fù)載屬性包括計算任務(wù)對包括在信息處理系統(tǒng)中的硬件資源的依賴性。該方法還可以包括識別在信息處理系統(tǒng)中存在的硬件資源?;诖_定的工作負(fù)載屬性和識別的硬件資源,該方法可以包括確定用于計算任務(wù)的工作負(fù)載策略。在該方法中,工作負(fù)載策略可以指明用于在信息處理系統(tǒng)處執(zhí)行計算任務(wù)的硬件資源。該方法可以包括在信息處理系統(tǒng)實現(xiàn)工作負(fù)載策略,包括配置在工作負(fù)載策略中指定的硬件資源。該方法還可以包括根據(jù)工作負(fù)載策略在信息處理系統(tǒng)處執(zhí)行計算任務(wù)。
在另一方面,公開了至少一個非暫時性計算機(jī)可讀介質(zhì),其包括用于優(yōu)化在信息處理系統(tǒng)上的工作負(fù)載的計算機(jī)可讀指令,該指令可由處理器執(zhí)行。
在另一方面,公開了一種信息處理系統(tǒng),其用于優(yōu)化在信息處理系統(tǒng)上的工作負(fù)載。
附圖說明
為了更全面地了解本發(fā)明及其特征和優(yōu)點,現(xiàn)在參考以下結(jié)合附圖進(jìn)行的描述,其中:
圖1示出了信息處理系統(tǒng)的實施例的選定元件的框圖;
圖2是工作負(fù)載優(yōu)化的實施例的選定元件的框圖;
圖3是分布式工作負(fù)載優(yōu)化的實施例的選定元件的框圖;
圖4是工作負(fù)載優(yōu)化服務(wù)器的實施例的選定元件的框圖;
圖5示出了用于動態(tài)控制的工作負(fù)載執(zhí)行的方法的選定元件的流程圖;
圖6a和6b示出了用于動態(tài)控制的分布式工作負(fù)載執(zhí)行的方法的選定元件的流程圖;
圖7示出了用于優(yōu)化專有工作負(fù)載的方法的選定元件的流程圖;以及
圖8示出了由應(yīng)用動態(tài)控制的工作負(fù)載執(zhí)行的方法的選定元件的流程圖。
具體實施方式
在下面的描述中,通過示例闡述細(xì)節(jié)以便于對所公開的主題的討論。然而,對于本領(lǐng)域的普通技術(shù)人員來說顯而易見的是,所公開的實施例是示例性的,而不窮盡所有可能的實施例。
在本公開中,連字符形式的附圖標(biāo)記指的是元件的特定實例,不連字符形式的附圖標(biāo)記是指一般地或集體地表示的元件。因此,作為示例(附圖中未示出),設(shè)備“12-1”是指設(shè)備類的一種實例,其可以被統(tǒng)稱為設(shè)備“12”,并且其中任何一個可以一般地被稱為設(shè)備“12”。在附圖和說明書中,相同的附圖標(biāo)記旨在表示相同的元件。
為了本公開的目的,信息處理系統(tǒng)可以包括可操作的硬件資源或硬件資源的集合以用于計算、分類、處理、發(fā)送、接收、檢索、發(fā)起、切換、存儲、顯示、表明、檢測、記錄、復(fù)制、處理或使用各種形式的信息、智能、或用于企業(yè)、科學(xué),控制,娛樂,或其他目的數(shù)據(jù)。例如,信息處理系統(tǒng)可以是個人計算機(jī)、pda、消費者電子設(shè)備,網(wǎng)絡(luò)存儲設(shè)備或其他合適的設(shè)備,并且可以在大小、形狀、性能、功能和價格上變化。信息處理系統(tǒng)可以包括存儲器,一個或多個處理資源,諸如中央處理單元(cpu)或硬件或軟件控制邏輯。信息處理系統(tǒng)的附加組件可以包括一個或多個存儲設(shè)備,用于與外部設(shè)備通信的一個或多個通信端口以及諸如鍵盤、鼠標(biāo)和視頻顯示的各種輸入和輸出(i/o)設(shè)備。信息處理系統(tǒng)還可以包括一個或多個總線,其可操作以發(fā)送各種硬件組件之間的通信。
此外,信息處理系統(tǒng)可以包括用于控制或與例如硬盤驅(qū)動器、網(wǎng)絡(luò)電路、存儲器設(shè)備、i/o設(shè)備和其他外圍設(shè)備通信的固件。如本公開所使用的,固件包括嵌入在用于執(zhí)行預(yù)定義任務(wù)的信息處理系統(tǒng)組件中的軟件。固件通常被存儲在非易失性存儲器中,或者在電力丟失時不會丟失存儲數(shù)據(jù)的存儲器中。在某些實施例中,與信息處理系統(tǒng)組件相關(guān)聯(lián)的固件被存儲在一個或多個信息處理系統(tǒng)組件可訪問的非易失性存儲器中。在相同或替代實施例中,與信息處理系統(tǒng)組件相關(guān)聯(lián)的固件被存儲在非易失性存儲器中,該非易失性存儲器是專用于該組件并且包括該組件的一部分。
如將進(jìn)一步詳細(xì)描述,本公開的發(fā)明人已經(jīng)發(fā)現(xiàn)用于文本和優(yōu)化的方法和系統(tǒng)。這些方法和系統(tǒng)集合并導(dǎo)出耦合的信息處理系統(tǒng)的文本信息,以便優(yōu)化各種信息處理系統(tǒng)的資源。
通過參考圖1-圖8能最好地理解特定實施例,其中相似的數(shù)字用于表示相似和相應(yīng)的部分。
圖1示出了根據(jù)本公開的實施例的信息處理系統(tǒng)100的選定元件的框圖。在特定實施例中,一個或多個信息處理系統(tǒng)100執(zhí)行本文描述或示出的一種或多種方法的一個或多個步驟。在特定實施例中,一個或多個信息處理系統(tǒng)100提供本文所描述或示出的功能。在特定實施例中,在一個或多個信息處理系統(tǒng)100上運行的軟件執(zhí)行本文所描述或示出的一種或多種方法的一個或多個步驟,或提供本文所描述或示出的功能。特定實施例包括一個或多個信息處理系統(tǒng)100的一個或多個部分。這里,在適當(dāng)?shù)那闆r下,提到的信息處理系統(tǒng)可以包括計算設(shè)備,反之亦然。此外,在適當(dāng)?shù)那闆r下,提到的信息處理系統(tǒng)可以包括一個或多個信息處理系統(tǒng)。除了信息處理系統(tǒng)100還示出了網(wǎng)絡(luò)155,其相對于信息處理系統(tǒng)100是外部或遠(yuǎn)程的。
如圖1所示,信息處理系統(tǒng)100的組件包括但不限于可包括一個或多個處理器的處理器子系統(tǒng)120以及將各種系統(tǒng)組件通信地耦合到處理器子系統(tǒng)120的系統(tǒng)總線121,該各種系統(tǒng)組件包括例如,存儲器130、i/o子系統(tǒng)140、本地存儲資源150、圖像接口152和網(wǎng)絡(luò)接口160。在某些實施例中,圖像接口152可以包括圖像處理器。系統(tǒng)總線121代表各種合適類型的總線結(jié)構(gòu),例如使用在所選擇的實施例中各種總線架構(gòu)的存儲器總線、外圍總線或局部總線。例如,這樣的架構(gòu)可以包括但不限于微通道架構(gòu)(mca)總線、工業(yè)標(biāo)準(zhǔn)架構(gòu)(isa)總線、增強(qiáng)型isa(eisa)總線、外圍組件互連(pci)總線、pci-express總線、超傳輸(ht)總線和視頻電子標(biāo)準(zhǔn)協(xié)會(vesa)局部總線。
在圖1中,網(wǎng)絡(luò)接口160是可操作以用作信息處理系統(tǒng)100和網(wǎng)絡(luò)155之間接口的合適的系統(tǒng),裝置或設(shè)備。網(wǎng)絡(luò)接口160可使信息處理系統(tǒng)100能夠使用合適的傳輸協(xié)議或標(biāo)準(zhǔn)通過網(wǎng)絡(luò)155進(jìn)行通信,合適的傳輸協(xié)議或標(biāo)準(zhǔn)包括但不限于以下關(guān)于網(wǎng)絡(luò)155的討論列舉的傳輸協(xié)議和標(biāo)準(zhǔn)。在一些實施例中,網(wǎng)絡(luò)接口160可以經(jīng)由網(wǎng)絡(luò)155通信地耦合到其他信息處理系統(tǒng)。網(wǎng)絡(luò)155可以被實現(xiàn)為,或可以是存儲區(qū)域網(wǎng)絡(luò)(san)、個人區(qū)域網(wǎng)絡(luò)(pan)、局域網(wǎng)(lan)、城域網(wǎng)(man)、廣域網(wǎng)(wan)、無線局域網(wǎng)(wlan)、虛擬專用網(wǎng)(vpn)、內(nèi)聯(lián)網(wǎng),互聯(lián)網(wǎng)或便于信號、數(shù)據(jù)和消息(通常稱為數(shù)據(jù))通信的其它適當(dāng)架構(gòu)或系統(tǒng)。網(wǎng)絡(luò)155可以使用合適的存儲或通信協(xié)議來發(fā)送數(shù)據(jù),包括但不限于光纖通道、幀中繼、異步傳輸模式(atm)、互聯(lián)網(wǎng)協(xié)議(ip),其他基于分組的協(xié)議、小型計算機(jī)系統(tǒng)接口(scsi)、互聯(lián)網(wǎng)scsi(iscsi)、串行連接scsi(sas)或使用scsi協(xié)議、先進(jìn)技術(shù)附件(ata)、串行ata(sata)、先進(jìn)技術(shù)附件分組接口(atapi)、串行存儲架構(gòu)(ssa)、集成驅(qū)動電子(ide)或其任何組合。網(wǎng)絡(luò)155及其各種組件可以使用硬件、軟件或其任何組合來實現(xiàn)。在某些實施例中,信息處理系統(tǒng)100和網(wǎng)絡(luò)155可以包括在機(jī)架域中。
如圖1所示,處理器子系統(tǒng)120是可操作以分析或執(zhí)行程序指令并處理數(shù)據(jù)的系統(tǒng)、設(shè)備或裝置。處理器子系統(tǒng)120可以包括微處理器、微控制器、數(shù)字信號處理器(dsp)、專用集成電路(asic)或用于分析或執(zhí)行程序指令和處理數(shù)據(jù)的其它數(shù)字或模擬電路。在一些實施例中,處理器子系統(tǒng)120可分析或執(zhí)行存儲在存儲器130中的程序指令和處理數(shù)據(jù)。在相同或替代實施例中,處理器子系統(tǒng)120可以分析或執(zhí)行程序指令和處理遠(yuǎn)程存儲的數(shù)據(jù),諸如在網(wǎng)絡(luò)存儲資源170中存儲的數(shù)據(jù)。
此外,在圖1中,存儲器130包括可操作以在一段時間內(nèi)保持和檢索程序指令或數(shù)據(jù)的系統(tǒng)、設(shè)備或裝置,諸如計算機(jī)可讀介質(zhì)。如圖1的示例實施例所示,存儲器130存儲操作系統(tǒng)132和應(yīng)用134。操作系統(tǒng)132可以代表可由處理器子系統(tǒng)120執(zhí)行以在啟動之后操作信息處理系統(tǒng)100的指令。應(yīng)當(dāng)注意的是,在不同的實施例中,操作系統(tǒng)132可以被存儲在耦合到網(wǎng)絡(luò)155的網(wǎng)絡(luò)存儲資源170,并且可以經(jīng)由網(wǎng)絡(luò)接口160被處理器子系統(tǒng)120存取。應(yīng)用134可以代表可由處理器子系統(tǒng)120執(zhí)行以用于實現(xiàn)通用應(yīng)用功能的指令,其可以包括用戶接口和對計算資源的存取,諸如本地存儲資源150。存儲器130可以包括隨機(jī)存取存儲器(ram)、電可擦除可編程只讀存儲器(eeprom)、pcmcia卡、固態(tài)存儲器、磁存儲器、光磁存儲器和適當(dāng)?shù)剡x擇的(例如陣列)易失性或非易失性存儲器。非易失性存儲器包括在斷電后保留數(shù)據(jù)的存儲器。
本地存儲資源150可以包括諸如硬盤驅(qū)動器、軟盤驅(qū)動器、cd-rom或其他類型的旋轉(zhuǎn)存儲介質(zhì),固態(tài)存儲器、eeprom或其他類型的固態(tài)存儲介質(zhì)之類的計算機(jī)可讀介質(zhì)。本地存儲資源150通??刹僮饕源鎯χ噶詈蛿?shù)據(jù)。例如,本地存儲資源150可以以可以被加載到存儲器130中以執(zhí)行的程序文件的形式存儲可執(zhí)行代碼。
在信息處理系統(tǒng)100中,i/o子系統(tǒng)140包括通??刹僮饕越邮蘸桶l(fā)送關(guān)于信息處理系統(tǒng)100的數(shù)據(jù)的系統(tǒng),設(shè)備或裝置。i/o子系統(tǒng)140可以包括例如各種通信接口、圖像接口、視頻接口、用戶輸入接口和外圍接口。在某些實施例中,i/o子系統(tǒng)140可以包括觸摸面板或顯示器適配器。觸摸面板(未示出)可以包括用于與由顯示器適配器(未示出)驅(qū)動的顯示器(未示出)一起實現(xiàn)觸摸功能的電路。
圖1中還示出了嵌入式控制器(ec)180,其可以包括作為用于某些管理任務(wù)的信息處理系統(tǒng)100所包括的第二處理器的ec處理器182。ec處理器182可以存取ec非易失性隨機(jī)存取存儲器(nv-ram),其可以存儲ec固件186,其代表可由ec處理器182執(zhí)行的指令。還顯示了存儲在biosnv-ram190中的通常簡稱或統(tǒng)稱為“bios”的bios固件192。bios固件192可以代表可由處理器子系統(tǒng)120執(zhí)行的預(yù)啟動指令,例如用于通過激活各種硬件組件來準(zhǔn)備信息處理系統(tǒng)100來啟動,以準(zhǔn)備啟動操作系統(tǒng)132以供執(zhí)行。在一些實施例中,bios固件192可以由ec處理器182執(zhí)行。
在操作中,操作系統(tǒng)132或應(yīng)用134可以被配置為在信息處理系統(tǒng)100上執(zhí)行。由于操作系統(tǒng)132或應(yīng)用134可能未被優(yōu)化以用于信息處理系統(tǒng)100的硬件配置,因此工作負(fù)載優(yōu)化器136可執(zhí)行某些硬件配置的動態(tài)優(yōu)化,如本文進(jìn)一步詳細(xì)描述的。工作負(fù)載優(yōu)化器136可以使用與信息處理系統(tǒng)100相關(guān)聯(lián)的其他資源或硬件資源、操作系統(tǒng)132、ec固件186、ec處理器192、bios固件192、i/o子系統(tǒng)140、本地存儲資源150、圖像接口152和網(wǎng)絡(luò)接口160中的任何一個或多個實現(xiàn)各種動態(tài)優(yōu)化。
圖2示出了根據(jù)本公開的一些實施例的工作負(fù)載優(yōu)化200實施例的框圖。如圖所示,工作負(fù)載優(yōu)化200代表在信息處理系統(tǒng)中的工作負(fù)載優(yōu)化的架構(gòu),該信息處理系統(tǒng)包括圖1所討論的信息處理系統(tǒng)100的任何實施例。工作負(fù)載優(yōu)化200可以包括用于執(zhí)行本文描述的功能的元件或模塊的任何合適的組合或數(shù)量。如圖2所示,工作負(fù)載優(yōu)化200包括工作負(fù)載優(yōu)化器202和硬件資源260。工作負(fù)載優(yōu)化器202可以代表圖1所示的工作負(fù)載優(yōu)化器136的實施例。如圖所示,工作負(fù)載優(yōu)化器202包括策略處理引擎210、監(jiān)測引擎220、配置引擎230、ihs簡檔管理器240、用戶接口250和插件280。工作負(fù)載優(yōu)化器202可以監(jiān)測和配置信息處理系統(tǒng)諸如信息處理系統(tǒng)100上的硬件資源。硬件資源260代表某些硬件元件或組件,包括相對于圖1中的信息處理系統(tǒng)100描述的組件。
在工作負(fù)載優(yōu)化200中,工作負(fù)載優(yōu)化器202包括策略處理引擎210。策略處理引擎210可以以任何合適的方式來實現(xiàn)。例如,策略處理引擎210可以由代碼、指令、庫、共享庫、軟件為服務(wù)(software-as-a-service)、功能、應(yīng)用、腳本或可執(zhí)行程序來實現(xiàn)。盡管在圖2中示出為單個元件,但策略處理引擎210可以通過元件的組合來實現(xiàn)。在一些實施例中,策略處理引擎210可以被配置為優(yōu)化在一個或多個信息處理系統(tǒng)上執(zhí)行的工作負(fù)載。
在一些實施例中,策略處理引擎210可以用于通過將硬件資源260配置為與工作負(fù)載的屬性特別匹配的方式來優(yōu)化在信息處理系統(tǒng)處執(zhí)行的工作負(fù)載。用戶接口250代表用戶可以操作以使用策略處理引擎210的用戶接口,例如以指明工作負(fù)載或選擇用于實現(xiàn)特定工作負(fù)載策略的簡檔。
策略處理引擎210可以根據(jù)由ihs簡檔管理器240維護(hù)和管理的一個或多個ihs簡檔242進(jìn)行分析和操作。在某些實施例中,ihs簡檔242可以由信息處理系統(tǒng)或硬件資源260的制造商從ihs簡檔管理器240中選擇、創(chuàng)建、修改和移除。例如,計算機(jī)系統(tǒng)的制造商可以提供用于節(jié)省功耗的ihs簡檔242。在特定實施例中,可由策略處理引擎210從ihs簡檔管理器240中選擇、創(chuàng)建、修改和移除ihs簡檔242。例如,策略處理引擎210可以選擇ihs簡檔242,以用于在檢測到計算機(jī)系統(tǒng)已經(jīng)從電源拔出時節(jié)省電力。在一些實施例中,ihs簡檔管理器240可以是被配置為管理簡檔242并且將簡檔信息傳輸?shù)讲呗蕴幚硪?10的應(yīng)用。
如圖所示,ihs簡檔管理器240可以包括ihs簡檔242-1、242-2等,多達(dá)242-n,其表示n個簡檔,其中n是任何所需數(shù)量。ihs簡檔242可以由策略處理引擎210接收并用于實現(xiàn)特定工作負(fù)載策略。因此,ihs簡檔242可以相應(yīng)地包括策略信息,諸如具有由硬件資源260代表的硬件組件的特定配置(或設(shè)置)的執(zhí)行場景。除了其他示例之外,ihs簡檔242可以是用戶特定的信息處理系統(tǒng)的使用類型、特定信息處理系統(tǒng)或在信息處理系統(tǒng)上執(zhí)行的應(yīng)用。ihs簡檔管理器240可以能夠在本地或遠(yuǎn)程存儲器上存儲、檢索、創(chuàng)建、刪除、添加和修改ihs簡檔242,例如響應(yīng)于經(jīng)由用戶接口250接收的用戶輸入。在某些實施例中,ihs簡檔管理器240以分布式方式跨越網(wǎng)絡(luò)而操作,例如,結(jié)合下面參照圖3描述的分布式簡檔管理器340。
策略處理引擎210可以監(jiān)視信息處理系統(tǒng)的各種硬件資源260。例如,策略處理引擎210可以通信地耦合到監(jiān)測引擎220,從而經(jīng)由相應(yīng)的插件280在一個或多個硬件資源260上接收監(jiān)測的信息。監(jiān)視引擎220可以以任何合適的方式來實現(xiàn),諸如通過代碼、指令、庫、共享庫、軟件為服務(wù)、功能、應(yīng)用、腳本或可執(zhí)行程序。盡管被示為單個元件,但是監(jiān)測引擎220可以通過元件的組合來實現(xiàn)。在一些實施例中,監(jiān)測引擎220可被配置為監(jiān)測多于一個物理信息處理系統(tǒng)的硬件資源。
策略處理引擎210可以主動地配置(或更改設(shè)置)信息處理系統(tǒng)的各種硬件資源260。例如,策略處理引擎210可以通信地耦合到配置引擎230,以經(jīng)由相應(yīng)的插件280根據(jù)工作負(fù)載策略來配置硬件資源260。硬件資源260的配置可以通過插件280以各種方式實現(xiàn)。例如,插件280可以直接存取biosnvram190以改變由bios固件192使用的設(shè)置。插件280可以存取或與ec180通信以更改硬件設(shè)置。插件280可以進(jìn)一步存取或可以包括硬件驅(qū)動程序,諸如用于硬件資源260中的各個操作系統(tǒng)驅(qū)動程序。配置引擎230可以以任何合適的方式來實現(xiàn)。例如,配置引擎230可以由代碼、指令、庫、共享庫、軟件為服務(wù)、功能、應(yīng)用、腳本或可執(zhí)行程序來實現(xiàn)。盡管被示為單個元件,但可以通過元件的組合來實現(xiàn)配置引擎230。在一些實施例中,配置引擎230可以在多于一個的信息處理系統(tǒng)上配置硬件資源。
插件280可以代表安裝在工作負(fù)載優(yōu)化器202中用于存取特定硬件資源260的模塊代碼。因此,每個插件280可以對于特定硬件資源260是特定的,并且對于工作負(fù)載優(yōu)化器202是特定的。插件280的每一個可以包括可以單獨實現(xiàn)或者可以組合實現(xiàn)的監(jiān)測和配置功能。換句話說,插件280能夠使監(jiān)測引擎220和配置引擎230獨立操作。隨著硬件資源260被添加、移除、更新、替換等,可以添加、移除、更新、更換相應(yīng)的插件280。如圖所示,cpu插件280-1可以為cpu260-1提供監(jiān)測和配置支持,cpu260-1可以代表處理器或處理器子系統(tǒng);存儲器插件280-2可以提供對存儲器260-2的監(jiān)測和配置支持,存儲器260-2可以代表可由存取cpu260-1的主存儲器;圖像插件280-3可以為圖像260-3提供監(jiān)測和配置支持,圖像260-3可以表示圖像接口或圖像處理單元;存儲器插件280-4可以為存儲器260-4提供監(jiān)測和配置支持,存儲器260-4可以代表本地或遠(yuǎn)程存儲資源;冷卻插件280-5可以為冷卻260-5提供監(jiān)測和配置支持,冷卻260-5可以表示熱控制系統(tǒng);顯示器插件280-6可以為顯示器260-6提供監(jiān)測和配置支持,顯示器260-6可以表示一個或多個顯示設(shè)備,例如耦合到圖像260-3的顯示設(shè)備;并且網(wǎng)絡(luò)插件280-7可以為網(wǎng)絡(luò)260-7提供監(jiān)測和配置支持,網(wǎng)絡(luò)260-7可以代表任何或多個網(wǎng)絡(luò)接口。注意,所描述的插件280和硬件資源260是示例性的,并且可以包括各種實施例中的其他元件。
在操作中,策略處理引擎210可以經(jīng)由用戶接口250從用戶接收工作負(fù)載請求。工作負(fù)載請求可以指明計算任務(wù),諸如由應(yīng)用134執(zhí)行的計算任務(wù)。在一些實施例中,工作負(fù)載請求可以用于來自不同信息處理系統(tǒng)的分布式計算任務(wù),其尋求使用策略處理引擎210以及其他分布式資源來執(zhí)行分布式計算任務(wù)的某些部分。工作負(fù)載請求可以包括ihs簡檔242中特定一個的指示?;蛘撸呗蕴幚硪?10可以在各種實施例中基于諸如用戶(或用戶帳戶)或應(yīng)用134之類的其他信息來選擇ihs簡檔242中的一個。在某些實施例中,應(yīng)用134本身可以包括用于使用策略處理引擎210生成工作負(fù)載請求或執(zhí)行計算任務(wù)的功能。在一些實施例中,工作負(fù)載優(yōu)化器202的至少某些部分包括在應(yīng)用134中。
基于工作負(fù)載請求,策略處理引擎210可以確定計算任務(wù)的工作負(fù)載屬性。工作負(fù)載屬性可以包括計算任務(wù)對硬件資源260的依賴性。例如,當(dāng)計算任務(wù)包括多線程時,可能需要激活cpu內(nèi)的多個核心。或者,當(dāng)計算任務(wù)在單個線程內(nèi)執(zhí)行時,當(dāng)計算任務(wù)被發(fā)送到cpu內(nèi)的單個核心時可能可以最有效地執(zhí)行,這可能是期望的。因此,工作負(fù)載屬性可以指明多線程程度、線程優(yōu)先級和指令集架構(gòu)中的任何一個或多個。工作負(fù)載屬性可以指明例如任何一個或多個期望的處理器頻率、處理器緩存容量、處理器緩存架構(gòu)、處理器緩存吞吐量、存儲器容量、存儲器總線速度、存儲器吞吐量以及非均勻存儲器架構(gòu)的使用。例如,工作負(fù)載屬性還可以指明所期望的背景執(zhí)行程度或可容忍的網(wǎng)絡(luò)延遲。工作負(fù)載屬性還可以指明任何一個或多個所期望的存儲器容量、最小可用存儲器空間、存儲器數(shù)據(jù)吞吐量和存儲器延遲。除了其它用于工作負(fù)載的其他希望的屬性外,工作負(fù)載屬性還可以指明以下的一個或多個:圖像處理單元的加速程度、垂直同步設(shè)置、數(shù)字信號處理程度、整數(shù)處理程度、背景執(zhí)行程度和操作系統(tǒng)。
然后,策略處理引擎210可以經(jīng)由例如監(jiān)視引擎220識別信息處理系統(tǒng)中存在的硬件資源260中的特定硬件資源260。此外,策略處理引擎210可以監(jiān)測至少一些硬件資源260的操作狀態(tài),以便確定工作負(fù)載屬性指示哪些配置更改,或哪些配置設(shè)置已經(jīng)與工作負(fù)載屬性相稱。硬件資源260可以包括各種資源,包括圖2所示的資源。具體來說,硬件資源260可以包括諸如許多可用的處理器核心、可用的處理器核心的獨占存取程度、可用的處理器多線程程度、可用的背景執(zhí)行程度、可用的用戶模式執(zhí)行程度、處理器頻率、處理器架構(gòu)、處理器緩存架構(gòu)、處理器電源狀態(tài)、可用的處理器緩存容量、可用的處理器功耗以及可用的指令集架構(gòu)。其他硬件資源260可以包括諸如可用的圖像處理單元、可用的存儲器容量、可用的存儲器吞吐量、可用的非均勻存儲器存取程度、可用的存儲容量、可用的存儲器吞吐量和可用的存儲器延遲等方面。其他硬件資源260可以包括從可用的網(wǎng)絡(luò)容量、可用的網(wǎng)絡(luò)吞吐量、可用的網(wǎng)絡(luò)延遲、系統(tǒng)重啟功能和系統(tǒng)掉電特征中選擇的方面。與硬件資源260有關(guān)的其他方面也被考慮。
接下來,基于工作負(fù)載屬性和硬件資源260,策略處理引擎210可以確定用于計算任務(wù)的工作負(fù)載策略。如上所述,工作負(fù)載策略可以基于其中一個ihs簡檔242。工作負(fù)載策略可以指明用于執(zhí)行計算任務(wù)的硬件資源260,諸如通過為所標(biāo)識的硬件資源260的方面指定特定設(shè)置。在確定工作負(fù)載策略之后,策略處理引擎210可以實現(xiàn)工作負(fù)載策略,例如使用配置引擎230存取插件280,如上所述。實施工作負(fù)載策略可以涉及不同實施例中的各種操作,諸如重新配置內(nèi)部或外部硬件組件。在一些實施例中,可以在執(zhí)行計算任務(wù)之前重新啟動或重新開始信息處理系統(tǒng)以實現(xiàn)某些工作負(fù)載策略。當(dāng)實施工作負(fù)載策略時,計算任務(wù)可以由信息處理系統(tǒng)執(zhí)行。應(yīng)當(dāng)注意,執(zhí)行計算任務(wù)可以涉及長期操作,諸如用戶使用特定應(yīng)用的持續(xù)時間。
在另一方面,工作負(fù)載優(yōu)化200可用于優(yōu)化專有的工作負(fù)載,諸如使用專有數(shù)據(jù)的工作負(fù)載。例如,制造商可以使用應(yīng)用來建模專有的新產(chǎn)品,包括集成到制造過程中的計算機(jī)輔助設(shè)計。制造商可能會嘗試使用應(yīng)用來優(yōu)化與新產(chǎn)品相關(guān)聯(lián)的工作負(fù)載,這些應(yīng)用可能包括計算機(jī)密集型操作,諸如三維渲染。制造商可以安裝工作負(fù)載優(yōu)化器202的某些部分,諸如監(jiān)測引擎220,其可以在專用工作負(fù)載的執(zhí)行期間監(jiān)測硬件資源260。監(jiān)測引擎220可以通過監(jiān)測專用工作負(fù)載產(chǎn)生的結(jié)果來生成工作負(fù)載仿真數(shù)據(jù)。然而,即使工作負(fù)載仿真數(shù)據(jù)反映相同的工作負(fù)載屬性和與專有工作負(fù)載相當(dāng)?shù)挠嬎銖?fù)雜度,監(jiān)控引擎220也可以不包括專有數(shù)據(jù)的方式生成工作負(fù)載仿真數(shù)據(jù)。
然后,工作負(fù)載仿真數(shù)據(jù)可以由另一個工作負(fù)載優(yōu)化200的實例在另一個信息處理系統(tǒng)中使用。例如,上述示例中的制造商可以將工作負(fù)載仿真數(shù)據(jù)安全地發(fā)送到信息處理系統(tǒng)的提供者。然后,可以基于工作負(fù)載仿真數(shù)據(jù)來確定工作負(fù)載屬性。例如,當(dāng)專有工作負(fù)載包括諸如飛機(jī)或船舶的大型復(fù)雜系統(tǒng)的渲染時,工作負(fù)載仿真數(shù)據(jù)可以指明與專有數(shù)據(jù)相對應(yīng)的其他示例中的圖像屬性,諸如相應(yīng)數(shù)量的多邊形、相應(yīng)類型的多邊形、相應(yīng)的紋理數(shù)據(jù)、動畫數(shù)據(jù)以及相應(yīng)數(shù)量的部分或元件。所確定的工作負(fù)載屬性可能是專有工作負(fù)載的特征。因此,工作負(fù)載屬性可以包括(或指明)專有計算任務(wù)對硬件資源的依賴性。然后,可以識別硬件資源,并且可以確定工作負(fù)載策略。而且,基于工作負(fù)載仿真數(shù)據(jù),具有與專有計算任務(wù)相同工作負(fù)載屬性的仿真計算任務(wù)。仿真計算任務(wù)可用于對專有計算任務(wù)進(jìn)行建模,而不依賴專有信息。然后可以在提供商的信息處理系統(tǒng)處實施工作負(fù)載策略,并且當(dāng)實施工作負(fù)載策略時,可以在第二信息處理系統(tǒng)執(zhí)行仿真計算任務(wù)。以這種方式,可以使用仿真計算任務(wù)來評估和測試工作負(fù)載策略,并進(jìn)行修改或優(yōu)化以產(chǎn)生期望的計算效率或性能。
在這種方式下沒有專有數(shù)據(jù)的確定的工作負(fù)載策略可被發(fā)送回制造商以用于執(zhí)行專有工作負(fù)載。然后,工作負(fù)載策略可以由工作負(fù)載優(yōu)化200使用,以在使用專有信息的同時改進(jìn)專有工作負(fù)載的諸如性能、延遲或速度的執(zhí)行。
在另一方面,工作負(fù)載優(yōu)化器202的至少某些部分可以集成到應(yīng)用134中。例如,工作負(fù)載優(yōu)化器202的某些功能可以作為軟件開發(fā)工具包(sdk)提供給應(yīng)用134的提供者,他們可以將功能集成到應(yīng)用134的版本中。以這種方式,如本文所述,用戶接口250、his簡檔管理器240、策略處理引擎210、監(jiān)測引擎220、配置引擎230和插件260的至少某些部分可以被集成在應(yīng)用134內(nèi)。
圖3是分布式工作負(fù)載優(yōu)化300的實施例的選定元件的框圖。分布式工作負(fù)載優(yōu)化300可以代表用于優(yōu)化分布式計算工作負(fù)載執(zhí)行的架構(gòu)。在一個實施例中,分布式工作負(fù)載優(yōu)化300可用于在聯(lián)網(wǎng)環(huán)境中的多個信息處理系統(tǒng)352之間分配和優(yōu)化工作負(fù)載。如圖所示,分布式工作負(fù)載優(yōu)化300包括在工作組350中的一個或多個信息處理系統(tǒng)352,網(wǎng)絡(luò)310和分布式工作負(fù)載優(yōu)化器302。如圖所示,分布式工作負(fù)載優(yōu)化器302包括文本聚合引擎306、決策引擎308、動作引擎304和分布式簡檔管理器340。在一些實施例中,分布式工作負(fù)載優(yōu)化300的一些或所有元件可以通過網(wǎng)絡(luò)310通信地耦合。信息處理系統(tǒng)352可以代表關(guān)于圖1和圖2所描述的信息處理系統(tǒng)100的實施例。因此,可以假設(shè)在圖2中信息處理系統(tǒng)352中的至少一些執(zhí)行工作負(fù)載優(yōu)化器202。
在分布式工作負(fù)載優(yōu)化300中,工作組350被示為包括多個信息處理系統(tǒng)(ihs)352的邏輯網(wǎng)絡(luò)。如圖所示,工作組350可以包括信息處理系統(tǒng)352-1、352-2等等,多達(dá)352-m表示m個信息處理系統(tǒng),其中m是任何所需數(shù)量。盡管工作組350被示出為單個實例以便清楚描述,但是應(yīng)當(dāng)理解,分布式工作負(fù)載優(yōu)化300可操作于不同數(shù)量的工作組350,包括較大量的工作組350和信息處理系統(tǒng)352。在某些實施例中,工作組350可以表示網(wǎng)絡(luò)域或組織實體,諸如組織中的辦公室或部門的位置。因此,工作組350可以代表具有包括信息處理系統(tǒng)352的物理基礎(chǔ)設(shè)施的企業(yè)實體或子實體。
在分布式工作負(fù)載優(yōu)化器302中,文本聚合引擎306可以聚合用于優(yōu)化分布式工作負(fù)載執(zhí)行的文本信息。文本聚合引擎306可以導(dǎo)出用于分布式工作負(fù)載優(yōu)化的不同種類的文本信息。文本聚合引擎306可以聚合來自各種來源的文本信息,包括來自分布式簡檔管理器340和信息處理系統(tǒng)352的文本信息。文本聚合引擎306可以聚合從工作負(fù)載優(yōu)化器202接收的、在信息處理系統(tǒng)352上的,例如來自ihs簡檔管理器240或由監(jiān)測引擎220收集的文本信息。文本信息可以包括硬件資源的位置、容量、溫度、版本、狀態(tài)和利用率等信息。在一些實施例中,文本聚合引擎306可以將與信息處理系統(tǒng)352相關(guān)的文本信息聚合并存儲到ihs簡檔342-3中。文本聚合引擎306可以導(dǎo)出復(fù)雜的ihs文本信息。例如,文本聚合引擎306可以處理系統(tǒng)文件、通信和維護(hù)請求記錄以導(dǎo)出用于信息處理系統(tǒng)352的安全性、使用或可靠性文本。作為示例而不是限制,過時的操作系統(tǒng)可以指示特定信息處理系統(tǒng)352的安全性或可靠性問題。在一些實施例中,文本聚合引擎306可以使用導(dǎo)出的復(fù)雜ihs文本信息來更新信息處理系統(tǒng)簡檔342-3。文本聚合引擎306可以從存儲在各種信息處理系統(tǒng)352上的數(shù)據(jù)導(dǎo)出復(fù)雜的文本信息。具體地,文本聚合引擎306可以處理文件、數(shù)據(jù)庫、位置或任何其他相關(guān)數(shù)據(jù)以導(dǎo)出復(fù)雜的文本信息。在一個示例中,文本聚合引擎306可以從對分布式工作負(fù)載優(yōu)化300的改變,諸如基于從工作組350添加或移除信息處理系統(tǒng)302來導(dǎo)出復(fù)雜的文本信息。文本聚合引擎306還可以從簡檔342或先前由文本聚合引擎306聚合或存儲的其他數(shù)據(jù)導(dǎo)出復(fù)雜的文本信息。在一些實施例中,文本聚合引擎306可以從預(yù)定義的數(shù)據(jù)關(guān)聯(lián)導(dǎo)出復(fù)雜的文本信息,諸如日歷條目和用戶位置之間的關(guān)聯(lián)。例如,文本聚合引擎306可以解析機(jī)器可讀的可擴(kuò)展標(biāo)記語言、逗號分隔值,數(shù)據(jù)庫條目等,以辨別關(guān)系或確定某些文本信息段之間的關(guān)聯(lián)。在某些實施例中,文本聚合引擎306可以使用人工智能算法來產(chǎn)生否則不相交數(shù)據(jù)之間的關(guān)聯(lián)。
文本聚合引擎306還可以聚合經(jīng)由諸如網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)設(shè)備狀態(tài)、網(wǎng)絡(luò)利用率或與網(wǎng)絡(luò)310相關(guān)的維護(hù)信息等網(wǎng)絡(luò)310的來自其他來源的文本信息。在某些實施例中,文本聚合引擎306可以將與網(wǎng)絡(luò)310相關(guān)的信息聚合并存儲到網(wǎng)絡(luò)簡檔342-2中。文本聚合引擎306可以導(dǎo)出復(fù)雜的網(wǎng)絡(luò)文本信息。例如,文本聚合引擎306可以處理日歷、電子郵件或維護(hù)請求記錄以導(dǎo)出未來網(wǎng)絡(luò)的可用性、使用或可靠性。在一個示例中,大量維護(hù)請求關(guān)于與網(wǎng)絡(luò)310上的特定連接可能指示可靠性的問題。在另一示例中,文本聚合引擎306可以部分地基于網(wǎng)絡(luò)存取日志導(dǎo)出網(wǎng)絡(luò)安全信息。文本聚合引擎306可以使用導(dǎo)出的復(fù)雜網(wǎng)絡(luò)文本信息來更新網(wǎng)絡(luò)簡檔342-2。
另外,文本聚合引擎306可以在用戶的信息處理系統(tǒng)352上聚合用戶資訊。用戶資訊可以與信息處理系統(tǒng)352或工作組350上用戶的用戶帳戶相關(guān)聯(lián)。作為示例而不是限制,用戶資訊可以包括用戶偏好、信息處理系統(tǒng)的使用、用戶分類、用戶狀態(tài)、用戶位置或用戶時間表。在一些實施例中,文本聚合引擎306可以將用戶信息聚合并存儲到用戶簡檔342-1中。
在一些實施例中,文本聚合引擎306可以聚合描述應(yīng)用在信息處理系統(tǒng)352上執(zhí)行的信息。這樣的應(yīng)用信息可以包括例如資源需求、資源使用性、應(yīng)用設(shè)置、應(yīng)用狀態(tài)或應(yīng)用版本等。在一些實施例中,文本聚合引擎306可以將應(yīng)用信息聚合并存儲到應(yīng)用簡檔324-4中。文本聚合引擎306可導(dǎo)出復(fù)雜的應(yīng)用文本信息。例如,文本聚合引擎306可以處理應(yīng)用使用記錄,例如確定應(yīng)用的平均運行時間、用戶統(tǒng)計、預(yù)期性能、最佳設(shè)置、峰值使用時間或與應(yīng)用134相關(guān)的任何其他信息。文本聚合引擎306可以使用導(dǎo)出的復(fù)雜文本信息來更新聚合應(yīng)用簡檔324-4。
在特定實施例中,文本聚合引擎306可以與分布式工作負(fù)載優(yōu)化300中的其他元件通信文本信息。例如,文本聚合引擎306可將文本信息傳輸?shù)經(jīng)Q策引擎308、動作引擎304或諸如通過網(wǎng)絡(luò)310傳輸?shù)椒植际焦ぷ髫?fù)載優(yōu)化300中的另一元件。作為示例而不是限制,文本聚合引擎306傳輸?shù)奈谋拘畔⒖梢园▉碜院啓n342的信息或任何其他信息。
在一些實施例中,文本聚合引擎306可以檢測并動態(tài)地調(diào)節(jié)分布式工作負(fù)載優(yōu)化300中的變化。例如,文本聚合引擎306可以檢測新的信息處理系統(tǒng)352。響應(yīng)于加入工作組350或連接到網(wǎng)絡(luò)310的新的信息處理系統(tǒng)352,文本聚合引擎306可以開始從新的信息處理系統(tǒng)352聚合文本信息。
在另一個示例而不是限制,文本聚合引擎306可檢測到通信地耦合(例如,通過有線、無線、藍(lán)牙或任何其他通信手段)到網(wǎng)絡(luò)310或信息處理系統(tǒng)352的便攜式電子設(shè)備(例如,手機(jī)、膝上型計算機(jī)、pda等)。文本聚合引擎306可以指示便攜式電子設(shè)備下載并安裝軟件以支持圖2所描述的工作負(fù)載優(yōu)化200,諸如工作負(fù)載優(yōu)化器202的至少某些部分。在一些實施例中,文本聚合引擎306可以在檢測到工作組350改變時更新適當(dāng)?shù)暮啓n342。例如,文本聚合引擎306可以被配置為在檢測到信息處理系統(tǒng)352加入或離開工作組350時更新ihs簡檔342。
文本聚合引擎306可以以任何合適的方式來實現(xiàn)。例如,文本聚合引擎306可以由代碼、指令、庫、共享庫、軟件為服務(wù)、功能、應(yīng)用、腳本或可執(zhí)行程序來實現(xiàn)。在一些實施例中,文本聚合引擎306可以在信息處理系統(tǒng)352處執(zhí)行。雖然文本聚合引擎306被示為單個元件,但可以通過元件的組合來實現(xiàn)文本聚合引擎306。例如,文本聚合引擎306可以被包括在工作負(fù)載優(yōu)化器202中。
如上所述,文本聚合引擎306可以根據(jù)由分布式簡檔管理器340維護(hù)和管理的一個或多個簡檔342進(jìn)行分析和操作。在某些實施例中,可以由網(wǎng)絡(luò)310的網(wǎng)絡(luò)管理員從分布式簡檔管理器340中選擇、創(chuàng)建、修改和刪除簡檔342。例如,網(wǎng)絡(luò)管理員可以修改網(wǎng)絡(luò)簡檔342-2以實現(xiàn)節(jié)能網(wǎng)絡(luò)策略。在特定實施例中,可以由文本聚合引擎306從分布式簡檔管理器340中選擇、創(chuàng)建、修改和刪除概要簡檔342。例如,文本聚合引擎306可以在檢測到計算機(jī)系統(tǒng)已經(jīng)從電源拔下時選擇ihs簡檔342-3以節(jié)省電力。在一些實施例中,分布式簡檔管理器340可以是被配置為管理簡檔342并且將簡檔信息傳輸?shù)轿谋揪酆弦?06的應(yīng)用。因此,分布式簡檔管理器340可以以與圖2中的ihs簡檔管理器240類似的方式操作。
在分布式工作負(fù)載優(yōu)化器302中,決策引擎308可以確定資源的最佳分配。在一個實施例中,決策引擎308可以被配置為接收資源請求,諸如用于分布式執(zhí)行的計算任務(wù)的工作負(fù)載請求。例如,信息處理系統(tǒng)352可以請求用于處理數(shù)字計算、顯示呈現(xiàn)、啟動應(yīng)用或其他計算任務(wù)的資源。決策引擎308可將資源請求分配成多個資源請求。例如,決策引擎308可以將顯示呈現(xiàn)的請求分解為運行應(yīng)用以打開的請求以及顯示來自應(yīng)用的輸出的請求。
如上所述,決策引擎308可以通信地耦合到文本聚合引擎306以例如分析或查詢文本信息。在一些實施例中,決策引擎308可以分析由文本聚合引擎306導(dǎo)出的復(fù)雜文本信息。決策引擎308也可以啟動文本信息的聚合。例如,在接收到資源請求時,決策引擎308可以確定附加的文本信息被指示以做出特定的決定。因此,決策引擎308可以請求文本聚合引擎306提供附加的文本信息。作為響應(yīng),文本聚合引擎306可以通過例如導(dǎo)出復(fù)雜的文本信息或處理用于文本信息的附加源來聚合附加文本信息。
在一些實施例中,決策引擎308可以基于文本信息來分配資源請求。例如,當(dāng)文本信息指示信息處理系統(tǒng)352-1與網(wǎng)絡(luò)310暫時斷開連接時,決策引擎308可以決定不向信息處理系統(tǒng)352-1分配資源請求。類似地,當(dāng)文本信息指示特定信息處理系統(tǒng)352-2在不久的將來可能與網(wǎng)絡(luò)310斷開連接時,則決策引擎308可以例如因為資源請求的預(yù)期持續(xù)時間而決定不將資源請求分配給信息處理系統(tǒng)352-2。在另一示例中,當(dāng)文本聚合引擎306確定兩個用戶為相同的團(tuán)隊(例如利用相應(yīng)的用戶簡檔342-1)的情況下,則決策引擎308可以分配諸如應(yīng)用或日歷的常用計算資源來滿足用戶的資源請求。在另一示例中,決策引擎308可以基于用戶的當(dāng)前位置或未來位置來分配資源。當(dāng)用戶實際位于會議室并請求資源以串流多媒體呈現(xiàn)時,則決策引擎308可以選擇與用戶非常接近的某些信息處理系統(tǒng)352來完成資源請求,諸如通過執(zhí)行某些計算任務(wù)來支持多媒體串流。
在一些實施例中,決策引擎308可以基于諸如某些硬件資源的優(yōu)化準(zhǔn)則來分配資源請求。在一些實施例中,優(yōu)化準(zhǔn)則可以指明特定的應(yīng)用或活動,諸如速度、電力、優(yōu)先級、安全性、可靠性、位置等。決策引擎308可以接收資源請求的優(yōu)化準(zhǔn)則。例如,資源請求可以指示用于處理資源請求的速度超過安全性的優(yōu)先級。在一些實施例中,決策引擎308可從文本信息導(dǎo)出優(yōu)化準(zhǔn)則。作為示例而不是限制,計算密集型的應(yīng)用,諸如來自natick,mass的themathworks公司的matlabtm,可包含指示應(yīng)用是資源密集型的應(yīng)用簡檔342-2?;趹?yīng)用簡檔342-2,決策引擎308可以相應(yīng)地確定優(yōu)化準(zhǔn)則,以指示例如處理器和存儲器資源優(yōu)先于圖形或存儲器。
決策引擎308可以以任何合適的方式來實現(xiàn)。例如,決策引擎308可以由代碼、指令、庫、共享庫、軟件為服務(wù)、功能、應(yīng)用程序、腳本或可執(zhí)行程序來實現(xiàn)。盡管決策引擎308被示出為單個元件,但是決策引擎308可以通過元件的組合來實現(xiàn)。例如,在一個實施例中,決策引擎308可以分布在工作組350內(nèi)的各種信息處理系統(tǒng)352中。
在分布式工作負(fù)載優(yōu)化器302中,動作引擎304可以啟動操作以實現(xiàn)資源請求,并且可以通信地耦合到?jīng)Q策引擎308。在一些實施例中,動作引擎304可以從決策引擎308接收優(yōu)化的資源請求,諸如將硬件資源的分配指定給特定工作負(fù)載請求以用于分布式執(zhí)行。在一些實施例中,來自決策引擎308的優(yōu)化資源請求可以標(biāo)識與滿足資源請求相關(guān)聯(lián)的信息處理系統(tǒng)352。作為示例而不是限制,動作引擎304可以基于來自決策引擎308識別信息處理系統(tǒng)352-1和應(yīng)用的優(yōu)化資源請求來啟動應(yīng)用在信息處理系統(tǒng)352-1系統(tǒng)上的執(zhí)行。
動作引擎304可以以任何合適的方式來實現(xiàn)。例如,動作引擎304可以由代碼、指令、庫、共享庫、軟件為服務(wù)、功能、應(yīng)用程序、腳本或可執(zhí)行程序來實現(xiàn)。雖然動作引擎304被示出為單個元件,但動作引擎304可以通過元件的組合來實現(xiàn)。例如,在一個實施例中,動作引擎304可以分布在工作組350內(nèi)的各種信息處理系統(tǒng)352中。
雖然文本聚合引擎306、決策引擎308和動作引擎304的功能性被描述為圖3中單獨的元件,但是它們每一個的功能可以通過分布式工作負(fù)載優(yōu)化300的任何適當(dāng)部分來實現(xiàn)。
在用于將分布式工作負(fù)載優(yōu)化到信息處理系統(tǒng)352的分布式工作負(fù)載優(yōu)化300的操作中,分布式工作負(fù)載優(yōu)化器302可以從信息處理系統(tǒng)352-1接收指定用于分布式執(zhí)行的計算任務(wù)的工作負(fù)載請求。然后,文本聚合引擎306可以基于工作負(fù)載請求來確定計算任務(wù)的工作負(fù)載屬性。工作負(fù)載屬性可以包括計算任務(wù)對包括在諸如先前描述的硬件資源260的信息處理系統(tǒng)352中的硬件資源的依賴性。
然后,文本聚合引擎306可以通過網(wǎng)絡(luò)310識別信息處理系統(tǒng)352或其他信息處理系統(tǒng)(稱為分布式信息處理系統(tǒng)),以用于計算任務(wù)的分布式執(zhí)行。例如,所識別的信息處理系統(tǒng)可以執(zhí)行工作負(fù)載優(yōu)化器202的至少某些部分以支持分布式工作負(fù)載優(yōu)化300的操作。文本聚合引擎306還可以識別存在于分布式信息處理系統(tǒng)的硬件資源(稱為分布式硬件資源)。然后,基于所確定的工作負(fù)載屬性和所識別的分布式硬件資源,文本聚合引擎306(或一些實施例中的決策引擎308)可以確定分布式硬件資源之間的計算任務(wù)的初步分配。初步分配可以表示硬件資源的期望分配,但是可以基于先前收集的文本信息,并且由于信息處理系統(tǒng)352處的持續(xù)變化而導(dǎo)致當(dāng)下可能不完全準(zhǔn)確。然后,文本聚合引擎306(或者一些實施例中的動作引擎304)可以向分布式信息處理系統(tǒng)發(fā)送第一請求,請求確認(rèn)初步分配。作為響應(yīng),可以從分布式信息處理系統(tǒng)中的至少一些接收第一分布式資源信息。應(yīng)當(dāng)注意,超時可應(yīng)用于對第一請求的響應(yīng)。第一分布式資源信息可以描述或指明分布式信息處理系統(tǒng)當(dāng)前可用的分布式硬件資源,以用于計算任務(wù)的分布式執(zhí)行。
基于第一分布式資源信息,文本聚合引擎306(或者一些實施例中的決策引擎308)可以確定在分布式硬件資源之中的計算任務(wù)的確認(rèn)分配。所確認(rèn)的分配可以包括或表示描述用于計算任務(wù)的分布式執(zhí)行的分布式硬件資源的工作負(fù)載策略354。然后,基于所確認(rèn)的分配,文本聚合引擎306(或者一些實施例中的動作引擎304)可以至少向作出響應(yīng)的分布式信息處理系統(tǒng)(稱為確認(rèn)的分布式信息處理系統(tǒng))發(fā)送第二請求,以使得第一分布式資源信息中描述的分布式硬件資源專用于計算任務(wù)。第二請求可以包括或可以表示當(dāng)確認(rèn)分配被確定時由文本聚合引擎306(或在一些實施例中的決策引擎308)確定的工作負(fù)載策略354。文本聚合引擎306(或者一些實施例中的動作引擎304)然后可以將計算任務(wù)分段以用于在確認(rèn)的分布式信息處理系統(tǒng)中分布式執(zhí)行。然后,文本聚合引擎306(或者一些實施例中的動作引擎304)可以將所分割的計算任務(wù)發(fā)送到所確認(rèn)的分布式信息處理系統(tǒng)中相應(yīng)的一個。作為響應(yīng),文本聚合引擎306(或一些實施例中的動作引擎304)可以從確認(rèn)的分布式信息處理系統(tǒng)中相應(yīng)的一個接收計算任務(wù)的分段輸出(或計算任務(wù)的結(jié)果)。然后,文本聚合引擎306(或一些實施例中的動作引擎304)可以組合分段輸出以生成計算任務(wù)的組合輸出。最后,文本聚合引擎306(或者一些實施例中的動作引擎304)可以將組合的輸出發(fā)送回請求計算任務(wù)的分布式執(zhí)行的信息處理系統(tǒng)352-1。
盡管存在上述用于工作負(fù)載任務(wù)的分布式執(zhí)行的雙重分配過程,包括初步分配和確認(rèn)的分配,但是在信息處理系統(tǒng)352處的持續(xù)變化可能導(dǎo)致第一分布式資源信息在相對短的時間內(nèi)變得過時或淘汰。因此,文本聚合引擎306(或者在一些實施例中的決策引擎308)可以接收指明第一分布式資源信息中的改變的指示?;谠撟兓?,可以更新確認(rèn)的分配,并且可以生成指示該變化的第二分布式資源信息。然后,根據(jù)需要可以重復(fù)上述過程,以執(zhí)行計算任務(wù)的分布式執(zhí)行。
現(xiàn)在參考圖4,示出了工作負(fù)載優(yōu)化服務(wù)器400的實施例的選定元件的框圖。在圖4中,工作負(fù)載優(yōu)化服務(wù)器400被表示為信息處理系統(tǒng),其包括用于實現(xiàn)工作負(fù)載優(yōu)化的物理和邏輯組件,如本文所述,并且相應(yīng)地包括處理器401、存儲器410和網(wǎng)絡(luò)接口420。處理器401可以代表一個或多個單獨的處理單元,并且可以執(zhí)行程序指令,分析數(shù)據(jù)以及處理由存儲器410或其他存儲(諸如數(shù)據(jù)庫430)存儲的數(shù)據(jù)以及其他示例。盡管圖4示出了包括物理和邏輯組件的工作負(fù)載優(yōu)化服務(wù)器400,但是應(yīng)當(dāng)理解,工作負(fù)載優(yōu)化服務(wù)器400(或數(shù)據(jù)庫430)可以使用共享硬件資源來實現(xiàn),諸如在管理程序下的虛擬機(jī)中,例如在托管多個虛擬服務(wù)器的機(jī)架域中。
在圖4中,存儲器410通信地耦合到處理器401,并且可以包括適于在一段時間內(nèi)保留程序指令和數(shù)據(jù)的系統(tǒng)、設(shè)備或裝置(例如,計算機(jī)可讀介質(zhì))。存儲器410可以包括各種類型的組件和設(shè)備,諸如隨機(jī)存取存儲器(ram)、電可擦除可編程只讀存儲器(eeprom)、pcmcia卡、閃存、固態(tài)磁盤、硬盤驅(qū)動器、磁帶庫、光學(xué)磁盤驅(qū)動器、磁光盤驅(qū)動器、壓縮磁盤驅(qū)動器、緊湊型磁盤陣列、磁盤陣列控制器和/或易失性或非易失性存儲器的任何合適的選擇或陣列。非易失性存儲器是指在電源關(guān)閉后保留數(shù)據(jù)的存儲器。應(yīng)當(dāng)注意,在各種實施例中,存儲器410可以包括不同數(shù)量的物理存儲設(shè)備。
如圖4所示,如本文所述,存儲器410可以包括用于分布式工作負(fù)載優(yōu)化的分布式工作負(fù)載優(yōu)化器402。在某些實施例中,工作負(fù)載優(yōu)化器402代表如圖3描述的工作負(fù)載優(yōu)化器302的實現(xiàn)。信息存儲器440可以存儲各種數(shù)據(jù)和參數(shù),諸如與工作負(fù)載優(yōu)化相關(guān)聯(lián)的數(shù)據(jù)和參數(shù),如本文所述。在一些實施例中,數(shù)據(jù)庫430可以包括可數(shù)據(jù)庫功能操作的單個信息處理系統(tǒng)。
圖5示出了根據(jù)本公開的一些實施例的用于動態(tài)控制的工作負(fù)載執(zhí)行的示例方法500。可以使用如關(guān)于圖2所述的工作負(fù)載優(yōu)化200來實現(xiàn)方法500。應(yīng)當(dāng)注意,方法500中描述的某些操作可以是可選的,或者可以在不同的實施例中重新排列。
方法500開始于接收(操作502)對指明用于在信息處理系統(tǒng)執(zhí)行的計算任務(wù)的信息處理系統(tǒng)的工作負(fù)載請求?;诠ぷ髫?fù)載請求,確定計算任務(wù)的工作負(fù)載屬性(操作504),工作負(fù)載屬性包括計算任務(wù)對包括在信息處理系統(tǒng)中的硬件資源的依賴性。信息處理系統(tǒng)中存在的硬件資源可以被識別(操作506)。至少一些硬件資源的操作狀態(tài)被監(jiān)測(操作508)。基于工作負(fù)載屬性和硬件資源,確定用于計算任務(wù)的工作負(fù)載策略(操作510),工作負(fù)載策略指明用于在信息處理系統(tǒng)執(zhí)行計算任務(wù)的硬件資源。在信息處理系統(tǒng)中實現(xiàn)工作負(fù)載策略(操作512),包括基于操作狀態(tài)配置工作負(fù)載策略中指定的硬件資源。根據(jù)工作負(fù)載策略,在信息處理系統(tǒng)處執(zhí)行計算任務(wù)(操作514)。
圖6a和6b示出了根據(jù)本公開的一些實施例的用于動態(tài)控制的分布式工作負(fù)載執(zhí)行的示例方法600??梢允褂萌珀P(guān)于圖3所述的分布式工作負(fù)載優(yōu)化300來實現(xiàn)方法600。應(yīng)當(dāng)注意,方法600中描述的某些操作可以是可選的,或者可以在不同的實施例中重新排列。
方法600開始于從第一信息處理系統(tǒng)接收(操作602)工作負(fù)載請求,工作負(fù)載請求指明用于分布式執(zhí)行的計算任務(wù)?;诠ぷ髫?fù)載請求,確定計算任務(wù)的工作負(fù)載屬性(操作604),工作負(fù)載屬性包括計算任務(wù)對包括在信息處理系統(tǒng)中的硬件資源的依賴性??赏ㄟ^網(wǎng)絡(luò)存取的分布式信息處理系統(tǒng)(操作606)被識別,以用于計算任務(wù)的分布式執(zhí)行,其包括識別分布式信息處理系統(tǒng)中存在的分布式硬件資源,包括至少一個信息處理系統(tǒng)?;诠ぷ髫?fù)載屬性和硬件資源,確定計算任務(wù)在分布式硬件資源之間的初步分配(操作608)。發(fā)送第一請求(操作610)到分布式信息處理系統(tǒng)以請求確認(rèn)初步分配。從分布式信息處理系統(tǒng)的至少一部分接收第一分布式資源信息(操作612),其描述響應(yīng)于第一請求的分布式信息處理系統(tǒng)處當(dāng)前可用的分布式硬件資源?;诘谝环植际劫Y源信息,在分布式硬件資源中確定計算任務(wù)的確認(rèn)分配(操作614)。
在操作614之后,方法600可以進(jìn)行到圖6b的操作616。基于所確認(rèn)的分配,將第二請求(操作616)發(fā)送到確認(rèn)的包括至少一些分布式信息處理系統(tǒng)的分布式信息處理系統(tǒng),以使得在第一分布式資源信息中描述的分布式硬件資源專用于該計算任務(wù)。對計算任務(wù)進(jìn)行分段(操作618)以用于在確認(rèn)的分布式信息處理系統(tǒng)中分布式執(zhí)行。分段的計算任務(wù)被發(fā)送(操作620)到相應(yīng)的確認(rèn)的分布式信息處理系統(tǒng)中。從相應(yīng)的確認(rèn)的分布式信息處理系統(tǒng)接收計算任務(wù)的分段輸出(操作622),分段輸出對應(yīng)于分段計算任務(wù)。分段輸出被組合(操作624)以產(chǎn)生計算任務(wù)的組合輸出。將組合好的輸出發(fā)送(操作626)到第一信息處理系統(tǒng)。
圖7示出了根據(jù)本公開的一些實施例的用于優(yōu)化專有工作負(fù)載的示例方法700??梢允褂萌珀P(guān)于圖2所述的工作負(fù)載優(yōu)化200來實現(xiàn)方法700。應(yīng)當(dāng)注意,方法700中描述的某些操作可以是可選的,或者可以在不同的實施例中重新排列。
方法700開始于在第二信息處理系統(tǒng)處接收(操作702)工作負(fù)載仿真數(shù)據(jù),工作負(fù)載仿真數(shù)據(jù)指示可在第一信息處理系統(tǒng)上執(zhí)行的專有計算任務(wù),以使得工作負(fù)載仿真數(shù)據(jù)不包括由專有計算使用的專有數(shù)據(jù)?;诠ぷ髫?fù)載仿真數(shù)據(jù),確定專有計算任務(wù)的工作負(fù)載屬性(操作704),工作負(fù)載屬性包括專有計算任務(wù)對包括在第一信息處理系統(tǒng)中的硬件資源的依賴性。存在于第一信息處理系統(tǒng)的硬件資源正在識別(操作706)?;谒_定的工作負(fù)載屬性和所識別的硬件資源,在用于專有計算任務(wù)的第二信息處理系統(tǒng)處確定工作負(fù)載策略(操作708),以使得工作負(fù)載策略指明用于執(zhí)行計算任務(wù)的硬件資源第一信息處理系統(tǒng)。將工作負(fù)載策略(操作710)發(fā)送到第一信息處理系統(tǒng),以使得工作負(fù)載策略可由第一信息處理系統(tǒng)使用以使用專有信息來執(zhí)行專有計算任務(wù)?;诠ぷ髫?fù)載仿真數(shù)據(jù),生成具有與專有計算任務(wù)相同的工作負(fù)載屬性的仿真計算任務(wù)(操作712)。在第二信息處理系統(tǒng)處實施工作負(fù)載策略(操作714)。當(dāng)實施工作負(fù)載策略時,在第二信息處理系統(tǒng)處執(zhí)行仿真計算任務(wù)(操作716)。
圖8示出了根據(jù)本公開的一些實施例的用于由應(yīng)用動態(tài)控制工作負(fù)載執(zhí)行的示例方法800??梢允褂脤崿F(xiàn)如關(guān)于圖1和圖2所述的工作負(fù)載優(yōu)化200的至少某些部分的應(yīng)用134來實現(xiàn)方法800。應(yīng)用134可以是例如在操作系統(tǒng)下執(zhí)行并且向操作系統(tǒng)的用戶提供功能的任何應(yīng)用。應(yīng)用134可以被編譯為使用軟件開發(fā)工具包(或其他庫)來包括工作負(fù)載優(yōu)化器202的至少某些部分,以將工作負(fù)載優(yōu)化200的功能集成到應(yīng)用134中。應(yīng)當(dāng)注意,方法800中描述的某些操作可以是可選的或可以在不同的實施例中重新排列。
方法800開始于由應(yīng)用確定(操作802)用于在信息處理系統(tǒng)處由應(yīng)用執(zhí)行的計算任務(wù)。由應(yīng)用確定計算任務(wù)的工作負(fù)載屬性(操作804),工作負(fù)載屬性包括計算任務(wù)對信息處理系統(tǒng)中包括的硬件資源的依賴性。存在于信息處理系統(tǒng)的硬件資源被應(yīng)用識別(操作806)。由應(yīng)用監(jiān)測至少一些硬件資源的操作狀態(tài)(操作808)?;诠ぷ髫?fù)載屬性和硬件資源,確定用于計算任務(wù)的工作負(fù)載策略(操作810),工作負(fù)載策略指明用于在信息處理系統(tǒng)處執(zhí)行計算任務(wù)的硬件資源。由信息處理系統(tǒng)的應(yīng)用實現(xiàn)工作負(fù)載策略(操作812),包括根據(jù)操作狀態(tài)配置工作負(fù)載策略中指定的硬件資源。在信息處理系統(tǒng)處根據(jù)工作負(fù)載策略執(zhí)行計算任務(wù)(操作814)。
這里,除非另有明確說明或在上下文表示,否則“或”是包容性且非排除性的。因此,除非另有明確說明或在上下文表示,否則在本文中“a或b”表示“a、b或兩者”。此外,除非另有明確說明或在上下文表示,否則“和”是聯(lián)合的和多個的。因此,除非另有明確說明或在上下文表示,否則在本文中“a和b”意指“a和b、共同或分別”。
本公開的范圍涵蓋了本領(lǐng)域普通技術(shù)人員將理解的對本文描述或示出的示例實施例的所有改變、替換、變化、改造和修改。本公開的范圍不限于這里描述或示出的示例性實施例。此外,盡管本公開描述并且將本文的各個實施例示出為包括特定組件、元件、特征、功能、操作或步驟,但是這些實施例中的任何實施例可以包括任何組件、元件、特征、功能、操作的任何組合或排列,或在本文任何地方描述或示出的本領(lǐng)域普通技術(shù)人員將理解的步驟。此外,在所附權(quán)利要求書中參考裝置或系統(tǒng)或裝置或系統(tǒng)的組件,其適于、被布置為、能夠:被配置為、能夠、可操作地或可操作地執(zhí)行特定功能的裝置、系統(tǒng)或裝置或系統(tǒng)的部件的參考包括該裝置,只要該裝置,其包括該裝置、系統(tǒng)、組件,無論其是否被激活、打開或解鎖,只要該裝置、系統(tǒng)或組件如此調(diào)整、布置、有能力、配置、啟用、可操作或有效的。