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