本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種資源調(diào)度裝置、系統(tǒng)和方法。
背景技術(shù):
計(jì)算資源池化,作為一種新型集中式的計(jì)算體系,已逐漸應(yīng)用到復(fù)雜計(jì)算任務(wù)需求中。為了使計(jì)算資源能夠均衡高效的工作,計(jì)算資源的調(diào)度越來(lái)越重要。
目前,計(jì)算資源的調(diào)度方式主要通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn),即各個(gè)計(jì)算節(jié)點(diǎn)資源與調(diào)度中心通過(guò)網(wǎng)絡(luò)連接,即調(diào)度中心通過(guò)網(wǎng)絡(luò)調(diào)度計(jì)算節(jié)點(diǎn)資源。而網(wǎng)絡(luò)在進(jìn)行數(shù)據(jù)傳輸過(guò)程中,由于網(wǎng)絡(luò)帶寬等的影響,常常造成計(jì)算資源的調(diào)度延遲較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種資源調(diào)度裝置、系統(tǒng)和方法,能夠有效地降低資源調(diào)度的延遲。
第一方面,一種資源調(diào)度裝置,包括:數(shù)據(jù)鏈路交互模塊和資源動(dòng)態(tài)控制模塊,其中,
所述數(shù)據(jù)鏈路交互模塊分別連接外部的服務(wù)器、外部的至少兩個(gè)處理器以及所述資源動(dòng)態(tài)控制模塊;
所述資源動(dòng)態(tài)控制模塊連接所述外部的服務(wù)器,用于監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量,根據(jù)所述負(fù)載量生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給所述數(shù)據(jù)鏈路交互模塊;
所述數(shù)據(jù)鏈路交互模塊,用于接收所述外部的服務(wù)器分配的預(yù)分配任務(wù)以及所述資源動(dòng)態(tài)控制模塊發(fā)送的路由切換指令,并根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
優(yōu)選地,所述數(shù)據(jù)鏈路交互模塊包括:第一FPGA芯片、第二FPGA芯片和×16帶寬PCIE總線,其中,
所述第一FPGA芯片,用于對(duì)所述×16帶寬PCIE總線進(jìn)行一路轉(zhuǎn)四路;
所述第二FPGA芯片,用于對(duì)所述四路轉(zhuǎn)十六路,并通過(guò)所述十六路中的每一路與一個(gè)外部的所述處理器相連;
所述資源動(dòng)態(tài)控制模塊連接所述第二FPGA芯片,用于發(fā)送所述路由切換指令給所述第二FPGA芯片;
所述第二FPGA芯片,用于根據(jù)所述路由切換指令,在所述十六路中選定至少一個(gè)任務(wù)傳輸鏈路,并通過(guò)所述至少一個(gè)任務(wù)傳輸鏈路將所述任務(wù)傳輸給所述至少一個(gè)任務(wù)傳輸鏈路對(duì)應(yīng)的至少一個(gè)目標(biāo)處理器。
優(yōu)選地,所述資源動(dòng)態(tài)控制模塊,包括:計(jì)算子模塊和指令生成子模塊,其中,
所述計(jì)算子模塊,用于確定單個(gè)所述外部的處理器的計(jì)算容量,并根據(jù)所述單個(gè)所述外部的處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算目標(biāo)處理器的個(gè)數(shù);
所述指令生成子模塊,用于獲取所述外部的服務(wù)器提供的處理器使用情況,根據(jù)所述處理器使用情況和所述計(jì)算子單元計(jì)算出的目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令。
優(yōu)選地,所述計(jì)算子模塊,進(jìn)一步用于:
根據(jù)下述計(jì)算公式,計(jì)算目標(biāo)處理器的個(gè)數(shù);
其中,Y表征目標(biāo)處理器的個(gè)數(shù);M表征任務(wù)量;N表征單個(gè)所述外部的處理器的計(jì)算容量。
優(yōu)選地,
所述資源動(dòng)態(tài)控制模塊,進(jìn)一步用于監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí)高于當(dāng)前運(yùn)行任務(wù)時(shí),則發(fā)送中止指令給所述數(shù)據(jù)鏈路交互模塊;
所述數(shù)據(jù)鏈路交互模塊,進(jìn)一步用于當(dāng)接收到所述中止指令時(shí),中止外部的處理器處理所述當(dāng)前運(yùn)行任務(wù),并將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
第二方面,一種資源調(diào)度系統(tǒng),包括:上述任一所述的資源調(diào)度裝置、服務(wù)器和至少兩個(gè)處理器,其中,
所述服務(wù)器,用于接收外部輸入的預(yù)分配任務(wù),并通過(guò)所述資源調(diào)度裝置將所述預(yù)分配任務(wù)分配給所述至少兩個(gè)處理器中的至少一個(gè)目標(biāo)處理器。
優(yōu)選地,
所述服務(wù)器,進(jìn)一步用于統(tǒng)計(jì)所述至少兩個(gè)處理器使用情況,并將所述兩個(gè)處理器使用情況發(fā)送給所述資源調(diào)度裝置;
所述資源調(diào)度裝置,根據(jù)所述至少兩個(gè)處理器使用情況,生成對(duì)應(yīng)的路由切換指令,并通過(guò)所述路由切換指令將所述預(yù)分配任務(wù)分配給所述至少兩個(gè)處理器中的至少一個(gè)目標(biāo)處理器。
優(yōu)選地,
所述服務(wù)器,進(jìn)一步用于對(duì)所述預(yù)分配任務(wù)進(jìn)行優(yōu)先級(jí)標(biāo)記;
所述資源調(diào)度裝置,用于獲取所述服務(wù)器標(biāo)記的所述預(yù)分配任務(wù)的優(yōu)先級(jí),根據(jù)標(biāo)記的所述預(yù)分配任務(wù)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)的優(yōu)先級(jí)大于當(dāng)前處理器處理的當(dāng)前運(yùn)行任務(wù)時(shí),則中斷所述當(dāng)前處理器對(duì)所述當(dāng)前運(yùn)行任務(wù)的處理,并將所述預(yù)分配任務(wù)分配給所述當(dāng)前處理器。
第三方面,一種資源調(diào)度方法,包括:
通過(guò)資源動(dòng)態(tài)控制模塊監(jiān)測(cè)外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量;
根據(jù)所述負(fù)載量,生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給數(shù)據(jù)鏈路交互模塊;
所述數(shù)據(jù)鏈路交互模塊根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
優(yōu)選地,上述方法進(jìn)一步包括:通過(guò)資源動(dòng)態(tài)控制模塊確定單個(gè)處理器的計(jì)算容量;
在所述監(jiān)測(cè)外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量之后,在所述生成對(duì)應(yīng)的路由切換指令之前,進(jìn)一步包括:
根據(jù)所述單個(gè)所述外部的處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算目標(biāo)處理器的個(gè)數(shù),并獲取所述外部的服務(wù)器提供的處理器使用情況;
所述生成對(duì)應(yīng)的路由切換指令,包括:根據(jù)所述處理器使用情況和計(jì)算出的目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令。
優(yōu)選地,所述計(jì)算目標(biāo)處理器的個(gè)數(shù),包括:
根據(jù)下述計(jì)算公式,計(jì)算目標(biāo)處理器的個(gè)數(shù);
其中,Y表征目標(biāo)處理器的個(gè)數(shù);M表征任務(wù)量;N表征單個(gè)所述外部的處理器的計(jì)算容量。
本發(fā)明實(shí)施例提供了一種資源調(diào)度裝置、系統(tǒng)和方法,通過(guò)數(shù)據(jù)鏈路交互模塊分別連接外部的服務(wù)器、外部的至少兩個(gè)處理器以及所述資源動(dòng)態(tài)控制模塊;資源動(dòng)態(tài)控制模塊連接所述外部的服務(wù)器,通過(guò)監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量,根據(jù)所述負(fù)載量生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給所述數(shù)據(jù)鏈路交互模塊;通過(guò)數(shù)據(jù)鏈路交互模塊接收所述外部的服務(wù)器分配的預(yù)分配任務(wù)以及所述資源動(dòng)態(tài)控制模塊發(fā)送的路由切換指令,并根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器,任務(wù)分配給處理器的過(guò)程通過(guò)數(shù)據(jù)鏈路交互模塊,而數(shù)據(jù)鏈路交互模塊連通服務(wù)器與處理器,實(shí)現(xiàn)服務(wù)器與處理器間任務(wù)以及任務(wù)計(jì)算結(jié)果的交互,而無(wú)須網(wǎng)絡(luò)的進(jìn)行數(shù)據(jù)分享,能夠有效地降低資源調(diào)度的延遲。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種資源調(diào)度裝置的結(jié)構(gòu)示意圖;
圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種資源調(diào)度裝置的結(jié)構(gòu)示意圖;
圖3是本發(fā)明又一個(gè)實(shí)施例提供的一種資源調(diào)度裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一個(gè)實(shí)施例提供的一種資源調(diào)度系統(tǒng)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提供的一種資源調(diào)度方法的流程圖;
圖6是本發(fā)明另一個(gè)實(shí)施例提供的一種資源調(diào)度系統(tǒng)的結(jié)構(gòu)示意圖;
圖7是本發(fā)明另一個(gè)實(shí)施例提供的一種資源調(diào)度方法的流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供一種資源調(diào)度裝置,該資源調(diào)度裝置可包括:數(shù)據(jù)鏈路交互模塊101和資源動(dòng)態(tài)控制模塊102,其中,
所述數(shù)據(jù)鏈路交互模塊101分別連接外部的服務(wù)器、外部的至少兩個(gè)處理器以及所述資源動(dòng)態(tài)控制模塊102;
所述資源動(dòng)態(tài)控制模塊102連接所述外部的服務(wù)器,用于監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量,根據(jù)所述負(fù)載量生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給所述數(shù)據(jù)鏈路交互模塊101;
所述數(shù)據(jù)鏈路交互模塊101,用于接收所述外部的服務(wù)器分配的預(yù)分配任務(wù)以及所述資源動(dòng)態(tài)控制模塊102發(fā)送的路由切換指令,并根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
在圖1所示的實(shí)施例中,通過(guò)資源動(dòng)態(tài)控制模塊連接所述外部的服務(wù)器,通過(guò)監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量,根據(jù)所述負(fù)載量生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給所述數(shù)據(jù)鏈路交互模塊;通過(guò)數(shù)據(jù)鏈路交互模塊接收所述外部的服務(wù)器分配的預(yù)分配任務(wù)以及所述資源動(dòng)態(tài)控制模塊發(fā)送的路由切換指令,并根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器,任務(wù)分配給處理器的過(guò)程通過(guò)數(shù)據(jù)鏈路交互模塊,而數(shù)據(jù)鏈路交互模塊連通服務(wù)器與處理器,實(shí)現(xiàn)服務(wù)器與處理器間任務(wù)以及任務(wù)計(jì)算結(jié)果的交互,而無(wú)須網(wǎng)絡(luò)的進(jìn)行數(shù)據(jù)分享,能夠有效地降低資源調(diào)度的延遲。
在本發(fā)明另一實(shí)施例中,如圖2所示,所述數(shù)據(jù)鏈路交互模塊101包括:第一FPGA芯片1011、第二FPGA芯片1012和×16帶寬PCIE總線1013,其中,
所述第一FPGA芯片1011,用于對(duì)所述×16帶寬PCIE總線1013進(jìn)行一路轉(zhuǎn)四路;
所述第二FPGA芯片1012,用于對(duì)所述四路轉(zhuǎn)十六路,并通過(guò)所述十六路中的每一路與一個(gè)外部的所述處理器相連;
所述資源動(dòng)態(tài)控制模塊102連接所述第二FPGA芯片1012,用于發(fā)送所述路由切換指令給所述第二FPGA芯片1012;
所述第二FPGA芯片1012,用于根據(jù)所述路由切換指令,在所述十六路中選定至少一個(gè)任務(wù)傳輸鏈路,并通過(guò)所述至少一個(gè)任務(wù)傳輸鏈路將所述任務(wù)傳輸給所述至少一個(gè)任務(wù)傳輸鏈路對(duì)應(yīng)的至少一個(gè)目標(biāo)處理器。
上述FPGA芯片上具有多個(gè)端口,可以通過(guò)端口可以實(shí)現(xiàn)與處理器、其他FPGA芯片、傳輸總線以及資源動(dòng)態(tài)控制模塊等,并為每個(gè)端口分配對(duì)應(yīng)的功能,從而實(shí)現(xiàn)數(shù)據(jù)交互。
例如:X16帶寬的PCIE總線A一端連接外設(shè)的服務(wù)器,另一端連接第一FPGA芯片,則PCIE總線A經(jīng)過(guò)第一FPGA芯片實(shí)現(xiàn)PCIE總線數(shù)據(jù)的1路轉(zhuǎn)4路交換,即端口A1,A2,A3,A4。端口A1,A2,A3,A4分別經(jīng)過(guò)第二FPGA芯片實(shí)現(xiàn)PCIE總線數(shù)據(jù)的4路轉(zhuǎn)16路交換,即形成數(shù)據(jù)下行鏈路接口A11,A12,A13,A14,A21,A22,A23,A24,A31,A32,A33,A34,A41,A42,A43,A44,從而實(shí)現(xiàn)1路轉(zhuǎn)16路的X16帶寬PCIE總線的交換傳輸。
如圖3所示,在本發(fā)明又一實(shí)施例中,所述資源動(dòng)態(tài)控制模塊102,包括:計(jì)算子模塊1021和指令生成子模塊1022,其中,
所述計(jì)算子模塊1021,用于確定單個(gè)所述外部的處理器的計(jì)算容量,并根據(jù)所述單個(gè)所述外部的處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算目標(biāo)處理器的個(gè)數(shù);
所述指令生成子模塊1022,用于獲取所述外部的服務(wù)器提供的處理器使用情況,根據(jù)所述處理器使用情況和所述計(jì)算子單元1021計(jì)算出的目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令。
在本發(fā)明另一實(shí)施例中,所述計(jì)算子模塊,進(jìn)一步用于:
根據(jù)下述計(jì)算公式,計(jì)算目標(biāo)處理器的個(gè)數(shù);
其中,Y表征目標(biāo)處理器的個(gè)數(shù);M表征任務(wù)量;N表征單個(gè)所述外部的處理器的計(jì)算容量。
在本發(fā)明又一實(shí)施例中,所述資源動(dòng)態(tài)控制模塊102,進(jìn)一步用于監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí)高于當(dāng)前運(yùn)行任務(wù)時(shí),則發(fā)送中止指令給所述數(shù)據(jù)鏈路交互模塊101;
所述數(shù)據(jù)鏈路交互模塊101,進(jìn)一步用于當(dāng)接收到所述中止指令時(shí),中止外部的處理器處理所述當(dāng)前運(yùn)行任務(wù),并將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
在本發(fā)明另一實(shí)施例中,所述資源動(dòng)態(tài)控制模塊102包括:ARM芯片。
如圖4所示,本發(fā)明實(shí)施例提供一種資源調(diào)度系統(tǒng),包括:上述任一所述的資源調(diào)度裝置401、服務(wù)器402和至少兩個(gè)處理器403,其中,
所述服務(wù)器402,用于接收外部輸入的預(yù)分配任務(wù),并通過(guò)所述資源調(diào)度裝置401將所述預(yù)分配任務(wù)分配給所述至少兩個(gè)處理器403中的至少一個(gè)目標(biāo)處理器。
在本發(fā)明另一實(shí)施例中,所述服務(wù)器402,進(jìn)一步用于統(tǒng)計(jì)所述至少兩個(gè)處理器使用情況,并將所述兩個(gè)處理器使用情況發(fā)送給所述資源調(diào)度裝置401;
所述資源調(diào)度裝置401,根據(jù)所述至少兩個(gè)處理器使用情況,生成對(duì)應(yīng)的路由切換指令,并通過(guò)所述路由切換指令將所述預(yù)分配任務(wù)分配給所述至少兩個(gè)處理器403中的至少一個(gè)目標(biāo)處理器。
在本發(fā)明又一實(shí)施例中,所述服務(wù)器402,進(jìn)一步用于對(duì)所述預(yù)分配任務(wù)進(jìn)行優(yōu)先級(jí)標(biāo)記;
所述資源調(diào)度裝置401,用于獲取所述服務(wù)器402標(biāo)記的所述預(yù)分配任務(wù)的優(yōu)先級(jí),根據(jù)標(biāo)記的所述預(yù)分配任務(wù)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)的優(yōu)先級(jí)大于當(dāng)前處理器處理的當(dāng)前運(yùn)行任務(wù)時(shí),則中斷所述當(dāng)前處理器對(duì)所述當(dāng)前運(yùn)行任務(wù)的處理,并將所述預(yù)分配任務(wù)分配給所述當(dāng)前處理器。
如圖5所示,本發(fā)明實(shí)施例提供一種資源調(diào)度方法,該方法可以包括如下步驟:
步驟501:通過(guò)資源動(dòng)態(tài)控制模塊監(jiān)測(cè)外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量;
步驟502:根據(jù)所述負(fù)載量,生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給數(shù)據(jù)鏈路交互模塊;
步驟503:數(shù)據(jù)鏈路交互模塊根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
在本發(fā)明一個(gè)實(shí)施例中,為了保證任務(wù)的處理效率,上述方法進(jìn)一步包括:通過(guò)資源動(dòng)態(tài)控制模塊確定單個(gè)處理器的計(jì)算容量;并在步驟501之后,在步驟502之前,進(jìn)一步包括:根據(jù)所述單個(gè)所述外部的處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算目標(biāo)處理器的個(gè)數(shù),并獲取所述外部的服務(wù)器提供的處理器使用情況;步驟502的具體實(shí)施方式,包括:根據(jù)所述處理器使用情況和計(jì)算出的目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令。
在本發(fā)明一個(gè)實(shí)施例中,所述計(jì)算目標(biāo)處理器的個(gè)數(shù),包括:根據(jù)下述計(jì)算公式,計(jì)算目標(biāo)處理器的個(gè)數(shù);
其中,Y表征目標(biāo)處理器的個(gè)數(shù);M表征任務(wù)量;N表征單個(gè)所述外部的處理器的計(jì)算容量。
在本發(fā)明一個(gè)實(shí)施例中,為了能夠?qū)崿F(xiàn)對(duì)優(yōu)先級(jí)較高的任務(wù)優(yōu)先進(jìn)行處理,上述方法進(jìn)一步包括:通過(guò)資源動(dòng)態(tài)控制模塊監(jiān)測(cè)外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí)高于當(dāng)前運(yùn)行任務(wù)時(shí),則發(fā)送中止指令給所述數(shù)據(jù)鏈路交互模塊;當(dāng)數(shù)據(jù)鏈路交互模塊接收到所述中止指令時(shí),中止外部的處理器處理所述當(dāng)前運(yùn)行任務(wù),并將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器。
下面以圖6所示的資源調(diào)度系統(tǒng)對(duì)任務(wù)A進(jìn)行處理為例,進(jìn)一步說(shuō)明資源調(diào)度方法,如圖7所示,該資源調(diào)度方法可以包括如下步驟:
步驟701:服務(wù)器接收到任務(wù)A的處理請(qǐng)求,并通過(guò)任務(wù)調(diào)度裝置中的數(shù)據(jù)鏈路交互模塊獲取各個(gè)處理器的使用情況;
如圖6所示,服務(wù)器602通過(guò)任務(wù)調(diào)度裝置中的×16PCIE總線60113連接到第一FPGA芯片60111,第一FPGA芯片60111通過(guò)四個(gè)端口A1,A2,A3及A4連接到第二FPGA芯片60112上,通過(guò)第二FPGA芯片60112上的16個(gè)端口A11,A12,A13,A14,A21,A22,A23,A24,A31,A32,A33,A34,A41,A42,A43,A44分別連接一個(gè)處理器(GPU),即為服務(wù)器掛載16個(gè)處理器(GPU)。上述×16PCIE總線60113、第一FPGA芯片60111以及第二FPGA芯片60112組合成為任務(wù)調(diào)度裝置601中的數(shù)據(jù)鏈路交互模塊6011。
由于服務(wù)器602通過(guò)任務(wù)調(diào)度裝置601中的數(shù)據(jù)鏈路交互模塊6011與16個(gè)GPU連接,則在該步驟中,服務(wù)器602通過(guò)數(shù)據(jù)鏈路交互模塊6011獲取各個(gè)處理器(GPU)的使用情況,該使用情況可包括:處于待機(jī)狀態(tài)或者處于工作狀態(tài),以及處于工作狀態(tài)時(shí),處理器處理的任務(wù)等。
步驟702:服務(wù)器標(biāo)記任務(wù)A的優(yōu)先級(jí);
在該步驟中,服務(wù)器可以針對(duì)任務(wù)的類型等對(duì)任務(wù)的優(yōu)先級(jí)進(jìn)行標(biāo)記,例如:任務(wù)A為某一正在處理任務(wù)B的前序任務(wù),則任務(wù)A的優(yōu)先級(jí)應(yīng)該高于任務(wù)B的優(yōu)先級(jí)。
步驟703:任務(wù)調(diào)度裝置中的資源動(dòng)態(tài)控制模塊確定單個(gè)處理器的計(jì)算容量;
在圖6所示的任務(wù)調(diào)度系統(tǒng)中,每一個(gè)處理器(GPU)的計(jì)算容量相同,例如:計(jì)算容量為服務(wù)器CPU的20%等。
步驟704:任務(wù)調(diào)度裝置中的資源動(dòng)態(tài)控制模塊監(jiān)測(cè)服務(wù)器接收到的任務(wù)A的任務(wù)量及任務(wù)A的優(yōu)先級(jí);
如圖6所示,任務(wù)調(diào)度裝置601中的資源動(dòng)態(tài)控制模塊6012與服務(wù)器602相連,監(jiān)測(cè)服務(wù)器602接收到任務(wù)A的任務(wù)量和任務(wù)A的優(yōu)先級(jí),該資源動(dòng)態(tài)控制模塊6012可以為ARM芯片。
步驟705:資源動(dòng)態(tài)控制模塊根據(jù)單個(gè)處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算所需目標(biāo)處理器的個(gè)數(shù);
該步驟的計(jì)算結(jié)果,可以通過(guò)下述計(jì)算公式(1),計(jì)算得到:
其中,Y表征目標(biāo)處理器的個(gè)數(shù);M表征任務(wù)量;N表征單個(gè)所述外部的處理器的計(jì)算容量。
另外,每一個(gè)目標(biāo)處理器的處理量可以通過(guò)下述計(jì)算公式(2),計(jì)算得到:
其中,W表征每個(gè)目標(biāo)處理器的處理量,M表征任務(wù)量;Y表征目標(biāo)處理器的個(gè)數(shù)。
通過(guò)計(jì)算公式(2)計(jì)算目標(biāo)處理器的處理量,可以實(shí)現(xiàn)任務(wù)量均衡分擔(dān),從而保證任務(wù)的處理效率。
另外,還可以按照單個(gè)處理器的計(jì)算容量為每一個(gè)目標(biāo)處理器分配任務(wù)。
步驟706:根據(jù)計(jì)算出的所需目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令;
該步驟生成的路由切換指令主要是控制圖6所示的數(shù)據(jù)鏈路交互模塊6011的連通線路,例如:將任務(wù)A分配給A11,A12以及A44端口連接的處理器時(shí),則該步驟生成的路由切換指令使A11,A12以及A44端口所在的線路聯(lián)通,以方便服務(wù)器與處理器間進(jìn)行數(shù)據(jù)傳輸。
步驟707:根據(jù)各個(gè)處理器的使用情況,確定處于待機(jī)狀態(tài)的處理器個(gè)數(shù);
步驟708:判斷處于待機(jī)狀態(tài)的處理器個(gè)數(shù)是否不小于所需目標(biāo)處理器的個(gè)數(shù),如果是,則執(zhí)行步驟709;否則,執(zhí)行步驟710;
該步驟主要是后續(xù)是否暫停其他處理器的基礎(chǔ),當(dāng)處于待機(jī)狀態(tài)的處理器個(gè)數(shù)不小于所需目標(biāo)處理器的個(gè)數(shù)時(shí),現(xiàn)有的處于待機(jī)狀態(tài)的處理器即可完成任務(wù)A的計(jì)算,則無(wú)需暫停其他處理器,當(dāng)處于待機(jī)狀態(tài)的處理器個(gè)數(shù)小于所需目標(biāo)處理器的個(gè)數(shù)時(shí),現(xiàn)有的處于待機(jī)狀態(tài)的處理器不足以完成任務(wù)A的計(jì)算,則需要進(jìn)一步根據(jù)任務(wù)A的優(yōu)先級(jí)判斷是否需要為任務(wù)A暫停其他處理器。
步驟709:根據(jù)路由切換指令,在處于待機(jī)狀態(tài)的處理器中選定至少一個(gè)目標(biāo)處理器,并將任務(wù)A傳輸給至少一個(gè)目標(biāo)處理器,結(jié)束當(dāng)前流程;
如圖6所示,A11,A12,A33及A44端口對(duì)應(yīng)的處理器處于待機(jī)狀態(tài),而任務(wù)A僅需要3個(gè)處理器即可完成,則資源動(dòng)態(tài)控制模塊6012可隨機(jī)將任務(wù)A分配給A11,A12及A44端口對(duì)應(yīng)的處理器,即資源動(dòng)態(tài)控制模塊6012生成對(duì)應(yīng)的路由切換指令,該步驟根據(jù)路由切換指令,將任務(wù)A分配給A11,A12及A44端口對(duì)應(yīng)的處理器。
步驟710:當(dāng)任務(wù)A的優(yōu)先級(jí)高于處理器正在處理的其他任務(wù)的優(yōu)先級(jí)時(shí),中止部分處理器處理其他任務(wù);
例如:任務(wù)A需要5個(gè)目標(biāo)處理器進(jìn)行處理,而當(dāng)前僅有4個(gè)處理器處于待機(jī)狀態(tài),而處理器中正在處理的任務(wù)B的優(yōu)先級(jí)低于任務(wù)A的優(yōu)先級(jí),則需要將任意一個(gè)運(yùn)行有任務(wù)B的處理器中止,以滿足任務(wù)A所需要的5個(gè)目標(biāo)處理器。
步驟711:將任務(wù)A分配給處于待機(jī)狀態(tài)的處理器和中止的部分處理器。
根據(jù)上述方案,本發(fā)明的各實(shí)施例,至少具有如下有益效果:
1.通過(guò)數(shù)據(jù)鏈路交互模塊分別連接外部的服務(wù)器、外部的至少兩個(gè)處理器以及所述資源動(dòng)態(tài)控制模塊;資源動(dòng)態(tài)控制模塊連接所述外部的服務(wù)器,通過(guò)監(jiān)測(cè)所述外部的服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的任務(wù)量,根據(jù)所述負(fù)載量生成對(duì)應(yīng)的路由切換指令,并將路由切換指令發(fā)送給所述數(shù)據(jù)鏈路交互模塊;通過(guò)數(shù)據(jù)鏈路交互模塊接收所述外部的服務(wù)器分配的預(yù)分配任務(wù)以及所述資源動(dòng)態(tài)控制模塊發(fā)送的路由切換指令,并根據(jù)所述路由切換指令將所述預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器,任務(wù)分配給處理器的過(guò)程通過(guò)數(shù)據(jù)鏈路交互模塊,而數(shù)據(jù)鏈路交互模塊連通服務(wù)器與處理器,實(shí)現(xiàn)服務(wù)器與處理器間任務(wù)以及任務(wù)計(jì)算結(jié)果的交互,而無(wú)須網(wǎng)絡(luò)的進(jìn)行數(shù)據(jù)分享,能夠有效地降低資源調(diào)度的延遲。
2.由于數(shù)據(jù)間通過(guò)PCIE總線進(jìn)行傳輸,與現(xiàn)有的網(wǎng)絡(luò)傳輸,能夠有效地提高數(shù)據(jù)傳輸?shù)募皶r(shí)性和穩(wěn)定性。
3.通過(guò)確定單個(gè)所述外部的處理器的計(jì)算容量,并根據(jù)所述單個(gè)所述外部的處理器的計(jì)算容量和監(jiān)測(cè)到的任務(wù)量,計(jì)算目標(biāo)處理器的個(gè)數(shù),并根據(jù)獲取的外部的服務(wù)器提供的處理器使用情況和計(jì)算出的目標(biāo)處理器的個(gè)數(shù),生成對(duì)應(yīng)的路由切換指令,保證目標(biāo)處理器的個(gè)數(shù)能夠滿足任務(wù)的處理,從而保證處理任務(wù)的高效性。
4.通過(guò)監(jiān)測(cè)服務(wù)器負(fù)載的預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí),當(dāng)所述預(yù)分配任務(wù)對(duì)應(yīng)的優(yōu)先級(jí)高于當(dāng)前運(yùn)行任務(wù)時(shí),通過(guò)中止指令中止外部的處理器處理當(dāng)前運(yùn)行任務(wù),并將預(yù)分配任務(wù)傳輸給至少一個(gè)目標(biāo)處理器,實(shí)現(xiàn)了按照優(yōu)先級(jí)處理任務(wù),進(jìn)一步保證了計(jì)算性能。
需要說(shuō)明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)〃·····”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。