本發(fā)明涉及集群資源管理及并行計(jì)算領(lǐng)域,特別是涉及一種并行計(jì)算資源分配方法及裝置。
背景技術(shù):
近年來(lái),并行計(jì)算集群越來(lái)越多的應(yīng)用于語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言理解等人工智能相關(guān)領(lǐng)域,使得所述領(lǐng)域的任務(wù)處理能力顯著提升,尤其是所述領(lǐng)域中的深度學(xué)習(xí)任務(wù)的處理能力大大得到提升;而隨著數(shù)據(jù)處理量的增加,單個(gè)資源往往無(wú)法承載復(fù)雜的計(jì)算任務(wù),這樣就需要并行計(jì)算集群中越來(lái)越多的資源執(zhí)行相應(yīng)任務(wù),以滿(mǎn)足實(shí)際應(yīng)用需求,如使用多個(gè)GPU(Graphic Processing Unit,GPU)組成一個(gè)GPU集群執(zhí)行海量數(shù)據(jù)的深度學(xué)習(xí)任務(wù)中的計(jì)算需求,這就需要對(duì)集群資源進(jìn)行高效的分配,以充分發(fā)揮其并行計(jì)算的能力。
現(xiàn)有的并行計(jì)算集群資源分配方法一般是將集群中資源作為CPU、內(nèi)存、硬盤(pán)之外的一種附屬資源進(jìn)行簡(jiǎn)單分配,集群節(jié)點(diǎn)進(jìn)行資源分配時(shí),一般采用互斥、獨(dú)占的方式對(duì)集群中資源進(jìn)行分配,即,當(dāng)集群節(jié)點(diǎn)中空閑資源滿(mǎn)足任務(wù)要求,則進(jìn)行分配,已分配的資源將一直獨(dú)占資源直到任務(wù)完成后將資源釋放,然而,這種資源分配方法會(huì)造成任務(wù)等待時(shí)間較長(zhǎng),集群并行處理能力下降以及資源利用率較低等問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種并行計(jì)算資源分配方法及裝置,以提高集群資源的利用率。
為達(dá)上述目的,本發(fā)明提出一種并行計(jì)算資源分配方法,包括如下步驟:
步驟一,接收當(dāng)前資源分配請(qǐng)求,獲取該當(dāng)前資源分配請(qǐng)求的資源總數(shù);
步驟二,獲取并行計(jì)算集群中各集群節(jié)點(diǎn)包含的資源相關(guān)信息;
步驟三,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息,計(jì)算各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià);
步驟四,根據(jù)各集群節(jié)點(diǎn)的資源分配代價(jià)及該資源總數(shù)對(duì)該當(dāng)前資源分配請(qǐng)求對(duì)應(yīng)的請(qǐng)求任務(wù)進(jìn)行資源分配。
進(jìn)一步地,步驟三進(jìn)一步包括:
根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)資源分配時(shí)產(chǎn)生的躍遷代價(jià),所述躍遷代價(jià)為每次拆分集群節(jié)點(diǎn)中資源組時(shí)發(fā)生能級(jí)躍遷而產(chǎn)生的代價(jià);
根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)中已分配資源釋放后各集群節(jié)點(diǎn)的剩余代價(jià);
根據(jù)各集群節(jié)點(diǎn)的躍遷代價(jià)及剩余代價(jià)計(jì)算各集群節(jié)點(diǎn)分配資源時(shí)的資源分配代價(jià)。
進(jìn)一步地,所述躍遷代價(jià)通過(guò)如下步驟獲得:
計(jì)算出各集群節(jié)點(diǎn)資源分配時(shí)拆分資源組產(chǎn)生的拆分代價(jià);
根據(jù)拆分資源組的拆分代價(jià)計(jì)算各集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)。
進(jìn)一步地,所述拆分代價(jià)通過(guò)當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含的資源數(shù)計(jì)算獲得,或直接設(shè)定獲得。
進(jìn)一步地,所述剩余代價(jià)通過(guò)集群節(jié)點(diǎn)中剩余資源數(shù)獲得。
進(jìn)一步地,所述資源相關(guān)信息包括當(dāng)前集群節(jié)點(diǎn)中各個(gè)資源組包含的資源數(shù)、當(dāng)前集群節(jié)點(diǎn)中所有資源總數(shù)、使用資源總數(shù)及剩余資源總數(shù)。
進(jìn)一步地,所述資源相關(guān)信息通過(guò)各集群節(jié)點(diǎn)發(fā)送的心跳信號(hào)獲得。
進(jìn)一步地,于步驟四中,選擇資源分配代價(jià)最小的集群節(jié)點(diǎn)分配相應(yīng)該資源總數(shù)的資源給該請(qǐng)求任務(wù)。
為達(dá)到上述目的,本發(fā)明還提供一種并行計(jì)算資源分配裝置,包括:
資源分配請(qǐng)求接收模塊,用于接收當(dāng)前資源分配請(qǐng)求,獲取當(dāng)前資源分配請(qǐng)求的資源總數(shù);
資源信息獲取模塊,用于獲取并行計(jì)算集群中各個(gè)集群節(jié)點(diǎn)包含的資源相關(guān)信息;
資源分配代價(jià)計(jì)算模塊,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息,計(jì)算各集群節(jié)點(diǎn)的資源分配代價(jià);
資源分配模塊,根據(jù)各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)及該當(dāng)前資源分配請(qǐng)求的資源總數(shù)對(duì)該當(dāng)前資源分配請(qǐng)求對(duì)應(yīng)的請(qǐng)求任務(wù)進(jìn)行資源分配。
進(jìn)一步地,所述資源分配代價(jià)計(jì)算模塊包括:
躍遷代價(jià)計(jì)算單元,用于根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各集群節(jié)點(diǎn)資源分配時(shí)產(chǎn)生的躍遷代價(jià),所述躍遷代價(jià)為每次拆分集群節(jié)點(diǎn)中資源組時(shí)發(fā)生能級(jí)躍遷而產(chǎn)生的代價(jià);
剩余代價(jià)計(jì)算單元,用于根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各集群節(jié)點(diǎn)中已分配資源釋放后各集群節(jié)點(diǎn)的剩余代價(jià);
分配代價(jià)計(jì)算單元,根據(jù)各集群節(jié)點(diǎn)的躍遷代價(jià)及剩余代價(jià)計(jì)算各集群節(jié)點(diǎn)分配資源時(shí)的資源分配代價(jià)。
進(jìn)一步地,所述躍遷代價(jià)計(jì)算單元首先計(jì)算出各集群節(jié)點(diǎn)資源分配時(shí)拆分資源組產(chǎn)生的拆分代價(jià),再根據(jù)拆分資源組的拆分代價(jià)計(jì)算各集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)。
進(jìn)一步地,所述拆分代價(jià)通過(guò)當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含的資源數(shù)計(jì)算獲得,或直接設(shè)定獲得。
進(jìn)一步地,所述剩余代價(jià)通過(guò)集群節(jié)點(diǎn)中剩余資源數(shù)獲得。
與現(xiàn)有技術(shù)相比,本發(fā)明一種并行計(jì)算資源分配方法及裝置通過(guò)在進(jìn)行資源分配之前根據(jù)各個(gè)集群節(jié)點(diǎn)中包含的資源相關(guān)信息,計(jì)算各個(gè)集群節(jié)點(diǎn)分配相應(yīng)數(shù)量資源時(shí)的分配代價(jià),從而保證了每次請(qǐng)求資源時(shí),選擇產(chǎn)生碎片較少的集群節(jié)點(diǎn)進(jìn)行資源分配,有效地提高了整個(gè)集群資源的利用率。
附圖說(shuō)明
圖1為本發(fā)明第一實(shí)施例一種并行計(jì)算資源分配方法的步驟流程圖;
圖2為本發(fā)明第一實(shí)施例中步驟103的細(xì)部流程圖
圖3為本發(fā)明具體實(shí)施例中拆分集群節(jié)點(diǎn)中資源組時(shí)產(chǎn)生的能級(jí)躍遷示意圖;
圖4為本發(fā)明第二實(shí)施例一種并行計(jì)算資源分配裝置的結(jié)構(gòu)示意圖
圖5為本發(fā)明第二實(shí)施例中資源分配代價(jià)計(jì)算模塊的細(xì)部結(jié)構(gòu)圖。
具體實(shí)施方式
以下通過(guò)特定的具體實(shí)例并結(jié)合附圖說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點(diǎn)與功效。本發(fā)明亦可通過(guò)其它不同的具體實(shí)例加以施行或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)亦可基于不同觀(guān)點(diǎn)與應(yīng)用,在不背離本發(fā)明的精神下進(jìn)行各種修飾與變更。
圖1為本發(fā)明第一實(shí)施例一種并行計(jì)算資源分配方法的步驟流程圖。如圖1所示,本發(fā)明一種并行計(jì)算資源分配方法,包括如下步驟:
步驟101,接收當(dāng)前資源分配請(qǐng)求,獲取當(dāng)前資源分配請(qǐng)求的資源總數(shù)。
所述當(dāng)前資源分配請(qǐng)求的資源總數(shù)一般為執(zhí)行新任務(wù)時(shí)需要的資源數(shù);所述資源是指每個(gè)集群節(jié)點(diǎn)在執(zhí)行任務(wù)時(shí),分配資源時(shí)的最小資源單位,例如并行計(jì)算集群節(jié)點(diǎn)中使用多個(gè)GPU進(jìn)行并行計(jì)算,則單個(gè)GPU即為集群節(jié)點(diǎn)執(zhí)行任務(wù)時(shí),分配的最小資源單位。本發(fā)明中,并行計(jì)算時(shí),集群中包含多個(gè)集群節(jié)點(diǎn),每個(gè)集群節(jié)點(diǎn)包含一或多個(gè)資源組,每個(gè)資源組中包含固定數(shù)量的資源。
步驟102,獲取并行計(jì)算集群中各個(gè)集群節(jié)點(diǎn)包含的資源相關(guān)信息。所述資源相關(guān)信息包括當(dāng)前集群節(jié)點(diǎn)中各個(gè)資源組包含的資源數(shù)、當(dāng)前集群節(jié)點(diǎn)中所有資源總數(shù)、使用資源總數(shù)及剩余資源總數(shù)在本發(fā)明實(shí)施例中,資源相關(guān)信息可通過(guò)各集群節(jié)點(diǎn)發(fā)送的心跳信號(hào)獲得,也就是說(shuō),各集群節(jié)點(diǎn)會(huì)定時(shí)向分配裝置發(fā)送心跳信號(hào),以證明自己仍活躍于集群中,所述心跳信號(hào)包括各集群節(jié)點(diǎn)自身的ID號(hào)以及對(duì)應(yīng)的資源相關(guān)信息,但不以此為限。
步驟103,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息,計(jì)算各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)。
在本發(fā)明中,資源分配代價(jià)由兩部分組成:各個(gè)集群節(jié)點(diǎn)資源分配時(shí),拆分資源組產(chǎn)生的能級(jí)躍遷代價(jià)和各個(gè)集群節(jié)點(diǎn)中已分配資源被釋放后的剩余代價(jià)。圖2為本發(fā)明第一實(shí)施例中步驟103的細(xì)部流程圖。如圖2所示,步驟203進(jìn)一步包括如下步驟:
步驟S1,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)資源分配時(shí)產(chǎn)生的躍遷代價(jià)。所述躍遷代價(jià)指每次拆分集群節(jié)點(diǎn)中資源組時(shí)發(fā)生的能級(jí)躍遷而產(chǎn)生的代價(jià)。受限于硬件,分配集群節(jié)點(diǎn)中資源時(shí),如果需要拆分資源組,花費(fèi)的代價(jià)往往較高,即拆分代價(jià)較高;如果不需要拆分資源組分配資源,花費(fèi)的代價(jià)往往較低,并且遠(yuǎn)遠(yuǎn)低于拆分資源組時(shí)花費(fèi)的拆分代價(jià),可以忽略不計(jì),因此,躍遷代價(jià)的計(jì)算過(guò)程如下:
1)首先計(jì)算集群節(jié)點(diǎn)中資源分配時(shí)拆分資源組產(chǎn)生的拆分代價(jià)
拆分代價(jià)只有在拆分集群節(jié)點(diǎn)中資源組時(shí)才會(huì)產(chǎn)生,拆分代價(jià)與當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含的資源數(shù)相關(guān),其可通過(guò)當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含的資源數(shù)計(jì)算獲得,本發(fā)明具體實(shí)施例中,具體計(jì)算公式如下式(1):
其中,k表示拆分集群節(jié)點(diǎn)中資源組時(shí)產(chǎn)生的拆分代價(jià);R表示當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù),g為集群節(jié)點(diǎn)中資源組包含的資源數(shù),j為拆分代價(jià)調(diào)節(jié)參數(shù),取值為大于等于1的整數(shù),具體取值可根據(jù)應(yīng)用需求或?qū)嶒?yàn)結(jié)果確定,其作用為保證k的取值為0或1,即當(dāng)拆分資源組時(shí),取值為1,不拆分資源組時(shí),取值為0;
需要說(shuō)明的,上述式(1)僅為示例性計(jì)算方法,當(dāng)然,也可以不采用上式給出的拆分代價(jià)計(jì)算方法,直接設(shè)定集群節(jié)點(diǎn)在分配資源時(shí),每次拆分資源組的拆分代價(jià),如直接設(shè)定每次拆分資源組時(shí)的拆分代價(jià)為1,不拆分資源組時(shí),拆分代價(jià)為0,本發(fā)明不以此為限。
2)根據(jù)拆分資源組的拆分代價(jià)計(jì)算各集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)
當(dāng)集群節(jié)點(diǎn)中有多個(gè)資源組時(shí),在每次拆分資源組進(jìn)行資源分配時(shí)都會(huì)造成集群節(jié)點(diǎn)能級(jí)的躍遷,產(chǎn)生躍遷代價(jià),所述能級(jí)躍遷指資源分配時(shí)未拆分集群中資源組時(shí),能級(jí)未發(fā)生改變,當(dāng)拆分資源組后,能級(jí)降低,能級(jí)發(fā)生躍遷,進(jìn)而產(chǎn)生躍遷代價(jià)。
各集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)為各個(gè)集群節(jié)點(diǎn)中所有拆分資源組時(shí)產(chǎn)生的拆分代價(jià)之和,如圖3為本發(fā)明具體實(shí)施例中拆分集群節(jié)點(diǎn)中資源組時(shí)產(chǎn)生的能級(jí)躍遷示意圖,其中,該集群節(jié)點(diǎn)共包含8個(gè)資源,2個(gè)資源組,每個(gè)資源組固定包含4個(gè)資源,當(dāng)集群中資源由8降到4或由4降到0時(shí),能級(jí)發(fā)生躍遷,產(chǎn)生躍遷代價(jià),所述躍遷代價(jià)通過(guò)如下式(2)計(jì)算獲得:
其中,TR-a表示集群節(jié)點(diǎn)分配資源后從R個(gè)資源分配a個(gè)資源后的躍遷代價(jià),a表示請(qǐng)求資源數(shù),ki表示集群節(jié)點(diǎn)分配資源時(shí)的拆分代價(jià),只有在分配第i個(gè)資源時(shí),拆分了資源組,ki取值為1,否則,取值為0。
以下通過(guò)一具體實(shí)例來(lái)說(shuō)明各集群節(jié)點(diǎn)躍遷代價(jià)的計(jì)算過(guò)程。假設(shè),請(qǐng)求資源數(shù)為2,且并行計(jì)算集群中包含兩個(gè)集群節(jié)點(diǎn)node1和node2,每個(gè)集群節(jié)點(diǎn)的相關(guān)信息如下表1所示:
表1
其中,g表示每個(gè)集群節(jié)點(diǎn)中資源組包含的資源數(shù),a表示請(qǐng)求資源數(shù),Total表示每個(gè)集群節(jié)點(diǎn)包含的資源總數(shù),Used表示每個(gè)集群節(jié)點(diǎn)已經(jīng)被分配的資源數(shù),R1、R2分別表示集群節(jié)點(diǎn)在分配資源后剩余資源數(shù);本發(fā)明具體實(shí)施例中各集群節(jié)點(diǎn)的躍遷代價(jià)的計(jì)算過(guò)程如下:
1)計(jì)算node1節(jié)點(diǎn)的躍遷代價(jià)
先計(jì)算node1節(jié)點(diǎn)分配兩個(gè)資源后的拆分代價(jià),由于node1節(jié)點(diǎn)剩余5個(gè)資源可用,每個(gè)資源組包含4個(gè)資源,當(dāng)節(jié)點(diǎn)分配第1個(gè)資源時(shí),并未拆分資源組,當(dāng)節(jié)點(diǎn)分配第2個(gè)資源時(shí),需要拆分一個(gè)資源組,因此,根據(jù)式(1)可計(jì)算出拆分代價(jià)為1;由于node1節(jié)點(diǎn)分配2個(gè)資源時(shí)共拆分一個(gè)資源組;因此,node1節(jié)點(diǎn)由5個(gè)資源降低到3個(gè)資源時(shí)的躍遷代價(jià)為所有拆分代價(jià)之和,即1;
2)計(jì)算node2節(jié)點(diǎn)的躍遷代價(jià)
同樣先計(jì)算node2節(jié)點(diǎn)分配兩個(gè)資源后的拆分代價(jià),由于node2節(jié)點(diǎn)剩余3個(gè)資源可用,每個(gè)資源組包含4個(gè)資源,當(dāng)節(jié)點(diǎn)分配完兩個(gè)資源后,并未拆分資源組,拆分代價(jià)為0;因此node2節(jié)點(diǎn)分配2個(gè)資源后,由3個(gè)資源降低到1個(gè)資源的躍遷代價(jià)為0。
步驟S2,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)中已分配資源釋放后各集群節(jié)點(diǎn)的剩余代價(jià)。
由于實(shí)際使用時(shí),保證各個(gè)集群節(jié)點(diǎn)中資源的完整性,可以將集群節(jié)點(diǎn)中資源整體分配給資源消耗較大的更重要的任務(wù),具有較高的價(jià)值,因此,在集群節(jié)點(diǎn)僅缺少一個(gè)資源時(shí),具有的潛在價(jià)值較高,因?yàn)閮H需要釋放一個(gè)資源就可以保證該集群節(jié)點(diǎn)的完整性,在進(jìn)行資源分配時(shí),直接將整個(gè)集群節(jié)點(diǎn)中資源分配給資源消耗更大的任務(wù)。為此,本發(fā)明在計(jì)算各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)時(shí),還考慮了各個(gè)集群節(jié)點(diǎn)中已分配的資源在釋放后集群節(jié)點(diǎn)的剩余代價(jià),所述剩余代價(jià)指由于集群節(jié)點(diǎn)在分配資源時(shí),未考慮集群節(jié)點(diǎn)中已分配節(jié)點(diǎn)釋放后可以保持集群節(jié)點(diǎn)的完整性而導(dǎo)致潛在價(jià)值受損所產(chǎn)生的代價(jià),具體剩余代價(jià)的計(jì)算方法如下:
所述集群節(jié)點(diǎn)的剩余代價(jià)與集群節(jié)點(diǎn)中剩余資源數(shù)相關(guān),可通過(guò)集群節(jié)點(diǎn)中剩余資源數(shù)獲得,當(dāng)集群節(jié)點(diǎn)中剩余資源越多,將剩余資源分配給請(qǐng)求資源的任務(wù)時(shí),損失的潛在價(jià)值越大,從而使集群節(jié)點(diǎn)的剩余代價(jià)越大;因此,所述集群節(jié)點(diǎn)的剩余代價(jià)與集群節(jié)點(diǎn)中剩余的資源數(shù)成反比,剩余代價(jià)可采用如下式(3)計(jì)算獲得:
其中,LR為集群節(jié)點(diǎn)剩余R個(gè)資源時(shí)的剩余代價(jià),R為集群節(jié)點(diǎn)分配資源前的剩余資源數(shù);
步驟S3,根據(jù)各集群節(jié)點(diǎn)的躍遷代價(jià)及剩余代價(jià)計(jì)算各個(gè)集群節(jié)點(diǎn)分配資源時(shí)的分配代價(jià)。
在本發(fā)明具體實(shí)施例中,所述分配代價(jià)為各個(gè)集群節(jié)點(diǎn)分配資源后的躍遷代價(jià)與剩余代價(jià)之和,可利用如下式(4)獲得:
CR-a=TR-a+LR (4)
其中,CR-a為集群節(jié)點(diǎn)中剩余R個(gè)資源時(shí)分配a個(gè)資源后的分配代價(jià)。在此需說(shuō)明的是,式(4)僅為示例性說(shuō)明,也可以對(duì)躍遷代價(jià)與剩余代價(jià)進(jìn)行加權(quán)處理后計(jì)算出分配代價(jià),本發(fā)明不以此為限。
以下通過(guò)一個(gè)具體實(shí)例來(lái)說(shuō)明分配代價(jià)的計(jì)算過(guò)程:例如當(dāng)前請(qǐng)求資源數(shù)為2的集群節(jié)點(diǎn)node1和node2的資源相關(guān)信息如下表2所示,表中具體參數(shù)含義與表1相同,其中C為每個(gè)集群節(jié)點(diǎn)分配資源時(shí)的分配代價(jià),其它參數(shù)含義與表1相同,集群節(jié)點(diǎn)node1和node2的分配代價(jià)C的計(jì)算過(guò)程如下所述:
表2
先計(jì)算各個(gè)集群節(jié)點(diǎn)分配資源后的躍遷代價(jià),由于node1和node2節(jié)點(diǎn)分配2個(gè)資源后并未拆分資源組,因此拆分代價(jià)和躍遷代價(jià)都為0;
計(jì)算node1節(jié)點(diǎn)的剩余代價(jià):1-1/7=6/7;
計(jì)算node2節(jié)點(diǎn)的剩余代價(jià):1-1/2=1/2;
因此,node1節(jié)點(diǎn)分配資源的分配代價(jià)為0+6/7=6/7,node2節(jié)點(diǎn)分配資源的分配代價(jià)為0+1/2=1/2。
步驟104,根據(jù)各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)及資源請(qǐng)求總數(shù)對(duì)該當(dāng)前資源分配請(qǐng)求對(duì)應(yīng)的請(qǐng)求任務(wù)進(jìn)行資源分配。本發(fā)明實(shí)施例中,在具體分配時(shí),則選擇分配代價(jià)最小的集群節(jié)點(diǎn)分配相應(yīng)所請(qǐng)求的資源總數(shù)的資源給該請(qǐng)求任務(wù)。
由于并行計(jì)算集群中每個(gè)集群節(jié)點(diǎn)會(huì)包含一到多個(gè)資源組,每個(gè)資源組包含固定數(shù)量的資源,現(xiàn)有技術(shù)的資源分配方法僅采用互斥、獨(dú)占的方式對(duì)集群中資源進(jìn)行分配,未考慮資源分配時(shí)產(chǎn)生的分配代價(jià),而是直接將符合需求的資源分配給需求任務(wù),經(jīng)常會(huì)拆分各集群節(jié)點(diǎn)中的資源組分配資源。這樣的話(huà),如果一個(gè)資源組中剩余資源較少,下次需求任務(wù)請(qǐng)求資源時(shí),往往無(wú)法滿(mǎn)足要求,從而產(chǎn)生資源碎片,并且隨著時(shí)間的推移產(chǎn)生的碎片會(huì)越來(lái)越多,當(dāng)有較大任務(wù)需要較多資源時(shí),集群節(jié)點(diǎn)中資源碎片無(wú)法滿(mǎn)足需求,較大任務(wù)需要等待已分配資源釋放后,才能得到需求數(shù)量的資源,因而會(huì)造成任務(wù)等待時(shí)間較長(zhǎng),集群并行處理能力下降,資源利用率較低等問(wèn)題,本發(fā)明在資源分配時(shí),不僅考慮各集群節(jié)點(diǎn)分配請(qǐng)求資源數(shù)資源后的躍遷代價(jià),同時(shí)考慮各個(gè)集群節(jié)點(diǎn)已分配資源釋放后的集群節(jié)點(diǎn)的剩余代價(jià),根據(jù)各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)及資源請(qǐng)求總數(shù)對(duì)請(qǐng)求任務(wù)進(jìn)行資源分配,能夠很好地解決現(xiàn)有技術(shù)存在的問(wèn)題。
圖4為本發(fā)明第二實(shí)施例一種并行計(jì)算資源分配裝置的結(jié)構(gòu)示意圖。如圖4所示,本發(fā)明一種并行計(jì)算資源分配裝置,包括:資源分配請(qǐng)求接收模塊10、資源信息獲取模塊11、資源分配代價(jià)計(jì)算模塊12以及資源分配模塊13。
其中,資源分配請(qǐng)求接收模塊10,用于接收當(dāng)前資源分配請(qǐng)求,獲取當(dāng)前資源分配請(qǐng)求的資源總數(shù)。所述當(dāng)前資源分配請(qǐng)求的資源總數(shù)一般為執(zhí)行新任務(wù)時(shí)需要的資源數(shù);所述資源指每個(gè)集群節(jié)點(diǎn)在執(zhí)行任務(wù)時(shí),分配資源時(shí)的最小資源單位,如并行計(jì)算集群節(jié)點(diǎn)中使用多個(gè)GPU進(jìn)行并行計(jì)算,則單個(gè)GPU即為集群節(jié)點(diǎn)執(zhí)行任務(wù)時(shí),分配的最小資源單位。本發(fā)明中,并行計(jì)算時(shí),集群中包含多個(gè)集群節(jié)點(diǎn),每個(gè)集群節(jié)點(diǎn)包含一或多個(gè)資源組,每個(gè)資源組中包含固定數(shù)量的資源。
資源信息獲取模塊11,用于獲取并行計(jì)算集群中各個(gè)集群節(jié)點(diǎn)包含的資源相關(guān)信息。所述資源相關(guān)信息包括當(dāng)前集群節(jié)點(diǎn)中各個(gè)資源組包含的資源數(shù)、當(dāng)前集群節(jié)點(diǎn)中所有資源總數(shù)、使用資源總數(shù)及剩余資源總數(shù)。在本發(fā)明具體實(shí)施例中,資源相關(guān)信息可通過(guò)各集群節(jié)點(diǎn)發(fā)送的心跳信號(hào)獲得,也就是說(shuō),各集群節(jié)點(diǎn)會(huì)定時(shí)向分配裝置發(fā)送心跳信號(hào),以證明自己仍活躍于集群中,所述心跳信號(hào)包括各集群節(jié)點(diǎn)自身的ID號(hào)以及對(duì)應(yīng)的資源相關(guān)信息。
資源分配代價(jià)計(jì)算模塊12,根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息,計(jì)算各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)。
在本發(fā)明中,資源分配代價(jià)由兩部分組成:每個(gè)集群節(jié)點(diǎn)資源分配時(shí),拆分資源組產(chǎn)生的能級(jí)躍遷代價(jià)和每個(gè)集群節(jié)點(diǎn)中已分配資源被釋放后的剩余代價(jià)。圖5為本發(fā)明第二實(shí)施例中資源分配代價(jià)計(jì)算模塊的細(xì)部結(jié)構(gòu)圖。如圖5所示,資源分配代價(jià)計(jì)算模塊12進(jìn)一步包括:躍遷代價(jià)計(jì)算單元120、剩余代價(jià)計(jì)算單元121、分配代價(jià)計(jì)算單元122。
躍遷代價(jià)計(jì)算單元120,用于根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)資源分配時(shí)產(chǎn)生的躍遷代價(jià)。所述躍遷代價(jià)指每次拆分集群節(jié)點(diǎn)中資源組時(shí)發(fā)生的能級(jí)躍遷而產(chǎn)生的代價(jià)。受限于硬件,分配集群節(jié)點(diǎn)中資源時(shí),如果需要拆分資源組,花費(fèi)的代價(jià)往往較高,即拆分代價(jià)較高;如果不需要拆分資源組分配資源,花費(fèi)的代價(jià)往往較低,并且遠(yuǎn)遠(yuǎn)低于拆分資源組時(shí)花費(fèi)的拆分代價(jià),可以忽略不計(jì),因此,躍遷代價(jià)計(jì)算單元120的計(jì)算過(guò)程如下:
1)先計(jì)算各集群節(jié)點(diǎn)中資源分配時(shí)拆分資源組產(chǎn)生的拆分代價(jià)
所述拆分代價(jià)只有在拆分集群節(jié)點(diǎn)中資源組時(shí)才會(huì)產(chǎn)生,所述拆分代價(jià)與當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含資源數(shù)相關(guān),其可通過(guò)當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù)及資源組包含的資源數(shù)計(jì)算獲得,本發(fā)明具體實(shí)施例中,具體計(jì)算方法采用下式獲得:
其中,k表示拆分集群節(jié)點(diǎn)中資源組時(shí)產(chǎn)生的拆分代價(jià);R表示當(dāng)前集群節(jié)點(diǎn)中剩余資源數(shù),g為集群節(jié)點(diǎn)中資源組包含資源數(shù),j為拆分代價(jià)調(diào)節(jié)參數(shù),為大于等于1的整數(shù),具體取值可根據(jù)應(yīng)用需求或?qū)嶒?yàn)結(jié)果確定,其作用為保證k的取值為0或1,即當(dāng)拆分資源組時(shí),取值為1,不拆分資源組時(shí),取值為0;
需要說(shuō)明的,上式僅為示例性計(jì)算方法,當(dāng)然,也可以不采用上式給出拆分代價(jià)計(jì)算方法,直接設(shè)定集群節(jié)點(diǎn)在分配資源時(shí),每次拆分資源組的拆分代價(jià),如直接設(shè)定每次拆分資源組時(shí)的拆分代價(jià)為1,不拆分資源組時(shí),拆分代價(jià)為0;本發(fā)明不以此為限。
2)根據(jù)拆分資源組的拆分代價(jià)計(jì)算集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)
當(dāng)集群節(jié)點(diǎn)中有多個(gè)資源組時(shí),在每次拆分資源組進(jìn)行資源分配時(shí)都會(huì)造成集群節(jié)點(diǎn)能級(jí)的躍遷,產(chǎn)生躍遷代價(jià),所述能級(jí)躍遷指資源分配時(shí)未拆分集群中資源組時(shí),能級(jí)未發(fā)生改變,當(dāng)拆分資源組后,能級(jí)降低,能級(jí)發(fā)生躍遷,進(jìn)而產(chǎn)生躍遷代價(jià)。
集群節(jié)點(diǎn)資源分配時(shí)的躍遷代價(jià)為各個(gè)集群節(jié)點(diǎn)中所有拆分資源組時(shí)產(chǎn)生的拆分代價(jià)之和。所述躍遷代價(jià)可采用下式獲得:
其中,TR-a表示集群節(jié)點(diǎn)分配資源后從R個(gè)資源分配a個(gè)資源后的躍遷代價(jià),a表示請(qǐng)求資源數(shù),ki表示集群節(jié)點(diǎn)分配資源時(shí)的拆分代價(jià),只有在分配第i個(gè)資源時(shí),拆分了資源組,ki取值為1,否則,取值為0。
剩余代價(jià)計(jì)算單元121,用于根據(jù)各集群節(jié)點(diǎn)的資源相關(guān)信息計(jì)算各個(gè)集群節(jié)點(diǎn)中已分配資源釋放后各集群節(jié)點(diǎn)的剩余代價(jià)。
由于實(shí)際使用時(shí),保證各個(gè)集群節(jié)點(diǎn)中資源的完整性,可以將集群節(jié)點(diǎn)中資源整體分配給資源消耗較大的更重要的任務(wù),具有較高的價(jià)值,因此,在集群節(jié)點(diǎn)僅缺少一個(gè)資源時(shí),具有的潛在價(jià)值較高,因?yàn)閮H需要釋放一個(gè)資源就可以保證該集群節(jié)點(diǎn)的完整性,在進(jìn)行資源分配時(shí),直接將整個(gè)集群節(jié)點(diǎn)中資源分配給資源消耗更大的任務(wù)。為此,本發(fā)明在計(jì)算各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)時(shí),還考慮了各個(gè)集群節(jié)點(diǎn)中已分配的資源在釋放后集群節(jié)點(diǎn)的剩余代價(jià),所述剩余代價(jià)指由于集群節(jié)點(diǎn)在分配資源時(shí),未考慮集群節(jié)點(diǎn)中已分配節(jié)點(diǎn)釋放后可以保持集群節(jié)點(diǎn)的完整性而導(dǎo)致潛在價(jià)值受損所產(chǎn)生的代價(jià),具體剩余代價(jià)的計(jì)算過(guò)程如下:
所述集群節(jié)點(diǎn)的剩余代價(jià)與集群節(jié)點(diǎn)中剩余資源數(shù)相關(guān),可通過(guò)集群節(jié)點(diǎn)中剩余資源數(shù)獲得,當(dāng)集群節(jié)點(diǎn)中剩余資源越多,將剩余資源分配給請(qǐng)求資源的任務(wù)時(shí),損失的潛在價(jià)值越大,從而使集群節(jié)點(diǎn)的剩余代價(jià)越大;因此,所述集群節(jié)點(diǎn)的剩余代價(jià)與集群節(jié)點(diǎn)中剩余的資源數(shù)成反比,所述剩余代價(jià)的計(jì)算方法如下式所示:
其中,LR為集群節(jié)點(diǎn)剩余R個(gè)資源時(shí)的剩余代價(jià),R為集群節(jié)點(diǎn)分配資源前的剩余資源數(shù);
分配代價(jià)計(jì)算單元122,用于根據(jù)各集群節(jié)點(diǎn)的躍遷代價(jià)及剩余代價(jià)計(jì)算各個(gè)集群節(jié)點(diǎn)分配資源時(shí)的分配代價(jià)。
在本發(fā)明實(shí)施例中,所述分配代價(jià)為各個(gè)集群節(jié)點(diǎn)分配資源后的躍遷代價(jià)與剩余代價(jià)之和,可利用下式獲得:
CR-a=TR-a+LR
其中,CR-a為集群節(jié)點(diǎn)中剩余R個(gè)資源時(shí)分配a個(gè)資源后的分配代價(jià)。
資源分配模塊13,根據(jù)各個(gè)集群節(jié)點(diǎn)的資源分配代價(jià)及資源請(qǐng)求總數(shù)對(duì)請(qǐng)求任務(wù)進(jìn)行資源分配。本發(fā)明實(shí)施例中,在具體分配時(shí),則選擇分配代價(jià)最小的集群節(jié)點(diǎn)分配相應(yīng)資源請(qǐng)求總數(shù)的資源給請(qǐng)求任務(wù)。
綜上所述,本發(fā)明一種并行計(jì)算資源分配方法及裝置通過(guò)在進(jìn)行資源分配之前根據(jù)各個(gè)集群節(jié)點(diǎn)中包含的資源相關(guān)信息,計(jì)算各個(gè)集群節(jié)點(diǎn)分配相應(yīng)數(shù)量資源時(shí)的分配代價(jià),從而保證了每次請(qǐng)求資源時(shí),選擇產(chǎn)生碎片較少的集群節(jié)點(diǎn)進(jìn)行資源分配,有效地提高了整個(gè)集群資源的利用率。
任何本領(lǐng)域技術(shù)人員均可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾與改變。因此,本發(fā)明的權(quán)利保護(hù)范圍,應(yīng)如權(quán)利要求書(shū)所列。