欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

混合計(jì)算環(huán)境中的高吞吐量計(jì)算的制作方法

文檔序號(hào):6352395閱讀:235來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::混合計(jì)算環(huán)境中的高吞吐量計(jì)算的制作方法
技術(shù)領(lǐng)域
:本發(fā)明一般涉及混合計(jì)算環(huán)境,且更具體地,涉及在混合計(jì)算環(huán)境中執(zhí)行高吞吐量計(jì)算。
背景技術(shù)
:今天的計(jì)算機(jī)系統(tǒng)已如此先進(jìn),以至于現(xiàn)在的一些計(jì)算環(huán)境包括不同架構(gòu)的核心組件,其共同操作以完成數(shù)據(jù)處理任務(wù)。這樣的計(jì)算環(huán)境通常被稱(chēng)為“混合”環(huán)境,這表示這樣的環(huán)境包括具有不同架構(gòu)的主計(jì)算機(jī)和加速器。盡管混合計(jì)算環(huán)境比很多非混合計(jì)算環(huán)境在數(shù)據(jù)處理上更有計(jì)算能力且更高效,這樣的混合計(jì)算環(huán)境通常不提供高吞吐量計(jì)算能力。于2009年3月5日提交的美國(guó)專(zhuān)利申請(qǐng)公開(kāi)號(hào)2009/0064168,“SystemandMethodforHardwareBasedDynamicLoadBalancingofMessagePassingInterfaceTasksByModifyingTasks”,教導(dǎo)了一種用于通過(guò)修改任務(wù)提供基于硬件的消息傳遞接口(MPI)任務(wù)的動(dòng)態(tài)負(fù)載平衡的系統(tǒng)和方法。提供了用于調(diào)節(jié)執(zhí)行MPI作業(yè)任務(wù)的處理器的處理工作量(workload)的平衡的機(jī)制,以便最小化用于等待所有處理器調(diào)用同步操作的等待時(shí)間段。每個(gè)處理器具有相關(guān)的硬件實(shí)施的MIP負(fù)載平衡控制器。MPI負(fù)載平衡控制器維護(hù)歷史,該歷史提供了關(guān)于任務(wù)對(duì)同步操作的調(diào)用的任務(wù)簡(jiǎn)檔(profile)。從該信息可確定哪些處理器應(yīng)當(dāng)使其處理負(fù)載減輕且哪些處理器能處理額外的處理負(fù)載而不顯著不利地影響并行執(zhí)行系統(tǒng)的整體操作。因此,可執(zhí)行操作來(lái)將工作量從最慢的處理器轉(zhuǎn)移到一個(gè)或多個(gè)更快的處理器。于2010年4月6日提交的美國(guó)專(zhuān)利號(hào)7,694,306,“Balancingcomputationalloadacrossapluralityofprocessors”,教導(dǎo)了跨多個(gè)處理器平衡計(jì)算負(fù)載。源代碼子任務(wù)被編譯為字節(jié)碼子任務(wù),由此字節(jié)碼子任務(wù)在運(yùn)行時(shí)被轉(zhuǎn)換為特定于處理器的目標(biāo)代碼子任務(wù)。處理器類(lèi)型的選擇是基于以下三個(gè)方法中一個(gè)1)蠻力方法;2)更高級(jí)別方法,或3)處理器可用性方法。每個(gè)目標(biāo)代碼子任務(wù)被加載到對(duì)應(yīng)的處理器類(lèi)型以便執(zhí)行。在一個(gè)實(shí)施例中,編譯器將指針存儲(chǔ)在字節(jié)碼文件中,該指針引用字節(jié)碼子任務(wù)的位置。在該實(shí)施例中,字節(jié)碼子任務(wù)被存儲(chǔ)在共享庫(kù)中且在運(yùn)行時(shí),運(yùn)行時(shí)加載器使用指針來(lái)識(shí)別字節(jié)碼子任務(wù)的位置,以便轉(zhuǎn)換字節(jié)碼子任務(wù)。因此,本領(lǐng)域中存在解決前述問(wèn)題的需求。
發(fā)明內(nèi)容從第一方面來(lái)看,本發(fā)明提供了一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的方法。該方法包括分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議。該組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議(SLA)與混合處理系統(tǒng)相關(guān)。該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu)?;谠摻M高吞吐量計(jì)算SLA來(lái)監(jiān)視服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)處的第二組資源?;谠摫O(jiān)視,跨第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù)。該組數(shù)據(jù)并行工作量任務(wù)的動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。從另一方面來(lái)看,本發(fā)明提供了一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的系統(tǒng)。該系統(tǒng)包括存儲(chǔ)器和通信地耦合到該存儲(chǔ)器的處理器。工作量管理器通信地耦合到存儲(chǔ)器和處理器。工作量管理器適于執(zhí)行方法。該方法包括分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議。該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān)。該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu)?;谠摻M高吞吐量計(jì)算SLA來(lái)監(jiān)視該服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)處的第二組資源?;谠摫O(jiān)視,跨第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù)。該組數(shù)據(jù)并行工作量任務(wù)的動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。從又一方面來(lái)看,本發(fā)明提供了一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括可被處理電路讀取并存儲(chǔ)指令的存儲(chǔ)介質(zhì),所述指令可被處理電路執(zhí)行以執(zhí)行方法。該方法包括分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議。該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān)。該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu)?;谠摻M高吞吐量計(jì)算SLA來(lái)監(jiān)視該服務(wù)器系統(tǒng)上的第一組資源和該組加速器系統(tǒng)上的第二組資源?;谠摫O(jiān)視,跨第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù)。該組數(shù)據(jù)并行工作量任務(wù)的動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。從再一方面來(lái)看,本發(fā)明提供了一種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)并可加載到數(shù)字計(jì)算機(jī)的內(nèi)部存儲(chǔ)器的計(jì)算機(jī)程序,其包括軟件代碼部分,當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí),所述軟件代碼部分用于執(zhí)行本發(fā)明的步驟?,F(xiàn)在將僅通過(guò)舉例的方式,參考以下附圖中示出的優(yōu)選實(shí)施例描述本發(fā)明圖1是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的操作環(huán)境的一個(gè)例子的框圖;圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例跨混合系統(tǒng)分配高吞吐量計(jì)算工作量的一個(gè)例子的框圖;圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的混合系統(tǒng)中的工作量遷移的功能時(shí)序圖;圖4是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于混合系統(tǒng)的工作量隊(duì)列的一個(gè)例子的框圖;圖5是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于高吞吐量計(jì)算的混合系統(tǒng)中的服務(wù)器的一種配置的框圖;圖6是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的在混合系統(tǒng)中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖;圖7是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)訪(fǎng)問(wèn)配置在混合系統(tǒng)中提供高吞吐量計(jì)算的另一個(gè)例子的操作流程圖8是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的根據(jù)另一個(gè)數(shù)據(jù)訪(fǎng)問(wèn)配置、通過(guò)重新分配工作量在混合系統(tǒng)中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖;圖9是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的根據(jù)另一個(gè)數(shù)據(jù)訪(fǎng)問(wèn)配置、通過(guò)基于SLA重新分配工作量在混合系統(tǒng)中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖;圖10是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例在混合系統(tǒng)中集群(cluster)工作量的一個(gè)例子的操作流程圖;圖11是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的在混合系統(tǒng)中遷移工作量的一個(gè)例子的操作流程圖;圖12是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例在系統(tǒng)環(huán)境中配置服務(wù)器系統(tǒng)以便執(zhí)行加速器工作量的一個(gè)例子的操作流程圖;以及圖13是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的信息處理系統(tǒng)的詳細(xì)視圖的框圖。具體實(shí)施例方式根據(jù)要求在此公開(kāi)本發(fā)明的具體實(shí)施例;但是應(yīng)當(dāng)理解,公開(kāi)的實(shí)施例僅是本發(fā)明的示例,本發(fā)明可被實(shí)施為各種形式。因此,在此公開(kāi)的特定結(jié)構(gòu)和功能細(xì)節(jié)不應(yīng)被解釋為限制性的,而僅僅是權(quán)利要求的基礎(chǔ),且是用于教導(dǎo)本領(lǐng)域技術(shù)人員以各種方式以幾乎任何合適的詳細(xì)結(jié)構(gòu)使用本發(fā)明的代表性基礎(chǔ)。而且,在此使用的術(shù)語(yǔ)和短語(yǔ)不是限制性的,而是提供本發(fā)明的可理解描述。在此使用的術(shù)語(yǔ)“一”或“一個(gè)”被限定為一個(gè)或多于一個(gè)。在此使用的術(shù)語(yǔ)多個(gè)被限定為兩個(gè)或多于兩個(gè)。復(fù)數(shù)和單數(shù)術(shù)語(yǔ)是一樣的,除非另外清楚說(shuō)明。在此使用的術(shù)語(yǔ)另一個(gè)被定義為至少第二個(gè)或更多。在此使用的術(shù)語(yǔ)包括和/或具有被定義為包含(即,開(kāi)放式語(yǔ)言)。在此使用的術(shù)語(yǔ)耦合被定義為連接,盡管不必是直接的且不必是機(jī)械的。在此使用的術(shù)語(yǔ)程序、軟件應(yīng)用等被定義為一系列被設(shè)計(jì)為在計(jì)算機(jī)系統(tǒng)上執(zhí)行的指令。程序、計(jì)算機(jī)程序或軟件應(yīng)用可包括子程序、函數(shù)、過(guò)程、對(duì)象方法、對(duì)象實(shí)現(xiàn)、可執(zhí)行應(yīng)用、小應(yīng)用程序、小服務(wù)程序、源代碼、目標(biāo)代碼、共享庫(kù)/動(dòng)態(tài)加載庫(kù)和/或其他被設(shè)計(jì)為計(jì)算機(jī)系統(tǒng)上執(zhí)行的指令序列。操作環(huán)境圖1示出了適用于本發(fā)明的多個(gè)優(yōu)選實(shí)施例的操作環(huán)境100的例子。在該例子中操作環(huán)境100是混合計(jì)算環(huán)境。在此使用的術(shù)語(yǔ)“混合計(jì)算環(huán)境”是一種計(jì)算環(huán)境,在于其包括可操作地耦合到計(jì)算機(jī)存儲(chǔ)器的計(jì)算機(jī)處理器,以便以在存儲(chǔ)器中存儲(chǔ)并在處理器上執(zhí)行的計(jì)算機(jī)程序指令的執(zhí)行的形式來(lái)進(jìn)行數(shù)據(jù)處理。此外,圖1的例子中的混合計(jì)算環(huán)境100包括主機(jī)/服務(wù)器架構(gòu),其與具有加速器架構(gòu)的加速器合作進(jìn)行操作,其中所述服務(wù)器架構(gòu)和加速器架構(gòu)是不同的架構(gòu)。該例子中的主機(jī)/服務(wù)器和加速器架構(gòu)的特征在于架構(gòu)寄存器,其是由在每個(gè)架構(gòu)上執(zhí)行的計(jì)算機(jī)程序指令可訪(fǎng)問(wèn)的寄存器,例如指令寄存器、程序計(jì)數(shù)器、存儲(chǔ)器索引寄存器、堆棧指針等寄存器。就是說(shuō),兩個(gè)架構(gòu)的架構(gòu)寄存器的數(shù)量、類(lèi)型、結(jié)構(gòu)及其之間的關(guān)系是不同的,以至于為在混合計(jì)算環(huán)境的主計(jì)算機(jī)上執(zhí)行而編譯的計(jì)算機(jī)程序指令通常不能被混合計(jì)算環(huán)境的任何相關(guān)加速器本機(jī)執(zhí)行。混合計(jì)算環(huán)境的例子包括數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)轉(zhuǎn)而包括一個(gè)或多個(gè)主計(jì)算機(jī),每個(gè)主計(jì)算機(jī)具有丨BIVISystemz處理器,以及其架構(gòu)寄存器實(shí)施IBMwPOWEF^.指令集的加速器。為在主計(jì)算機(jī)中的IBMSystemz上執(zhí)行而編譯的計(jì)算機(jī)程序指令不能被加速器中的IBMPOWER處理器本機(jī)執(zhí)行。特別地,圖1示出諸如服務(wù)器系統(tǒng)102的主機(jī)系統(tǒng)、多個(gè)加速器系統(tǒng)104以及通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)108通信地耦合的一個(gè)或多個(gè)用戶(hù)客戶(hù)機(jī)106。所述一個(gè)或多個(gè)網(wǎng)絡(luò)108可以是任何類(lèi)型的有線(xiàn)和/或無(wú)線(xiàn)通信網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)108可以是內(nèi)部網(wǎng)、外部網(wǎng)或諸如因特網(wǎng)的互連網(wǎng)絡(luò),或其組合。網(wǎng)絡(luò)108可包括無(wú)線(xiàn)、有線(xiàn)和/或光纖鏈路。在一個(gè)實(shí)施例中,服務(wù)器系統(tǒng)102是任何類(lèi)型的服務(wù)器系統(tǒng),諸如但不限于IBMSystemz服務(wù)器。在一個(gè)實(shí)施例中加速器系統(tǒng)104是刀片服務(wù)器,諸如但不限于IBMSystemp或Systemx月艮務(wù)器。在一個(gè)實(shí)施例中,用戶(hù)客戶(hù)機(jī)106是允許用戶(hù)與服務(wù)器系統(tǒng)102和/或加速器系統(tǒng)104交互的任何信息處理系統(tǒng),諸如但不限于工作站、臺(tái)式機(jī)、筆記本、無(wú)線(xiàn)通信設(shè)備、游戲控制臺(tái)等。用戶(hù)客戶(hù)機(jī)106包括一個(gè)或多個(gè)界面110,其允許用戶(hù)與服務(wù)器系統(tǒng)102和/或加速器系統(tǒng)104交互。應(yīng)當(dāng)注意到以上給出的服務(wù)器系統(tǒng)102、加速器系統(tǒng)104和用戶(hù)客戶(hù)機(jī)106的例子僅是為了說(shuō)明的目的,且其他類(lèi)型的系統(tǒng)也適用。IBM、Systemz、POWER、Systemp和Systemx是在世界上許多管轄地注冊(cè)的國(guó)際商業(yè)機(jī)器公司的商標(biāo)。由于各種系統(tǒng)類(lèi)型的服務(wù)器102和加速器104的異構(gòu)組合,服務(wù)器系統(tǒng)102和加速器系統(tǒng)104的組合在此被稱(chēng)為混合環(huán)境100中的混合服務(wù)器/系統(tǒng)112。例如,服務(wù)器系統(tǒng)102包括通過(guò)高速存儲(chǔ)總線(xiàn)(未示出)可操作地耦合到計(jì)算機(jī)存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(未示出)的一個(gè)或多個(gè)處理器114(每個(gè)處理器具有一個(gè)或多個(gè)核心)。處理器114包括限定主計(jì)算機(jī)架構(gòu)的一組架構(gòu)寄存器(未示出)。每個(gè)加速器104也包括一個(gè)或多個(gè)處理器116,其包括限定加速器架構(gòu)的一組架構(gòu)寄存器(未示出)。應(yīng)當(dāng)注意每個(gè)加速器系統(tǒng)104可包括相同或不同類(lèi)型的處理器。每個(gè)加速器的處理器116(每個(gè)具有一個(gè)或多個(gè)核心)的架構(gòu)寄存器與服務(wù)器系統(tǒng)102中的處理器114的架構(gòu)寄存器不同。使用不同的架構(gòu),服務(wù)器系統(tǒng)102和加速器104支持同樣的指令集將是不尋常的,盡管是可能的。這樣,通常不會(huì)預(yù)期為加速器104的處理器116上的執(zhí)行而編譯的計(jì)算機(jī)程序指令將在服務(wù)器系統(tǒng)102的處理器114上本機(jī)執(zhí)行,反正亦然。而且,由于服務(wù)器和加速器處理器之間的硬件架構(gòu)的典型差異,通常不會(huì)預(yù)期為在服務(wù)器系統(tǒng)102的處理器114上執(zhí)行而編譯的計(jì)算機(jī)程序指令在加速器104的處理器116上本機(jī)執(zhí)行,即使加速器支持服務(wù)器的指令集。針對(duì)服務(wù)器系統(tǒng)104,加速器架構(gòu)為了特定類(lèi)別的計(jì)算功能的執(zhí)行速度而被優(yōu)化。即,對(duì)于加速器被優(yōu)化的一個(gè)或多個(gè)功能,這些功能在加速器104上的執(zhí)行將通常比其在服務(wù)器系統(tǒng)102的處理器上的執(zhí)行要快。在一個(gè)實(shí)施例中,服務(wù)器系統(tǒng)102包括工作量管理器118、一個(gè)或多個(gè)處理器114和存儲(chǔ)在數(shù)據(jù)庫(kù)或存儲(chǔ)器122中的多個(gè)服務(wù)級(jí)別協(xié)議(SLA)120等。應(yīng)當(dāng)注意SLA也可被存儲(chǔ)在通信地耦合到服務(wù)器系統(tǒng)102的一個(gè)或多個(gè)信息處理系統(tǒng)(未示出)中。在一個(gè)實(shí)施例中SLA是用戶(hù)對(duì)需要由工作量滿(mǎn)足的服務(wù)級(jí)別的規(guī)定。工作量管理器協(xié)商級(jí)別并協(xié)調(diào)(orchestrate)工作量以滿(mǎn)足這些服務(wù)級(jí)別。吞吐量計(jì)算SLA記錄可具有用于性能吞吐量、性能響應(yīng)時(shí)間批窗口(performance-responsetime-batchwindow)、能量、可靠性和可用性的多個(gè)子記錄。在工作量運(yùn)行期間,由于輸入數(shù)據(jù)率和量或其他執(zhí)行條件的變化,SLA記錄值可動(dòng)態(tài)變化。工作量管理器118被配置為提供用于混合服務(wù)器112的高吞吐量計(jì)算(HTC)環(huán)境。高吞吐量計(jì)算環(huán)境可包括(i)數(shù)據(jù)并行和向量元件;(ii)批窗口;以及(iii)長(zhǎng)時(shí)間的持續(xù)計(jì)算吞吐量(操作/秒)。在一個(gè)實(shí)施例中,混合服務(wù)器112利用單指令多數(shù)據(jù)(SMD)結(jié)構(gòu)來(lái)實(shí)現(xiàn)數(shù)據(jù)并行,該結(jié)構(gòu)增加了單個(gè)指令執(zhí)行的工作,這樣它同時(shí)在多個(gè)數(shù)據(jù)項(xiàng)上操作。包括SMD的混合服務(wù)器112中的處理器能在其SMD單元中本機(jī)執(zhí)行某個(gè)長(zhǎng)度的數(shù)據(jù)并行計(jì)算。對(duì)于要求具有長(zhǎng)向量的數(shù)據(jù)并行計(jì)算的工作量,來(lái)自多個(gè)處理器核心的SIMD單元可在軟件中“成組”(ganged)或“形成菊花鏈”(daisy-chained),從而允許比由處理器核心的本機(jī)SMD單元允許的向量更長(zhǎng)的向量上的操作。如果服務(wù)器處理器上的“凈空間”(headroom)跨多個(gè)核心可用,做出使用這種成組配置的選擇?;蛘撸ぷ髁靠稍趩蝹€(gè)核心上的循環(huán)中完成數(shù)據(jù)并行計(jì)算。工作量管理器118包括SLA管理器124、工作量分配器126、集群調(diào)度器128、批窗口管理器130、動(dòng)態(tài)工作量重新分配器132、工作量移動(dòng)性管理器134和工作量隊(duì)列136。以下將更詳細(xì)地討論工作量管理器118和這些組件中的每一個(gè)。加速器104包括如上討論的一個(gè)或多個(gè)處理器116,以及用于在加速器104處排隊(duì)各種將被執(zhí)行的工作量的一個(gè)或多個(gè)工作量隊(duì)列138等,以下將詳細(xì)討論加速器。如以上討論的,混合系統(tǒng)112是異構(gòu)系統(tǒng)。因此,在一個(gè)實(shí)施例中,混合計(jì)算環(huán)境100實(shí)施跨平臺(tái)并行編程環(huán)境,諸如但不限于OpenCL(開(kāi)放計(jì)算語(yǔ)言)環(huán)境。這種類(lèi)型的環(huán)境允許跨若干諸如中央處理單元(CPU)、圖形處理單元(GPU)和加速器的異構(gòu)設(shè)備的并行編程。換句話(huà)說(shuō),跨平臺(tái)并行編程環(huán)境允許程序跨異構(gòu)組件執(zhí)行。在這種環(huán)境中,工作量包括多個(gè)進(jìn)程/地址空間。每個(gè)進(jìn)程可執(zhí)行若干任務(wù),且每個(gè)任務(wù)可卸載某些計(jì)算密集部分到計(jì)算內(nèi)核(computekernel),所述部分是可執(zhí)行代碼的基本單元。計(jì)算內(nèi)核可在諸如處理器核心的一個(gè)計(jì)算元件或若干計(jì)算元件上執(zhí)行。計(jì)算內(nèi)核可以是相對(duì)于諸如服務(wù)器系統(tǒng)102中的處理器的CPU任務(wù)并行的,或者是相對(duì)于諸如加速器104中的處理器的CPU數(shù)據(jù)并行的。如果計(jì)算內(nèi)核以諸如C或C++的語(yǔ)言編寫(xiě)且被編譯到本地指令集,混合系統(tǒng)112為混合系統(tǒng)112中的每個(gè)不同架構(gòu)維護(hù)單獨(dú)的計(jì)算內(nèi)核。如果計(jì)算內(nèi)核用諸如Java或OpenCL的語(yǔ)言編寫(xiě),僅需要維護(hù)一個(gè)內(nèi)核,因?yàn)镴ava和OpenCL為計(jì)算內(nèi)核提供支持以便跨不同的架構(gòu)可移植地運(yùn)行。工作量分別在服務(wù)器102和加速器104的工作量隊(duì)列136、138中排隊(duì)。Java是Oracle和/或其附屬公司的注冊(cè)商標(biāo)。其他名稱(chēng)可能是其各自的所有者在美國(guó)和/或其他國(guó)家的商標(biāo)。工作量管理器118將這些計(jì)算內(nèi)核發(fā)送給加速器104。或者,當(dāng)啟動(dòng)調(diào)用這些內(nèi)核功能的進(jìn)程時(shí),服務(wù)器上的OpenCL運(yùn)行時(shí)進(jìn)程可將這些內(nèi)核發(fā)送給加速器。加速器也可選擇將OpenCL內(nèi)核存儲(chǔ)在其本地三級(jí)存儲(chǔ)器中。當(dāng)服務(wù)器上的調(diào)用進(jìn)程運(yùn)行時(shí),可調(diào)用這些內(nèi)核。這些計(jì)算內(nèi)核隨后在加速器104上被啟動(dòng)。服務(wù)器將數(shù)據(jù)傳遞給這些計(jì)算內(nèi)核并基于數(shù)據(jù)計(jì)算結(jié)果。這些結(jié)果隨后從加速器104被傳遞到服務(wù)器系統(tǒng)102。應(yīng)當(dāng)注意,即使以下討論可討論針對(duì)該跨平臺(tái)并行編程環(huán)境的各種實(shí)施例,本發(fā)明的一個(gè)或多個(gè)優(yōu)選實(shí)施例也適用于非跨平臺(tái)并行編程環(huán)境。如上所述,傳統(tǒng)的混合計(jì)算環(huán)境通常不提供跨整個(gè)混合計(jì)算系統(tǒng)的高吞吐量計(jì)算要求的統(tǒng)一規(guī)范和管理。例如,在混合計(jì)算環(huán)境中實(shí)施的許多服務(wù)器系統(tǒng)不是被配置為在很長(zhǎng)的時(shí)間跨度中執(zhí)行數(shù)據(jù)并行操作。而且,傳統(tǒng)的混合計(jì)算環(huán)境通常在服務(wù)器系統(tǒng)上調(diào)度較不計(jì)算密集的工作量,諸如在線(xiàn)交易處理工作量,以及在加速器上調(diào)度較為計(jì)算密集的工作量。但是,如以下將更詳細(xì)討論的,本發(fā)明的各種優(yōu)選實(shí)施例通過(guò)支持吞吐量計(jì)算SLA、服務(wù)器102和加速器104之間的代理(surrogate)執(zhí)行、跨網(wǎng)絡(luò)鏈路的交叉鏈接隊(duì)列以及基于性能/能量權(quán)衡的合并的數(shù)據(jù)/工作量竊用(stealing)解決了這些問(wèn)題。而且,各種實(shí)施例通過(guò)將計(jì)算密集工作量組件置于服務(wù)器系統(tǒng)以及加速器上,最大化吞吐量且最小化能量足跡(當(dāng)服務(wù)器系統(tǒng)的沒(méi)有互鎖流水線(xiàn)階段的微處理器(MIPS)/瓦特或每秒浮點(diǎn)運(yùn)算(FLOP)/瓦特少于可比較加速器系統(tǒng)時(shí))?;旌嫌?jì)算環(huán)境中的高吞吐量計(jì)算在一個(gè)實(shí)施例中,通過(guò)支持SLA120和工作量管理,工作管理器118為混合系統(tǒng)112提供吞吐量計(jì)算環(huán)境。工作量管理器118為例如向量運(yùn)算/秒的數(shù)據(jù)并行運(yùn)算提供SLA;彈性批窗口;對(duì)服務(wù)器系統(tǒng)和加速器處理器的支持;工作量集群調(diào)度;以及關(guān)于輸入/輸出、存儲(chǔ)器和處理器組件的資源保證。工作量管理器118通過(guò)工作量分配器126能跨服務(wù)器系統(tǒng)和加速器資源二者管理/分配工作量,以便滿(mǎn)足SLA120的要求。例如,SLA管理器124從存儲(chǔ)區(qū)域122檢索SLA120并確定SLA120要求在2天的時(shí)間段內(nèi)每秒10,000次運(yùn)算。在該例子中,加速器104的內(nèi)核總計(jì)僅能夠執(zhí)行每秒5000次運(yùn)算,而這不能滿(mǎn)足SLA120。因此,工作量管理器118調(diào)度加速器工作量的一部分202、204(例如任務(wù)),作為加速器處理器116處的一個(gè)或多個(gè)計(jì)算內(nèi)核206、208,以及工作量的剩余部分210、212,作為服務(wù)器系統(tǒng)處理器114處的一個(gè)或多個(gè)計(jì)算內(nèi)核214、216,這樣可達(dá)到每秒10,000次運(yùn)算的SLA120。服務(wù)器系統(tǒng)102處的處理器114可被稱(chēng)為“代理處理器”,因?yàn)樗鼈兪菆?zhí)行加速器工作量的數(shù)據(jù)并行計(jì)算以補(bǔ)充加速器處理器116的處理器。使用服務(wù)器系統(tǒng)資源補(bǔ)充加速器資源可被稱(chēng)為“代理執(zhí)行”。如可從圖2中看到的,工作量管理器118能夠利用服務(wù)器系統(tǒng)104上的資源來(lái)補(bǔ)充加速器資源,以便達(dá)到SLA要求。工作量管理器118也提供資源保證。例如,如果SLA120要求每秒10,000次運(yùn)算,工作量管理器118確保混合系統(tǒng)112提供該持續(xù)的速率。但是,(例如)由于額外的進(jìn)來(lái)的數(shù)據(jù),該SLA120可從每秒10,000次運(yùn)算變?yōu)槊棵?5,000次運(yùn)算。因此,在該例子中,工作量管理器118動(dòng)態(tài)地把額外內(nèi)核206、208、214、216分配到服務(wù)器系統(tǒng)102、加速器104、或二者,這樣額外的加速器工作量可被執(zhí)行以便維持每次每秒15,000次運(yùn)算。換句話(huà)說(shuō),工作量管理器118提供資源保證,這樣如果吞吐量計(jì)算率有變化,則工作量管理器118分配額外的資源以提供吞吐量計(jì)算率。此外,工作量管理器可在加速器上運(yùn)行代理(agent),其使用硬件和軟件計(jì)數(shù)器來(lái)測(cè)量有效的計(jì)算吞吐率、輸入/輸出數(shù)據(jù)率和存儲(chǔ)器帶寬。如以上討論的,混合系統(tǒng)112執(zhí)行數(shù)據(jù)并行運(yùn)算。換句話(huà)說(shuō),數(shù)據(jù)可跨混合系統(tǒng)112中的多個(gè)處理器或計(jì)算節(jié)點(diǎn)被分配。在一些例子中,這些數(shù)據(jù)并行運(yùn)算可要求來(lái)自其他運(yùn)算的數(shù)據(jù)。例如,第一工作量組可執(zhí)行向量的乘法,且第二組可執(zhí)行向量的減法并要求第一組的結(jié)果。因此,通過(guò)工作量集群調(diào)度器128,工作量管理器118識(shí)別依賴(lài)的工作量組并將這些依賴(lài)的組一起放置在集群中,這樣它們可同時(shí)被調(diào)度在一組服務(wù)器系統(tǒng)處理器114和加速器處理器116上。換句話(huà)說(shuō),多個(gè)工作量組位于單個(gè)集群中,且是一組類(lèi)似的數(shù)據(jù)并行工作量(例如,它們執(zhí)行類(lèi)似的數(shù)據(jù)并行運(yùn)算),在工作量和工作量組之間具有依賴(lài)性。例如,圖2示出的工作量202、204、210、212可都位于一工作量集群中。因此,來(lái)自第一循環(huán)的第一工作量組的結(jié)果可在第二循環(huán)開(kāi)始前被傳遞給同一集群中的第二工作量組。應(yīng)注意,集群中的工作量可被混合,且不要求是類(lèi)似的,但它們?nèi)匀槐灰黄鹫{(diào)度或同時(shí)調(diào)度。通過(guò)集群調(diào)度器128,工作量管理器118隨后可臨時(shí)排列集群中的工作量(如果它們具有依賴(lài)性的話(huà)),以及臨時(shí)排列工作量集群(如果它們彼此之間具有依賴(lài)性的話(huà))。此外,工作量管理器134通過(guò)批窗口管理器130支持彈性批窗口。批窗口是時(shí)間窗口,其指定何時(shí)批處理工作量可完成。這是SLA(服務(wù)級(jí)別協(xié)議)的一個(gè)屬性。批窗口規(guī)范由工作量管理器使用以分配資源,這樣工作量可在批窗口內(nèi)完成。在工作量執(zhí)行期間,可要求工作量以在初始批最終期限規(guī)范前或后完成。這樣的批窗口規(guī)范被稱(chēng)為彈性批窗口?;趫?zhí)行期間的業(yè)務(wù)處理要求或數(shù)據(jù)處理要求,批窗口可隨時(shí)間縮小或擴(kuò)大。工作量管理器134通過(guò)批窗口管理器130分配更多的資源給例如工作量集群以滿(mǎn)足縮小的批窗口。該過(guò)程可包括在運(yùn)行中(onthefly)添加或刪除額外加速器和/或在運(yùn)行中添加/刪除服務(wù)器系統(tǒng)代理處理器。每個(gè)額外的加速器可運(yùn)行允許縮小的批時(shí)間窗口被滿(mǎn)足的計(jì)算內(nèi)核。如果批窗口規(guī)范被放松,則工作量管理器134可移除加速器和相關(guān)的內(nèi)核,這樣這些可被其他工作量使用。使用優(yōu)化的加速器資源組,工作量可在放松的批窗口中完成。一旦工作量已跨混合系統(tǒng)112被調(diào)度,工作量管理器118通過(guò)工作量移動(dòng)性管理器134允許服務(wù)器系統(tǒng)102和加速器134之間的異構(gòu)移動(dòng)性。換句話(huà)說(shuō),工作量可從加速器處理器116(用第一架構(gòu)實(shí)施的)移動(dòng)到服務(wù)器系統(tǒng)102上的代理處理器114(用與第一架構(gòu)不同的第二架構(gòu)實(shí)施的)。例如,圖3示出在Tl多個(gè)工作量302、304被分配在加速器處理器116中。工作量管理器118確定一個(gè)或多個(gè)工作量304需要被遷移到服務(wù)器系統(tǒng)102。例如,工作量304可需要來(lái)自服務(wù)器系統(tǒng)102的特定數(shù)據(jù),但是SLA120指示出于安全原因該數(shù)據(jù)不能從服務(wù)器系統(tǒng)102移開(kāi)。因此,工作量管理器118在T2將工作量304從加速器104遷移到服務(wù)器系統(tǒng)102處的計(jì)算核心(或加速器)310,在此工作量可使用服務(wù)器系統(tǒng)102處的所需數(shù)據(jù)執(zhí)行其運(yùn)算??捎酶鞣N方式執(zhí)行異構(gòu)移動(dòng)性。例如,第一方法是當(dāng)接收到移動(dòng)中斷時(shí)執(zhí)行與架構(gòu)無(wú)關(guān)的檢查點(diǎn)狀態(tài)。如果正在遷移的工作量的代碼包括控制流,則代碼中的所有變量與對(duì)應(yīng)于中斷狀態(tài)的任何源代碼行號(hào)一起保存。當(dāng)工作量遷移時(shí),這些隨后被重新加載在新的處理器上。如果代碼包括數(shù)據(jù)流,來(lái)自工作量的數(shù)據(jù)可從工作量正在遷移離開(kāi)的服務(wù)器/加速器被傳遞到工作量正在遷移到的服務(wù)器/加速器。在該第一方法中,可執(zhí)行體(executable)的兩個(gè)副本位于不同架構(gòu)中的每個(gè)上。在第二方法中,可執(zhí)行體可在遷移離開(kāi)的處理器處被停止,且在遷移到的處理器處重新開(kāi)始。例如,遷移離開(kāi)的處理器(在服務(wù)器系統(tǒng)102或在加速器104處)的恢復(fù)單元(未示出)被用來(lái)保存該遷移離開(kāi)的處理器的執(zhí)行狀態(tài)。Systemz和Systemp處理器中的恢復(fù)單元或R單元存儲(chǔ)處理器的架構(gòu)狀態(tài)。映射表將寄存器狀態(tài)與中間表示(IR)結(jié)構(gòu)、符號(hào)、源代碼級(jí)結(jié)構(gòu)和符號(hào)進(jìn)行關(guān)聯(lián)。當(dāng)工作量被遷移到另一個(gè)處理器時(shí),使用映射表,恢復(fù)單元的執(zhí)行狀態(tài)可被解碼并被加載到新的處理器。這些實(shí)施例允許工作量跨不同架構(gòu)的物理機(jī)器被遷移。工作量管理器118將工作量移動(dòng)到數(shù)據(jù)交換最有效、安全且/或可獲得數(shù)據(jù)的位置。決定將工作量從加速器104移動(dòng)到服務(wù)器系統(tǒng)102或反之可基于由SLA120指示的性能或能量要求,或者基于自然交互親合性(數(shù)據(jù)交換效率和安全性)。而且,遷移可取決于正在執(zhí)行的工作量的類(lèi)型。例如,一種類(lèi)型的工作量是吞吐量計(jì)算批工作量(例如,修復(fù)/擴(kuò)展任務(wù),輸入數(shù)據(jù)的變量賦值,其焦點(diǎn)為數(shù)據(jù)并行操作),而另一類(lèi)型的工作量是長(zhǎng)時(shí)間運(yùn)行的計(jì)算工作量(具有大部分為標(biāo)量的操作)。對(duì)于吞吐量計(jì)算批工作量,這些工作量可被分配給服務(wù)器系統(tǒng)處理器114、加速器處理器116或這兩者。移動(dòng)性管理器134監(jiān)視關(guān)于工作量的性能度量和/或能量度量,以確定這些度量是否在各自給定的閾值之上或之下。如果工作量移動(dòng)性管理器134確定給定的閾值沒(méi)有被滿(mǎn)足或者被超過(guò),則移動(dòng)性管理器134將至少一部分工作量從其當(dāng)前系統(tǒng)(服務(wù)器102或加速器104)向其他系統(tǒng)(服務(wù)器102或加速器104)遷移。這允許混合系統(tǒng)112獲得相應(yīng)SLA120所表示的性能和/或能量度量水平。應(yīng)注意,可以用批時(shí)間窗口和能量窗口規(guī)范來(lái)初始化吞吐量計(jì)算批工作量。批時(shí)間窗口規(guī)范可以規(guī)定吞吐量計(jì)算工作量必須在例如4小時(shí)內(nèi)完成。能量窗口規(guī)范可以規(guī)定工作量必須不能消耗大于400瓦特小時(shí)的能量。工作量管理器134同時(shí)考慮批時(shí)間窗口和能量窗口規(guī)范來(lái)執(zhí)行工作量。工作量可以在加速器上運(yùn)行,從而導(dǎo)致例如2小時(shí)的壓縮的執(zhí)行時(shí)間,但能量消耗為300瓦特小時(shí)。如果工作量管理器134評(píng)估可以滿(mǎn)足批窗口并可以合理滿(mǎn)足能量窗口,它可以決定將工作量移動(dòng)到服務(wù)器上(假設(shè)服務(wù)器是節(jié)能的)。SLA還可以包括用于批窗口和能量窗口之間的優(yōu)先次序區(qū)分的字段。而且,對(duì)于這樣的工作量,移動(dòng)性只有在任務(wù)完成之后才會(huì)完成,且狀態(tài)不會(huì)被保持。對(duì)于具有長(zhǎng)時(shí)間運(yùn)行的計(jì)算的工作量,這些工作量可以包括初始啟動(dòng)數(shù)據(jù),且不執(zhí)行工作量移動(dòng)性,除非執(zhí)行條件例如交叉點(diǎn)(cross-overpoint)被滿(mǎn)足。這些工作量可以用批時(shí)間窗口或能量窗口規(guī)范來(lái)初始化,從而只有在到達(dá)這些窗口時(shí)這些工作量才被遷移。但是,在遷移工作量之前可能需要執(zhí)行檢查點(diǎn)(checkpoint)。該工作量類(lèi)型可以?xún)H支持有限的檢查點(diǎn)位置,在所述位置處可以追求移動(dòng)性。如以上所討論的,在傳統(tǒng)的混合計(jì)算環(huán)境中,計(jì)算密集的工作量一般僅調(diào)度在加速器上,而不調(diào)度在服務(wù)器系統(tǒng)上。但是,本發(fā)明的多個(gè)優(yōu)選實(shí)施例的混合系統(tǒng)112利用了服務(wù)器系統(tǒng)處理器114在很多情況下具有補(bǔ)充加速器處理器116的能力這一事實(shí)。例如,服務(wù)器系統(tǒng)處理器114可以包括額外的資源或計(jì)算操作,其形式為分配的“休眠”(dormant)MIPS(每秒百萬(wàn)指令),這是當(dāng)前未被使用的預(yù)購(gòu)的MIPS;未使用的浮點(diǎn)操作能力;或者在處理器被“阻塞”以完成某個(gè)10時(shí)未使用的處理器能力。因此,工作量管理器118可以利用該服務(wù)器系統(tǒng)的“凈空間”以代理方式執(zhí)行數(shù)據(jù)并行加速器工作量。換句話(huà)說(shuō),工作量管理器118通過(guò)動(dòng)態(tài)工作量重新分配器將先前調(diào)度在加速器104上的工作量重新分配到服務(wù)器系統(tǒng)102。這些服務(wù)器系統(tǒng)處理器114用作代理處理器以與加速器處理器116上剩余的工作量并行地執(zhí)行這些重新分配的工作量。換句話(huà)說(shuō),服務(wù)器處理器的未使用能力可被用于執(zhí)行加速器內(nèi)核或工作量。此外,服務(wù)器系統(tǒng)102和加速器104可以互相“竊取”工作量。例如,服務(wù)器系統(tǒng)102和加速器104的每個(gè)工作量隊(duì)列136、138可以交叉鏈接。換句話(huà)說(shuō),服務(wù)器系統(tǒng)102可以訪(fǎng)問(wèn)加速器104的工作量隊(duì)列138,且加速器104可以訪(fǎng)問(wèn)服務(wù)器系統(tǒng)102的工作量隊(duì)列136。服務(wù)器系統(tǒng)102和加速器104取得被分配給另一個(gè)系統(tǒng)的工作量,因?yàn)檫@些隊(duì)列136、138位于在服務(wù)器系統(tǒng)104和加速器104之間共享的存儲(chǔ)器區(qū)域中。對(duì)于每個(gè)工作量隊(duì)列,該存儲(chǔ)器區(qū)域位于服務(wù)器系統(tǒng)102和加速器104上。如圖4所示,這些隊(duì)列136、138可以包括“運(yùn)行”隊(duì)列404、406和“即將運(yùn)行”隊(duì)列408、410?!斑\(yùn)行”隊(duì)列指示當(dāng)前正在相應(yīng)系統(tǒng)102、104上運(yùn)行的工作量?!凹磳⑦\(yùn)行”隊(duì)列408,410指示當(dāng)前沒(méi)有運(yùn)行但在隊(duì)列中等待被執(zhí)行的工作量。當(dāng)服務(wù)器系統(tǒng)112上的處理器114已完成其分配的工作量并確定加速器工作量隊(duì)列138具有等待被執(zhí)行的工作量時(shí),服務(wù)器系統(tǒng)114于是可以通過(guò)動(dòng)態(tài)工作量重新分配器132,從加速器工作量隊(duì)列138取得工作并在服務(wù)器系統(tǒng)102上執(zhí)行該工作量。加速器104也可以執(zhí)行類(lèi)似的操作,其中,工作量管理器118從服務(wù)器系統(tǒng)工作量隊(duì)列136取得工作量并將它動(dòng)態(tài)地重新分配給加速器104。此外,如果服務(wù)器系統(tǒng)工作量隊(duì)列136中的工作量是加速器工作量且這些工作量沒(méi)有被高效地執(zhí)行,則加速器104可以取回這些工作量。一旦其性能/能量度量在給定閾值之上,任務(wù)被取走的系統(tǒng)102、104可以重新要求這些任務(wù)。在另一實(shí)施例中,通過(guò)動(dòng)態(tài)工作量重新分配器132,工作量管理器118可以基于最終期限/性能和能量要求來(lái)重新分配工作量。例如,SLA120可以包括任務(wù)最終期限要求、性能要求和能量要求。動(dòng)態(tài)工作量重新分配器132可以監(jiān)視服務(wù)器系統(tǒng)102和加速器104上的當(dāng)前工作量,并確定這些要求是否被滿(mǎn)足。如果動(dòng)態(tài)工作量重新分配器132確定對(duì)于給定的工作量這些要求中的一個(gè)或多個(gè)不會(huì)被滿(mǎn)足,動(dòng)態(tài)工作量重新分配器132將給定的工作量動(dòng)態(tài)地遷移到其他系統(tǒng)(即服務(wù)器系統(tǒng)102或加速器104),從而SLA要求可被實(shí)現(xiàn)。換句話(huà)說(shuō),工作量被動(dòng)態(tài)地重新分配,以滿(mǎn)足工作量的SLA。SLA的任何變化都會(huì)觸發(fā)工作量跨混合系統(tǒng)112的動(dòng)態(tài)分配。工作量管理器118還可以結(jié)合上述工作量“竊取”和重新分配的方面。例如,由于工作量是數(shù)據(jù)并行的,服務(wù)器系統(tǒng)102或加速器104只能“竊取”一部分工作量或與工作量相關(guān)的數(shù)據(jù)。執(zhí)行類(lèi)似功能的內(nèi)核可以在主機(jī)或加速器上運(yùn)行。服務(wù)器和加速器可以從服務(wù)器或加速器的即將運(yùn)行隊(duì)列“竊取”輸入數(shù)據(jù)(還稱(chēng)為問(wèn)題輸入數(shù)據(jù))而不是整個(gè)內(nèi)核。這是可能的,因?yàn)椤案`取”輸入問(wèn)題數(shù)據(jù)的服務(wù)器或加速器正在運(yùn)行同一功能的副本。服務(wù)器或加速器還可以從當(dāng)前在運(yùn)行的內(nèi)核竊取數(shù)據(jù)部分。為了使這變得可能,內(nèi)核將(運(yùn)行隊(duì)列條目中的)assist_flag字段設(shè)置為<yes>’并提供數(shù)據(jù)位置作為(起始地址,結(jié)束地址)元組的集合。竊取數(shù)據(jù)部分的內(nèi)核可以提供其標(biāo)識(shí)符和位置,從而它可以參與“被竊取”的內(nèi)核可能需要的任何同步活動(dòng)。這是有利的,因?yàn)橄到y(tǒng)可能不能處理整個(gè)工作量。但是,月艮務(wù)器系統(tǒng)102或加速器104仍然需要遵守SLA120的要求。例如,考慮要求服務(wù)器系統(tǒng)102和/或加速器104滿(mǎn)足某個(gè)能量要求的SLA。服務(wù)器系統(tǒng)102和加速器104可以具有凈空間來(lái)“竊取”工作量或工作量部分,但是如果服務(wù)器系統(tǒng)102或加速器104不能滿(mǎn)足SLA的能量要求,工作量管理器118防止服務(wù)器系統(tǒng)102和加速器104取得該工作量。因此,基于性能和/或能量度量的“竊取”閾值可被用于允許或不允許工作量竊取??梢钥吹剑案`取”可以被用于滿(mǎn)足SLA120指示的最終期限和能量目標(biāo)。工作量或工作量部分以及/或相應(yīng)的數(shù)據(jù)被竊取,以維持吞吐量計(jì)算SLA。如果在網(wǎng)絡(luò)108中竊取工作量的任務(wù)的成本將會(huì)降低吞吐量計(jì)算SLA的性能屬性,則工作量管理器118可以防止該任務(wù)被竊取。圖5示出了用于在服務(wù)器系統(tǒng)102和加速器104之間重新分配已分配的工作量的混合系統(tǒng)112的一種配置。特別地,圖5示出了服務(wù)器系統(tǒng)處理器502、504、506,其包括跨平臺(tái)并行編程O(píng)penCL調(diào)用地址空間,以及服務(wù)器系統(tǒng)處理器508、510、512。服務(wù)器系統(tǒng)處理器508、510、512每個(gè)包括一個(gè)或多個(gè)計(jì)算內(nèi)核514、516、518。加速器104每個(gè)包括一個(gè)或多個(gè)OpenCL設(shè)備,例如計(jì)算內(nèi)核520、522、524,且這些設(shè)備中的每個(gè)可以運(yùn)行一個(gè)或多個(gè)計(jì)算內(nèi)核。偽OpenCL設(shè)備直接在服務(wù)器處理器上運(yùn)行,而不是在使用互連附加的加速器上運(yùn)行。偽OpenCL設(shè)備可以直接在與調(diào)用地址空間具有相同位置的502、504和506上運(yùn)行。服務(wù)器可以實(shí)例化偽OpenCL設(shè)備,以與在加速器設(shè)備上運(yùn)行的內(nèi)核一起運(yùn)行內(nèi)核。這允許獲得更高的吞吐量。服務(wù)器可以基于性能和能量SLA屬性來(lái)決定偽OpenCL設(shè)備和加速器OpenCL設(shè)備的混合。如果服務(wù)器比加速器更為節(jié)能,則工作量管理器可以在服務(wù)器上實(shí)例化更多的偽OpenCL設(shè)備以滿(mǎn)足能量目標(biāo)。嚴(yán)厲的性能SLA可要求內(nèi)核直接在加速器上執(zhí)行,而不使用任何偽OpenCL內(nèi)核。只有當(dāng)“凈空間”(以MIPS或FLOPS表示)可用時(shí),工作量管理器還可以選擇在偽OpenCL設(shè)備上發(fā)起OpenCL內(nèi)核。偽設(shè)備508、510、512沿著跨平臺(tái)并行編程調(diào)用者棧(callerstack)515來(lái)執(zhí)行,并向調(diào)用者棧514將自己展示為普通設(shè)備,但在服務(wù)器系統(tǒng)102上執(zhí)行。調(diào)用者棧515為每個(gè)設(shè)備514、516、518、520、522、524維護(hù)隊(duì)列136、138。調(diào)用者棧515可以基于來(lái)自如上討論的工作量管理觸發(fā)器的輸入(例如性能度量、能量度量等)在偽設(shè)備508、510、512和正常設(shè)備502、504、506之間重新分配輸入數(shù)據(jù)。例如,對(duì)加速器104進(jìn)行的用于執(zhí)行工作量的OpenCL調(diào)用517可以由服務(wù)器系統(tǒng)102上的偽跨平臺(tái)并行編程設(shè)備514、516、518滿(mǎn)足。類(lèi)似地,如果異構(gòu)任務(wù)跨偽設(shè)備514、516、518和加速器跨平臺(tái)并行編程設(shè)備520、522、524執(zhí)行,可以基于以上所討論的工作量管理觸發(fā)器來(lái)重新分配任務(wù)和數(shù)據(jù)項(xiàng)目。內(nèi)核調(diào)度器519調(diào)度服務(wù)器系統(tǒng)102上的物理加速器計(jì)算資源(處理器502、504、506)或偽加速器計(jì)算資源(例如處理器/內(nèi)核508/514、510/516、512/518)或者加速器以滿(mǎn)足內(nèi)核調(diào)用。此外,混合系統(tǒng)112的配置允許混合系統(tǒng)的更容易和更高效的測(cè)試和調(diào)試。例如,因?yàn)榛旌舷到y(tǒng)112包括跨平臺(tái)并行編程O(píng)penCL設(shè)備(即計(jì)算內(nèi)核),其是本地的(即在服務(wù)器系統(tǒng)102上)以及遠(yuǎn)程的(即在加速器104上)。由于涉及的網(wǎng)絡(luò)元件108,該系統(tǒng)的測(cè)試會(huì)是麻煩的。但是,圖5中示出的配置克服了這些問(wèn)題。遠(yuǎn)程加速器OpenCL設(shè)備作為偽OpenCL設(shè)備直接在服務(wù)器上運(yùn)行。這可能導(dǎo)致更差的性能,但所有OpenCL設(shè)備可以在服務(wù)器的統(tǒng)一共享存儲(chǔ)器映像上運(yùn)行。與遠(yuǎn)程加速器之間的網(wǎng)絡(luò)事務(wù)作為服務(wù)器的統(tǒng)一共享存儲(chǔ)器結(jié)構(gòu)中的共享存儲(chǔ)器操作來(lái)執(zhí)行。通過(guò)移除網(wǎng)絡(luò)方面并在服務(wù)器系統(tǒng)102中本地運(yùn)行一切,測(cè)試和調(diào)試變得更簡(jiǎn)單和更高效。所屬
技術(shù)領(lǐng)域
的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線(xiàn)、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括具有一個(gè)或多個(gè)導(dǎo)線(xiàn)的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無(wú)線(xiàn)、電線(xiàn)、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種編程語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式編程語(yǔ)言一諸如”C”語(yǔ)言或類(lèi)似的編程語(yǔ)言。程序代碼可以完全地在用戶(hù)計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶(hù)計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。操作流程圖現(xiàn)在參考圖6-12,圖中的流程圖和框圖示出了根據(jù)本發(fā)明的多種優(yōu)選實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。在這方面,流程圖和框圖中的每個(gè)框可表示代碼的模塊、片段或部分,其包含用于實(shí)現(xiàn)指定的邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令。還需要注意的是,在某些可替代實(shí)現(xiàn)中,框中表示的功能可以以和圖中示出的不同順序來(lái)實(shí)現(xiàn)。例如,相繼示出的兩個(gè)框事實(shí)上可以被基本同時(shí)執(zhí)行,或這些框有時(shí)可以以相反的順序來(lái)執(zhí)行,這取決于涉及的功能。還應(yīng)注意,框圖和/或流程圖說(shuō)明中的每個(gè)框、以及框圖和/或流程圖說(shuō)明中框的組合可以由執(zhí)行指定功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或由專(zhuān)用硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。圖6是示出如上所討論的在混合計(jì)算環(huán)境中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖。圖6的操作流程開(kāi)始于步驟602并直接進(jìn)入步驟604。在步驟604,工作量管理器118分析與混合系統(tǒng)112相關(guān)的一組高吞吐量計(jì)算SLA120。在步驟606,工作量管理器118監(jiān)視第一組資源,例如但不限于計(jì)算內(nèi)核。在步驟606,工作量管理器118監(jiān)視第二組資源,例如但不限于計(jì)算內(nèi)核。在步驟610,工作量管理器118基于該監(jiān)視來(lái)跨第一組資源中的至少一個(gè)資源以及第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組并行工作量任務(wù),由此基本滿(mǎn)足該組高吞吐量SLA120??刂屏魅缓笤诓襟E612退出。圖7是示出如上所討論的在混合計(jì)算環(huán)境中提供高吞吐量計(jì)算的另一例子的操作流程圖。圖7的操作流程開(kāi)始于步驟702并直接進(jìn)入步驟704。在步驟704,工作量管理器118檢索與混合系統(tǒng)112相關(guān)的一組高吞吐量計(jì)算SLA120。在步驟706,工作量管理器118維護(hù)與在服務(wù)器102上調(diào)度的第一組數(shù)據(jù)并行工作量任務(wù)相關(guān)的第一組隊(duì)列136。在步驟708,工作量管理器118維護(hù)與在一組加速器系統(tǒng)104上調(diào)度的第二組數(shù)據(jù)并行工作量任務(wù)相關(guān)的第二組隊(duì)列138。在步驟710,工作量管理器118確定在該服務(wù)器系統(tǒng)102或者該組加速器系統(tǒng)104上的一組資源可用。在步驟712,工作量管理器118響應(yīng)于該確定來(lái)動(dòng)態(tài)地重新調(diào)度第一組數(shù)據(jù)并行工作量任務(wù)和第二組數(shù)據(jù)并行工作量任務(wù)中的一個(gè)的至少一部分,由此基本滿(mǎn)足該組高吞吐量計(jì)算SLA120。需要注意的是,如上所討論的,工作量可被竊取而不是被動(dòng)態(tài)地重新調(diào)度。控制流然后在步驟714退出。圖8是示出如上所討論的通過(guò)重新分配工作量在混合計(jì)算環(huán)境中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖。圖8的操作流程開(kāi)始于步驟802,并直接進(jìn)入步驟804。在步驟804,工作量管理器118監(jiān)視在服務(wù)器系統(tǒng)102和加速器系統(tǒng)104中的每個(gè)上調(diào)度的一組工作量。在步驟806,工作量管理器118確定是否至少一個(gè)工作量在系統(tǒng)102、104中的一個(gè)上超過(guò)最高優(yōu)先級(jí)SLA限制的閾值。需要注意的是,對(duì)于具有吞吐量SLA、能量SLA和批窗口SLA的工作量,區(qū)分優(yōu)先次序是可能的。最高優(yōu)先級(jí)SLA限制是指上述三個(gè)SLA類(lèi)型的具有最高優(yōu)先級(jí)的SLA。如果該確定的結(jié)果是否定的,控制流返回步驟804。如果該確定的結(jié)果是肯定的,在步驟808,工作量管理器118確定工作量是否很可能在具有用于一個(gè)額外工作量的資源能力的第二系統(tǒng)上滿(mǎn)足最高SLA優(yōu)先級(jí)限制。如果該確定的結(jié)果是否定的,控制流回到步驟806。如果該確定的結(jié)果是肯定的,在步驟810,工作量管理器118將該至少一個(gè)工作量動(dòng)態(tài)地重新分配給第二系統(tǒng)102、104??刂屏魅缓笤诓襟E812退出。圖9是示出如上所討論的基于SLA來(lái)重新分配工作量以在混合計(jì)算環(huán)境中提供高吞吐量計(jì)算的一個(gè)例子的操作流程圖。圖9的操作流程開(kāi)始于步驟902,并直接進(jìn)入步驟904。在步驟904,工作量管理器118監(jiān)視在服務(wù)器系統(tǒng)102和加速器系統(tǒng)104中的每個(gè)上調(diào)度的一組工作量。在步驟906,工作量管理器118確定系統(tǒng)102、104中的第一個(gè)上的資源具有用于至少一個(gè)額外工作量的能力。在步驟908,工作量管理器118確定重新分配來(lái)自系統(tǒng)102、104中的第二個(gè)的一個(gè)額外工作量是否會(huì)違反SLA要求。如果該確定的結(jié)果是肯定的,控制流在步驟910退出。如果該確定的結(jié)果是肯定的,在步驟912,工作量管理器118將目前在系統(tǒng)102、104中的第二個(gè)上調(diào)度的工作量重新分配給系統(tǒng)102、104中的第一個(gè)上的資源??刂屏魅缓笤诓襟E914退出。圖10是示出如上所討論的在混合計(jì)算環(huán)境中的集群工作量的一個(gè)例子的操作流程圖。圖10的操作流程開(kāi)始于步驟1002并直接進(jìn)入步驟1004。在步驟1004,工作量管理器118分析多個(gè)工作量。在步驟1006,工作量管理器118識(shí)別所述多個(gè)工作量中執(zhí)行基本類(lèi)似的數(shù)據(jù)并行操作的一組工作量。在步驟1008,工作量管理器118將所述一組工作量分組為單個(gè)工作量集群。在步驟1010,工作量管理器118識(shí)別集群中互相依賴(lài)的工作量。在步驟1012,工作量管理器118同時(shí)調(diào)度集群中的工作量,并臨時(shí)排列互相依賴(lài)的工作量??刂屏魅缓笤诓襟E1014退出。圖11是示出如上所討論的在混合計(jì)算環(huán)境中遷移工作量的一個(gè)例子的操作流程圖。圖11的操作流程開(kāi)始于步驟1102并直接進(jìn)入步驟1104。在步驟1104,工作量管理器118監(jiān)視在加速器104上調(diào)度的一組工作量。在步驟1106,工作量管理器118識(shí)別用于與該組工作量相關(guān)的工作量類(lèi)型的一組執(zhí)行條件?;蛘?,SLA要求閾值(例如但不限于性能閾值和/或能量閾值)也可以被識(shí)別。在步驟1108,工作量管理器118確定執(zhí)行條件是否發(fā)生(并且/或者閾值是否被滿(mǎn)足)。如果該確定的結(jié)果是否定的,工作量管理器繼續(xù)確定條件或閾值是否被滿(mǎn)足。如果該確定的結(jié)果是肯定的,在步驟1110,工作量管理器118保存將與該條件和/或閾值相關(guān)的工作量遷移到服務(wù)器系統(tǒng)102所需的工作量數(shù)據(jù)。在步驟1112,工作量管理器118然后將工作量遷移到服務(wù)器系統(tǒng)102,并使用保存的工作量數(shù)據(jù)來(lái)繼續(xù)執(zhí)行該工作量??刂屏魅缓笤诓襟E1114退出。圖12是示出如上所討論的在混合計(jì)算環(huán)境中配置服務(wù)器系統(tǒng)以便執(zhí)行加速器工作量的一個(gè)例子的操作流程圖。圖12的操作流程開(kāi)始于步驟1202并直接進(jìn)入步驟1204。在步驟1204,工作量管理器118在服務(wù)器系統(tǒng)102上分配多個(gè)偽加速器資源508、510、512。偽加速器資源和物理加速器資源的混合和次序是從吞吐量計(jì)算、能量SLA和批窗口SLA導(dǎo)出的。在步驟1206,任務(wù)調(diào)用在加速器系統(tǒng)104或偽加速器系統(tǒng)上的計(jì)算內(nèi)核。在步驟1208,內(nèi)核調(diào)度器519在服務(wù)器系統(tǒng)102或加速器上調(diào)度物理加速器計(jì)算資源或偽加速器計(jì)算資源,以滿(mǎn)足內(nèi)核調(diào)用??刂屏魅缓笤诓襟E1210退出。信息處理系統(tǒng)圖13是示出可在如上關(guān)于圖1所討論的操作環(huán)境100中使用的信息處理系統(tǒng)1300的更詳細(xì)的視圖的框圖。信息處理系統(tǒng)1300基于適于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)優(yōu)選實(shí)施例的合適配置的處理系統(tǒng)。類(lèi)似地,任何合適配置的處理系統(tǒng)可以被本發(fā)明的優(yōu)選實(shí)施例用作信息處理系統(tǒng)1300。需要注意的是,信息處理系統(tǒng)1300可以是具有如圖1所示的各自的組件的服務(wù)器系統(tǒng)102或加速器系統(tǒng)104。信息處理系統(tǒng)1300包括計(jì)算機(jī)1302。計(jì)算機(jī)1302具有與主存儲(chǔ)器1306、大容量存儲(chǔ)接口1308和網(wǎng)絡(luò)適配器硬件1310連接的處理器1304(例如處理器114或116)。系統(tǒng)總線(xiàn)1312互連這些系統(tǒng)組件。在一個(gè)實(shí)施例中,主存儲(chǔ)器1306包括服務(wù)器系統(tǒng)102的組件(例如工作量管理器118(及其組件)、SLA120和工作量隊(duì)列136),或者加速器104的組件(例如如上討論的工作量隊(duì)列138)。盡管被示為同時(shí)位于主存儲(chǔ)器1306中,很清楚主存儲(chǔ)器1306的各個(gè)組件不需要在所有時(shí)間或甚至在同一時(shí)刻完全位于主存儲(chǔ)器1306中。在一個(gè)實(shí)施例中,信息處理系統(tǒng)1300使用傳統(tǒng)的虛擬尋址機(jī)制,以允許程序表現(xiàn)為似乎它們?cè)L問(wèn)在此被稱(chēng)為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器的大型的單個(gè)存儲(chǔ)實(shí)體,而不是訪(fǎng)問(wèn)多個(gè)較小的存儲(chǔ)實(shí)體,例如主存儲(chǔ)器1306和數(shù)據(jù)存儲(chǔ)設(shè)備1316。注意到術(shù)語(yǔ)“計(jì)算機(jī)系統(tǒng)存儲(chǔ)器”在這里被用于一般地指信息處理系統(tǒng)1300的整個(gè)虛擬存儲(chǔ)器。大容量存儲(chǔ)接口1308被用于使大容量存儲(chǔ)設(shè)備(例如大容量存儲(chǔ)設(shè)備1314)連接到信息處理系統(tǒng)1300。數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)特定類(lèi)型是例如CD/數(shù)字視頻盤(pán)(DVD)驅(qū)動(dòng)器的光驅(qū)動(dòng)器,其可以被用于向例如(但不限于)CD/DVD1316的計(jì)算機(jī)可讀介質(zhì)或存儲(chǔ)產(chǎn)品存儲(chǔ)數(shù)據(jù)或從其讀取數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)設(shè)備的另一類(lèi)型是被配置為支持例如新技術(shù)文件系統(tǒng)(NTFS)類(lèi)型文件系統(tǒng)操作的數(shù)據(jù)存儲(chǔ)設(shè)備。盡管僅為計(jì)算機(jī)1302示出了一個(gè)CPU1304,具有多個(gè)CPU的計(jì)算機(jī)系統(tǒng)也可以被同樣有效地使用。本發(fā)明的優(yōu)選實(shí)施例還包含接口,每個(gè)接口包括被用于從CPU1304卸載處理的單獨(dú)的、完全編程的微處理器。主存儲(chǔ)器中包含的操作系統(tǒng)(未示出)是合適的多任務(wù)操作系統(tǒng),例如Linux、UNIX、MicrosoftWindowsxp和MicrosoftWindowsServer2003操作系統(tǒng)。Linux是LinusTorvalds在美國(guó)、其他國(guó)家或這兩者的注冊(cè)商標(biāo)。UNIX是開(kāi)放組織(TheOpenGroup)在美國(guó)和其他國(guó)家的注冊(cè)商標(biāo)。Microsoft和Windows以及Windows徽標(biāo)是微軟公司在美國(guó)、其他國(guó)家或這兩者的商標(biāo)。本發(fā)明的優(yōu)選實(shí)施例能夠使用任何其他合適的操作系統(tǒng)。本發(fā)明的一些優(yōu)選實(shí)施例利用例如面向?qū)ο罂蚣軝C(jī)制的架構(gòu),其允許操作系統(tǒng)(未示出)的組件的指令在信息處理系統(tǒng)1300中的任何處理器上執(zhí)行。網(wǎng)絡(luò)適配器硬件1310被用于提供到網(wǎng)絡(luò)108的接口。本發(fā)明的優(yōu)選實(shí)施例能夠適應(yīng)于和任何數(shù)據(jù)通信連接(包括今天的模擬和/或數(shù)字技術(shù)或通過(guò)未來(lái)的網(wǎng)絡(luò)機(jī)制)工作。盡管本發(fā)明的示例性?xún)?yōu)選實(shí)施例是在完全功能的計(jì)算機(jī)系統(tǒng)的上下文中描述的,本領(lǐng)域普通技術(shù)人員將理解,各種實(shí)施例能夠通過(guò)⑶或DVD(例如⑶1316、⑶ROM)或其他形式的可記錄介質(zhì)或通過(guò)任何類(lèi)型的電子傳輸機(jī)制,作為程序產(chǎn)品來(lái)分發(fā)。非限制的例子盡管已經(jīng)公開(kāi)了本發(fā)明的特定優(yōu)選實(shí)施例,本領(lǐng)域普通技術(shù)人員將理解可對(duì)這些特定實(shí)施例做出改變,而不脫離本發(fā)明的范圍。因此本發(fā)明的范圍不限于特定實(shí)施例,且所附權(quán)利要求書(shū)旨在涵蓋本發(fā)明范圍內(nèi)的任何和所有這樣的應(yīng)用、修改和實(shí)施例。盡管已在完全計(jì)算機(jī)系統(tǒng)的上下文中討論了本發(fā)明的各種示例性實(shí)施例,本領(lǐng)域普通技術(shù)人員將理解,各種實(shí)施例能夠通過(guò)⑶或DVD(例如⑶、⑶-ROM)或其他形式的可讀介質(zhì),以及/或根據(jù)可替代實(shí)施例,通過(guò)任何類(lèi)型的電子傳輸機(jī)制,作為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或程序產(chǎn)品而被分發(fā)。為避免疑問(wèn),在說(shuō)明書(shū)和權(quán)利要求書(shū)通篇中使用的術(shù)語(yǔ)“包括”不應(yīng)被理解為“僅由…組成”。權(quán)利要求1.一種使用信息處理系統(tǒng)在混合處理系統(tǒng)中提供高吞吐量計(jì)算的方法,所述方法包括下列步驟分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議(SLA),該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān),該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu);基于該組高吞吐量計(jì)算SLA來(lái)監(jiān)視該至少一個(gè)服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)處的第二組資源;以及基于該監(jiān)視,跨第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù),該動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。2.如權(quán)利要求1所述的方法,其中,所述混合處理系統(tǒng)包括跨平臺(tái)并行編程環(huán)境。3.如權(quán)利要求1或2中任一項(xiàng)所述的方法,其中,所述第一組資源和第二組資源中的每個(gè)包括一組跨平臺(tái)并行編程資源。4.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其中,該組跨平臺(tái)并行編程資源包括計(jì)算內(nèi)核。5.如上述權(quán)利要求中的任一項(xiàng)所述的方法,其中,該至少一個(gè)服務(wù)器系統(tǒng)通過(guò)網(wǎng)絡(luò)通信地耦合到該組加速器系統(tǒng)。6.如以上權(quán)利要求中的任一項(xiàng)所述的方法,其中,所述第一組資源的至少一個(gè)子集仿真該組加速器系統(tǒng)上可用的一組資源。7.如以上權(quán)利要求中的任何一項(xiàng)所述的方法,其中,該組高吞吐量計(jì)算SLA包括混合處理系統(tǒng)要實(shí)現(xiàn)的一組性能要求和一組能量要求中的至少一個(gè)。8.如上述權(quán)利要求中的任一項(xiàng)所述的方法,還包括下列步驟在動(dòng)態(tài)地調(diào)度的步驟之后,確定該組高吞吐量計(jì)算SLA未被滿(mǎn)足;以及響應(yīng)于該確定的步驟,將額外的資源動(dòng)態(tài)地分配給第一組資源和第二組資源中的至少一個(gè)。9.如上述權(quán)利要求中的任一項(xiàng)所述的方法,還包括下列步驟將該組數(shù)據(jù)并行工作量任務(wù)中的至少一個(gè)數(shù)據(jù)并行工作量任務(wù)從第二組資源中的至少一個(gè)資源遷移到第一組資源中的資源。10.如權(quán)利要求9所述的方法,其中,所述遷移步驟還包括下列步驟識(shí)別與該至少一個(gè)數(shù)據(jù)并行工作量任務(wù)相關(guān)的一組執(zhí)行條件;在執(zhí)行該至少一個(gè)數(shù)據(jù)并行工作量任務(wù)期間,確定至少一個(gè)執(zhí)行條件被滿(mǎn)足;以及響應(yīng)于確定該至少一個(gè)執(zhí)行條件被滿(mǎn)足,執(zhí)行該遷移。11.如權(quán)利要求10所述的方法,其中,該組執(zhí)行條件包括該組高吞吐量計(jì)算SLA中所指示的與混合處理系統(tǒng)相關(guān)的性能度量和能量度量中的至少一個(gè)。12.如以上權(quán)利要求中的任一項(xiàng)所述的方法,還包括下列步驟分析多個(gè)工作量,其中,所述多個(gè)工作量中的至少一個(gè)工作量包括該組數(shù)據(jù)并行工作量任務(wù);基于該分析,識(shí)別所述多個(gè)工作量中執(zhí)行基本類(lèi)似的數(shù)據(jù)并行操作的一組工作量;響應(yīng)于該識(shí)別,將被識(shí)別的該組工作量分組為工作量集群;以及同時(shí)動(dòng)態(tài)地調(diào)度工作量集群中的該組工作量,其中,該動(dòng)態(tài)調(diào)度還包括臨時(shí)調(diào)整工作量集群中互相依賴(lài)的工作量。13.一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的系統(tǒng),該系統(tǒng)包括存儲(chǔ)器;通信地耦合到存儲(chǔ)器的處理器;以及通信地耦合到存儲(chǔ)器和處理器的工作量管理器,該工作量管理器包括分析組件,用于分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議(SLA),該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān),該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu);監(jiān)視組件,用于響應(yīng)于該組高吞吐量計(jì)算SLA,監(jiān)視該服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)上的第二組資源;以及調(diào)度組件,用于響應(yīng)于監(jiān)視組件的監(jiān)視,跨第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù),該動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。14.一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的系統(tǒng),該系統(tǒng)包括存儲(chǔ)器;通信地耦合到存儲(chǔ)器的處理器;以及通信地耦合到存儲(chǔ)器和處理器的工作量管理器,該工作量管理器適于執(zhí)行下列方法,該方法包括分析一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議(SLA),該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān),該混合處理系統(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu);基于該組高吞吐量計(jì)算SLA,監(jiān)視該服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)處的第二組資源;基于該監(jiān)視,該第一組資源中的至少一個(gè)資源和第二組資源中的至少一個(gè)資源動(dòng)態(tài)地調(diào)度一組數(shù)據(jù)并行工作量任務(wù),該動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。15.如權(quán)利要求14所述的系統(tǒng),其中,所述混合處理系統(tǒng)包括跨平臺(tái)并行編程環(huán)境,其中,所述第一組資源和第二組資源中的每個(gè)包括一組跨平臺(tái)并行編程資源。16.如權(quán)利要求14或15中的任一項(xiàng)所述的系統(tǒng),其中,所述第一組資源的至少一個(gè)子集仿真該組加速器系統(tǒng)上可用的一組資源。17.如權(quán)利要求14到16中的任一項(xiàng)所述的系統(tǒng),其中,該組高吞吐量計(jì)算SLA包括混合處理系統(tǒng)要實(shí)現(xiàn)的一組性能要求和一組能量要求中的至少一個(gè)。18.如權(quán)利要求14到17中的任一項(xiàng)所述的系統(tǒng),該方法還包括響應(yīng)于該動(dòng)態(tài)調(diào)度,確定該組高吞吐量計(jì)算SLA未被滿(mǎn)足;以及響應(yīng)于該確定,將額外的資源動(dòng)態(tài)地分配給第一組資源和第二組資源中的至少一個(gè)。19.如權(quán)利要求14到18中的任一項(xiàng)所述的系統(tǒng),所述方法還包括將該組數(shù)據(jù)并行工作量任務(wù)中的至少一個(gè)數(shù)據(jù)并行工作量任務(wù)從第二組資源中的至少一個(gè)資源遷移到第一組資源中的資源,該遷移還包括識(shí)別與該至少一個(gè)數(shù)據(jù)并行工作量任務(wù)相關(guān)的一組執(zhí)行條件;在執(zhí)行該至少一個(gè)數(shù)據(jù)并行工作量任務(wù)期間,確定至少一個(gè)執(zhí)行條件被滿(mǎn)足;以及響應(yīng)于確定該至少一個(gè)執(zhí)行條件被滿(mǎn)足,執(zhí)行該遷移。20.一種用于在混合處理系統(tǒng)中提供高吞吐量計(jì)算的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括可被處理電路讀取并存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令可被處理電路執(zhí)行以執(zhí)行如權(quán)利要求1到12中的任一項(xiàng)所述的方法。21.一種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)并可加載到數(shù)字計(jì)算機(jī)的內(nèi)部存儲(chǔ)器的計(jì)算機(jī)程序,其包括軟件代碼部分,當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí),所述軟件代碼部分用于執(zhí)行權(quán)利要求1-12中任一項(xiàng)所述的方法。全文摘要本發(fā)明的優(yōu)選實(shí)施例提供了混合處理系統(tǒng)中的高吞吐量計(jì)算。一組高吞吐量計(jì)算服務(wù)級(jí)別協(xié)議(SLA)被分析。該組高吞吐量計(jì)算SLA與混合處理系統(tǒng)相關(guān)?;旌咸幚硐到y(tǒng)包括至少一個(gè)服務(wù)器系統(tǒng)和一組加速器系統(tǒng),該至少一個(gè)服務(wù)器系統(tǒng)包含至少第一計(jì)算架構(gòu),該組加速器系統(tǒng)中的每個(gè)包含與第一計(jì)算架構(gòu)不同的第二計(jì)算架構(gòu)。服務(wù)器系統(tǒng)處的第一組資源和該組加速器系統(tǒng)處的第二組資源被監(jiān)視。一組數(shù)據(jù)并行的工作量任務(wù)跨第一組資源中的至少一個(gè)資源和第二組資源的至少一個(gè)資源被動(dòng)態(tài)地調(diào)度。該組數(shù)據(jù)并行工作量任務(wù)的動(dòng)態(tài)調(diào)度基本滿(mǎn)足該組高吞吐量計(jì)算SLA。文檔編號(hào)G06F9/48GK103069389SQ201080068823公開(kāi)日2013年4月24日申請(qǐng)日期2010年11月8日優(yōu)先權(quán)日2010年8月31日發(fā)明者R·克里希納穆?tīng)柸?C·J·帕里斯,B·P·塞加爾,N·克里希納斯瓦米申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
龙泉市| 常州市| 林口县| 彰化市| 全州县| 鄂尔多斯市| 蓬安县| 平陆县| 湖州市| 茌平县| 青神县| 山东| 隆林| 郴州市| 阿荣旗| 剑川县| 桐城市| 分宜县| 西充县| 茂名市| 汾阳市| 厦门市| 建德市| 喀喇沁旗| 鄂尔多斯市| 石楼县| 织金县| 微山县| 长兴县| 泸定县| 安国市| 城口县| 嘉定区| 西安市| 普陀区| 承德市| 黔西| 祁门县| 罗甸县| 巴彦县| 成都市|