[發(fā)明專利]一種用于在分布式異構(gòu)環(huán)境下實(shí)現(xiàn)多GPU調(diào)度的方法和系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201911296432.0 | 申請(qǐng)日: | 2019-12-16 |
| 公開(公告)號(hào): | CN110955526B | 公開(公告)日: | 2022-10-21 |
| 發(fā)明(設(shè)計(jì))人: | 李肯立;杜利凡;唐卓;賀凱林;劉翔;張學(xué)東;陽(yáng)王東;周旭;劉楚波;曹嶸暉 | 申請(qǐng)(專利權(quán))人: | 湖南大學(xué) |
| 主分類號(hào): | G06F9/50 | 分類號(hào): | G06F9/50 |
| 代理公司: | 武漢臻誠(chéng)專利代理事務(wù)所(普通合伙) 42233 | 代理人: | 宋業(yè)斌 |
| 地址: | 410001 湖*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 用于 分布式 環(huán)境 實(shí)現(xiàn) gpu 調(diào)度 方法 系統(tǒng) | ||
本發(fā)明公開了一種用于在分布式異構(gòu)環(huán)境下實(shí)現(xiàn)多GPU調(diào)度的方法,其根據(jù)Java計(jì)算任務(wù)創(chuàng)建對(duì)應(yīng)的GPU本地計(jì)算任務(wù),并通過(guò)數(shù)據(jù)分塊和任務(wù)分解,將GPU本地任務(wù)劃分為更細(xì)粒度的GPU本地子任務(wù),然后根據(jù)數(shù)據(jù)本地性以及從節(jié)點(diǎn)上所有GPU的流資源狀態(tài)和內(nèi)存資源狀態(tài)將GPU本地子任務(wù)調(diào)度到指定GPU上執(zhí)行,從而充分平衡各個(gè)GPU上的工作負(fù)載,降低Spark應(yīng)用程序的執(zhí)行時(shí)間。本發(fā)明能夠解決現(xiàn)有分布式異構(gòu)Spark處理框架中存在的吞吐量低、無(wú)法有效利用多個(gè)GPU、以及由于缺乏有效的GPU負(fù)載均衡策略導(dǎo)致的時(shí)間開銷大的技術(shù)問(wèn)題。
技術(shù)領(lǐng)域
本發(fā)明屬于分布式、高性能計(jì)算技術(shù)領(lǐng)域,更具體地,涉及一種用于在分布式異構(gòu)環(huán)境下實(shí)現(xiàn)多GPU調(diào)度的方法和系統(tǒng)。
背景技術(shù)
Spark框架是基于內(nèi)存的分布式處理框架,其非常適合解決迭代計(jì)算任務(wù),同時(shí),迭代計(jì)算任務(wù)也同樣適合被GPU處理。因此,理論上將GPU整合到Spark框架中可以極大地提高Spark框架的性能。
目前,開源版本的Spark應(yīng)用程序并不支持GPU加速,而只能運(yùn)行在CPU上。M.Grossman等人提出了一種分布式異構(gòu)Spark處理框架,其將GPU整合到Spark框架中,利用GPU的并行計(jì)算能力來(lái)加速Spark框架。
然而,上述分布式異構(gòu)處理框架存在一些不可忽略的缺陷:第一、其沒(méi)有考慮使用異步流資源來(lái)并發(fā)任務(wù)到GPU上執(zhí)行,這會(huì)導(dǎo)致所有的計(jì)算任務(wù)都被發(fā)布到默認(rèn)的流并且嚴(yán)格按照順序執(zhí)行,因此GPU的任務(wù)并行能力并沒(méi)有被有效利用,從而限制了整個(gè)處理框架的吞吐量;第二、其沒(méi)有考慮從節(jié)點(diǎn)上配置有多個(gè)GPU的硬件情況,從而無(wú)法有效利用多個(gè)GPU來(lái)降低整個(gè)處理框架的運(yùn)行時(shí)間;第三、其缺乏多GPU之間有效的負(fù)載均衡策略,多個(gè)GPU的工作負(fù)載失衡會(huì)導(dǎo)致整個(gè)Spark應(yīng)用程序的運(yùn)行時(shí)間過(guò)長(zhǎng),從而增加了時(shí)間開銷。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種用于在分布式異構(gòu)環(huán)境下實(shí)現(xiàn)多GPU調(diào)度的方法和系統(tǒng),其目的在于,解決現(xiàn)有分布式異構(gòu)Spark處理框架中存在的吞吐量低、無(wú)法有效利用多個(gè)GPU、以及由于缺乏有效的GPU負(fù)載均衡策略導(dǎo)致的時(shí)間開銷大的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種用于在分布式異構(gòu)環(huán)境下實(shí)現(xiàn)多GPU調(diào)度的方法,其是應(yīng)用在包括一個(gè)主節(jié)點(diǎn)、以及多個(gè)從節(jié)點(diǎn)的Spark環(huán)境中,所述方法包括以下步驟:
(1)主節(jié)點(diǎn)接收用戶發(fā)送的Spark應(yīng)用程序,對(duì)該Spark應(yīng)用程序進(jìn)行解析,以得到DAG圖;
(2)主節(jié)點(diǎn)設(shè)置計(jì)數(shù)器i=1;
(3)主節(jié)點(diǎn)判斷i是否大于DAG圖中調(diào)度階段(即Stage)的總數(shù),如果是則過(guò)程結(jié)束,否則進(jìn)入步驟(4)。
(4)主節(jié)點(diǎn)將該DAG圖中的第i個(gè)調(diào)度階段劃分為多個(gè)可并發(fā)執(zhí)行的任務(wù),并獲取當(dāng)前Spark環(huán)境中所有從節(jié)點(diǎn)的計(jì)算資源,并根據(jù)所有從節(jié)點(diǎn)的計(jì)算資源使用Spark任務(wù)調(diào)度機(jī)制將所有任務(wù)調(diào)度到對(duì)應(yīng)從節(jié)點(diǎn)的JAVA虛擬機(jī)執(zhí)行;
(5)從節(jié)點(diǎn)對(duì)其JVM中的任務(wù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,以將該任務(wù)對(duì)應(yīng)的數(shù)據(jù)映射到堆外內(nèi)存上,并使用Java本地訪問(wèn)庫(kù)對(duì)該數(shù)據(jù)在堆外內(nèi)存中的地址進(jìn)行調(diào)整,以得到物理位置連續(xù)的數(shù)據(jù);
(6)從節(jié)點(diǎn)調(diào)用JNA本地接口,以獲取步驟(5)JVM中的任務(wù)所對(duì)應(yīng)的數(shù)據(jù)在堆外內(nèi)存中的起始地址、以及步驟(5)中得到的物理位置連續(xù)的數(shù)據(jù)的偏移量,并根據(jù)該起始地址和偏移量創(chuàng)建GPU本地任務(wù);
(7)從節(jié)點(diǎn)將步驟(6)創(chuàng)建的GPU本地任務(wù)對(duì)應(yīng)的數(shù)據(jù)進(jìn)行分塊處理,并為每個(gè)數(shù)據(jù)分塊創(chuàng)建對(duì)應(yīng)的GPU本地子任務(wù);
(8)從節(jié)點(diǎn)判斷步驟(7)創(chuàng)建的每個(gè)GPU本地子任務(wù)是數(shù)據(jù)緩存子任務(wù),還是流處理子任務(wù),如果是數(shù)據(jù)緩存子任務(wù),則進(jìn)入步驟(9),如果是流處理子任務(wù),則進(jìn)入步驟(10);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于湖南大學(xué),未經(jīng)湖南大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911296432.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種墻體砌筑施工工藝
- 下一篇:一種道路基面防水涂料噴涂裝置
- 環(huán)境服務(wù)系統(tǒng)以及環(huán)境服務(wù)事業(yè)
- 環(huán)境控制裝置、環(huán)境控制方法、環(huán)境控制程序及環(huán)境控制系統(tǒng)
- 環(huán)境檢測(cè)終端和環(huán)境檢測(cè)系統(tǒng)
- 環(huán)境調(diào)整系統(tǒng)、環(huán)境調(diào)整方法及環(huán)境調(diào)整程序
- 環(huán)境估計(jì)裝置和環(huán)境估計(jì)方法
- 用于環(huán)境艙的環(huán)境控制系統(tǒng)及環(huán)境艙
- 車輛環(huán)境的環(huán)境數(shù)據(jù)處理
- 環(huán)境取樣動(dòng)力頭、環(huán)境取樣方法
- 環(huán)境艙環(huán)境控制系統(tǒng)
- 環(huán)境檢測(cè)儀(環(huán)境貓)
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置





