一種數(shù)據(jù)處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種數(shù)據(jù)處理的方法及裝置。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)和互聯(lián)網(wǎng)的發(fā)展,現(xiàn)代社會(huì)的信息量迅速增長(zhǎng),這些信息里積累著大量的數(shù)據(jù),這些數(shù)據(jù)中將會(huì)有部分?jǐn)?shù)據(jù)存儲(chǔ)在云平臺(tái)中或借助云平臺(tái)進(jìn)行處理,借助Hadoop可以高效地存儲(chǔ)、管理和分析這些存儲(chǔ)在云平臺(tái)中的數(shù)據(jù)。
[0003]Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件架構(gòu),其最底部是一個(gè)分布式文件系統(tǒng),通過(guò)采用分布式存儲(chǔ)方式來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ),提高了數(shù)據(jù)的讀寫速度,也擴(kuò)大了存儲(chǔ)容量。分布式文件系統(tǒng)的上一層是映射簡(jiǎn)化(MapReduce)引擎,通過(guò)MapReduce引擎對(duì)分布式文件系統(tǒng)中的數(shù)據(jù)進(jìn)行整合,可以保證分析和處理數(shù)據(jù)的高效性,正是由于Hadoop突出的優(yōu)勢(shì),其在許多領(lǐng)域中被廣泛應(yīng)用。但是在具有如圖形處理器(GraphicsProcessing Unit, GPU)等加速部件的集群環(huán)境中,由于現(xiàn)有的Hadoop的MapReduce引擎為用戶提供的〈key, value〉編程接口的局限性,使得Hadoop的MapReduce引擎無(wú)法觸發(fā)已有的加速部件進(jìn)行數(shù)據(jù)的處理,這樣也就無(wú)法利用加速部件強(qiáng)大的計(jì)算能力,使得處理數(shù)據(jù)的效率得不到提高。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供一種數(shù)據(jù)處理的方法及裝置,用以提高數(shù)據(jù)處理的效率。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理的方法,包括:獲取待處理任務(wù)以及與所述待處理任務(wù)對(duì)應(yīng)的至少一個(gè)待處理的數(shù)據(jù);為所述待處理任務(wù)分配圖形處理器GPU ;將所述待處理任務(wù)對(duì)應(yīng)的所述至少一個(gè)待處理數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)集合類型的數(shù)據(jù);將所述數(shù)據(jù)集合類型中的數(shù)據(jù)進(jìn)行解析,將解析后的數(shù)據(jù)生成至少一個(gè)數(shù)據(jù)塊;將所述生成的至少一個(gè)數(shù)據(jù)塊發(fā)送給所述被分配的GPU,以使得所述GPU根據(jù)所述待處理任務(wù)對(duì)所述至少一個(gè)數(shù)據(jù)塊進(jìn)行計(jì)算處理。
[0007]在第一方面的第一種可能的實(shí)現(xiàn)方式中,在為所述待處理任務(wù)分配圖形處理器GPU之前還包括:獲取預(yù)先配置的資源信息表;所述資源信息表用于記錄GPU的數(shù)量以及所述GPU的使用情況信息。
[0008]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式中,在第一方面的第二種可能的實(shí)現(xiàn)方式中,在所述獲取資源信息表之后,還包括:確定所述待處理任務(wù)需要的GPU的使用數(shù)量;所述為待處理任務(wù)分配圖形處理器GPU包括:根據(jù)所述資源信息表中GPU的數(shù)量及所述GPU的使用情況信息,確定未使用的GPU的數(shù)量滿足所述待處理任務(wù)需要的GPU的使用數(shù)量時(shí),為所述待處理任務(wù)分配GPU。
[0009]結(jié)合第一方面第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述資源信息表還用于記錄中央處理器CPU的數(shù)量以及所述CPU的使用情況信息;在所述確定所述待處理任務(wù)需要的GPU的使用數(shù)量之后,還包括:確定所述資源信息表中未使用的GPU的數(shù)量不滿足待處理任務(wù)需要的GPU的使用數(shù)量時(shí),為所述待處理任務(wù)分配CPU。
[0010]結(jié)合第一方面,或第一方面的第一至第三任一種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述將所述待處理任務(wù)對(duì)應(yīng)的所述至少一個(gè)待處理數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)集合類型的數(shù)據(jù)包括:確定所述數(shù)據(jù)集合類型的數(shù)據(jù)大??;根據(jù)所述數(shù)據(jù)集合類型的數(shù)據(jù)大小,將所述至少一個(gè)待處理數(shù)據(jù)分配至至少一個(gè)數(shù)據(jù)集合中;所述數(shù)據(jù)集合中包含的待處理數(shù)據(jù)的大小不大于所述數(shù)據(jù)集合類型的數(shù)據(jù)大小。
[0011]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述數(shù)據(jù)集合類型的數(shù)據(jù)大小,將所述至少一個(gè)待處理數(shù)據(jù)分配至至少一個(gè)數(shù)據(jù)集合中包括:在所述待處理任務(wù)對(duì)應(yīng)的所述至少一個(gè)待處理數(shù)據(jù)的數(shù)據(jù)類型為變長(zhǎng)數(shù)據(jù)類型時(shí),根據(jù)所述數(shù)據(jù)集合類型的數(shù)據(jù)大小,將所述至少一個(gè)待處理數(shù)據(jù)分配至至少一個(gè)數(shù)據(jù)集合中,且記錄所述至少一個(gè)待處理數(shù)據(jù)在所述至少一個(gè)數(shù)據(jù)集合中的位置信息,以使得所述GPU根據(jù)所述位置信息,獲取所述待處理數(shù)據(jù);所述位置信息用于記錄變長(zhǎng)類型的待處理數(shù)據(jù)在數(shù)據(jù)集合中的位置相關(guān)信息。
[0012]結(jié)合第一方面,或第一方面的第一至第五任一種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述將所述數(shù)據(jù)集合類型中的數(shù)據(jù)進(jìn)行解析,將解析后的數(shù)據(jù)生成至少一個(gè)數(shù)據(jù)塊包括:利用預(yù)設(shè)的解析函數(shù),將所述數(shù)據(jù)集合類型中的數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述GPU進(jìn)行計(jì)算處理時(shí)所需的數(shù)據(jù)格式;將轉(zhuǎn)換數(shù)據(jù)格式后的數(shù)據(jù)生成至少一個(gè)數(shù)據(jù)塊。
[0013]結(jié)合第一方面,或第一方面的第一至第六任一種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述將所述生成的至少一個(gè)數(shù)據(jù)塊發(fā)送給所述被分配的GPU包括:將所述生成的至少一個(gè)數(shù)據(jù)塊存儲(chǔ)至所述被分配的GPU的緩存區(qū)中。
[0014]結(jié)合第一方面,或第一方面的第一至第七六任一種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,在所述將所述生成的至少一個(gè)數(shù)據(jù)塊發(fā)送給所述被分配的GPU之后,還包括:接收所述被分配的GPU發(fā)送的計(jì)算處理結(jié)果,并對(duì)所述計(jì)算處理結(jié)果進(jìn)行分區(qū)、排序及合并處理。
[0015]第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理的裝置,包括:獲取單元,用于獲取待處理任務(wù)以及和所述待處理任務(wù)對(duì)應(yīng)的至少一個(gè)待處理的數(shù)據(jù);分配單元,用于為待處理任務(wù)分配圖形處理器GPU;轉(zhuǎn)換單元,用于將所述待處理任務(wù)對(duì)應(yīng)的所述至少一個(gè)待處理數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)集合類型的數(shù)據(jù);解析單元,用于將所述轉(zhuǎn)換單元轉(zhuǎn)換的所述數(shù)據(jù)集合類型中的數(shù)據(jù)進(jìn)行解析,將解析后的數(shù)據(jù)生成至少一個(gè)數(shù)據(jù)塊;發(fā)送單元,用于將所述解析單元生成的所述至少一個(gè)數(shù)據(jù)塊發(fā)送給所述分配單元分配的GPU,以使得所述GPU根據(jù)所述待處理任務(wù)對(duì)所述至少一個(gè)數(shù)據(jù)塊進(jìn)行計(jì)算處理。
[0016]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取單元,還用于獲取預(yù)先配置的資源信息表;所述資源信息表用于記錄GPU的數(shù)量以及所述GPU的使用情況信息。
[0017]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:確定單元,用于確定所述待處理任務(wù)需要的GPU的使用數(shù)量;所述分配單元,具體用于根據(jù)所述獲取單元獲取的資源信息表中GPU的數(shù)量及所述GPU的使用情況信息,確定未使用的GPU的數(shù)量滿足所述確定單元確定的所述待處理任務(wù)需要的GPU的使用數(shù)量時(shí),為所述待處理任務(wù)分配GPU。
[0018]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述資源信息表還用于記錄中央處理器CPU的數(shù)量以及所述CPU的使用情況信息;所述分配單元,還用于確定未使用的GPU的數(shù)量不滿足所述確定單元確定的所述待處理任務(wù)需要的GPU的使用數(shù)量時(shí),為所述待處理任務(wù)分配CPU。
[0019]結(jié)合第二方面,或第二方面的第第一至第三任一種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述轉(zhuǎn)換單元,具體用于確定所述數(shù)據(jù)集合類型的數(shù)據(jù)的大小;根據(jù)所述數(shù)據(jù)集合類型的數(shù)據(jù)的大小,將所述至少一個(gè)待處理數(shù)據(jù)分配至至少一個(gè)數(shù)據(jù)集合中;所述數(shù)據(jù)集合中包含的待處理數(shù)據(jù)的大小不大于所述數(shù)據(jù)集合類型的數(shù)據(jù)的大小。
[0020]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述轉(zhuǎn)換單元,具體用于在所述待處理任務(wù)對(duì)應(yīng)的所述至少一個(gè)待處理數(shù)據(jù)的數(shù)據(jù)類型為變長(zhǎng)數(shù)據(jù)類型時(shí),根據(jù)所述數(shù)據(jù)集合類型的數(shù)據(jù)的大小,將所述至少一個(gè)待處理數(shù)據(jù)分配至至少一個(gè)數(shù)據(jù)集合中,且記錄所述至少一個(gè)待處理數(shù)據(jù)在所述至少一個(gè)數(shù)據(jù)集合中的位置信息,以使得所述GPU根據(jù)所述位置信息,獲取所述待處理數(shù)據(jù);所述位置信息用于記錄變長(zhǎng)類型的待處理數(shù)據(jù)在數(shù)據(jù)集合中的位置相關(guān)信息。
[0021]結(jié)合第二方面,或第二方面的第第一至第五任一種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述解析單元,具體用于利用預(yù)設(shè)的解析函數(shù),將所述數(shù)據(jù)集合類型中的數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述GPU進(jìn)行計(jì)算處理時(shí)所需的數(shù)據(jù)格式;將轉(zhuǎn)換數(shù)據(jù)格式后的數(shù)據(jù)生成至少一個(gè)數(shù)據(jù)塊。
[0022]結(jié)合第二方面,或第二方面的第第一至第六任一種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述發(fā)送單元,具體用于將所述生成的至少一個(gè)數(shù)據(jù)塊發(fā)送給所述被分配的GPU的緩存區(qū)中。
[0023]結(jié)合第二方面,或第二方面的第第一至第七任一種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述裝置還包括:接收單元,用于接收所述GPU發(fā)送的計(jì)算處理結(jié)果;處理單元,用于對(duì)所述計(jì)算處理結(jié)果進(jìn)行分區(qū)、排序及合并處理。
[0024]第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理的裝置,包括:處理器,存儲(chǔ)器,通信接口,和總線,其中,所述處理器、所述存儲(chǔ)器和所述通信接口通過(guò)所述總線通信;所述存儲(chǔ)器,用于存放程序;所述處理器,用于執(zhí)行所述存