一種數(shù)據(jù)處理的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別涉及一種數(shù)據(jù)處理的方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)應(yīng)用越來越廣泛,用戶對(duì)于其處理數(shù)據(jù)的速度要求越來越高,那么,多進(jìn)程并行化的處理數(shù)據(jù)的方式也就應(yīng)運(yùn)而生。
[0003]多進(jìn)程并行化處理數(shù)據(jù)的方式主要是在二維化的系統(tǒng)中運(yùn)行,如在以C語言為基礎(chǔ)的系統(tǒng)可以通過多個(gè)處理器CPU同時(shí)運(yùn)行多個(gè)進(jìn)程來處理海量的數(shù)據(jù),例如:計(jì)算機(jī)將文件A中的數(shù)據(jù)封裝成了資源a、資源b和資源C,當(dāng)這封裝后的資源a、資源b和資源c間不涉及依賴關(guān)系時(shí),計(jì)算機(jī)可同時(shí)調(diào)用進(jìn)程1、進(jìn)程2和進(jìn)程3同時(shí)分別處理資源a、資源b和資源C,即進(jìn)程I處理資源a、進(jìn)程2處理資源b和進(jìn)程3處理資源C,而在數(shù)據(jù)處理過程中,進(jìn)程I將對(duì)資源a進(jìn)行加鎖保護(hù)、進(jìn)程2對(duì)資源b進(jìn)行加鎖保護(hù)以及進(jìn)程3對(duì)資源c進(jìn)行加鎖保護(hù),那么,當(dāng)有新的進(jìn)程4想要請(qǐng)求或處理文件A中的資源a時(shí),需要等待進(jìn)程I對(duì)資源a解除鎖保護(hù)后才可以請(qǐng)求或處理資源a。
[0004]也就是說,當(dāng)兩個(gè)進(jìn)程間因?yàn)檎?qǐng)求或處理同一個(gè)資源發(fā)生沖突,而不得不使其中一個(gè)進(jìn)程暫停運(yùn)行并進(jìn)行等待,產(chǎn)生進(jìn)程互斥的行為,而且隨著進(jìn)程數(shù)量的增加,這種進(jìn)程互斥將更加的明顯,一定程度上,阻礙了計(jì)算機(jī)進(jìn)程的并行計(jì)算。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種數(shù)據(jù)處理的方法和裝置,以促進(jìn)計(jì)算機(jī)進(jìn)程的并行計(jì)算。
[0006]一種數(shù)據(jù)處理的方法,建立數(shù)據(jù)空間,將數(shù)據(jù)的指針和地址信息存儲(chǔ)在所述數(shù)據(jù)空間;為所述數(shù)據(jù)空間劃分三維以上的空間維度,使計(jì)算機(jī)的進(jìn)程運(yùn)行在所述三維以上的空間維度上,不同空間維度間的進(jìn)程沒有依賴性;還包括:
[0007]通過存儲(chǔ)于所述數(shù)據(jù)空間中的指針和地址信息,將待處理數(shù)據(jù)載入所述數(shù)據(jù)空間;
[0008]將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程;
[0009]控制不同空間維度的進(jìn)程并行處理被分配的所述待處理數(shù)據(jù)。
[0010]優(yōu)選地,所述空間維度包括五維的空間維度,其中,三個(gè)維度用于標(biāo)記所述待處理數(shù)據(jù)在空間中的地址,另兩個(gè)維度包括:權(quán)限維度和時(shí)間維度;
[0011]所述將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程,包括:通過所述待處理數(shù)據(jù)在空間中的地址,將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程;
[0012]所述控制不同空間維度的進(jìn)程并行處理被分配的待處理數(shù)據(jù),包括:所述權(quán)限維度與所述時(shí)間維度間的進(jìn)程以所述待處理數(shù)據(jù)為基礎(chǔ),進(jìn)行非重疊的互斥訪問。
[0013]優(yōu)選地,所述控制不同空間維度的進(jìn)程并行處理被分配的待處理數(shù)據(jù),包括:所述權(quán)限維度與所述時(shí)間維度間的進(jìn)程以所述待處理數(shù)據(jù)為基礎(chǔ),進(jìn)行高優(yōu)先級(jí)進(jìn)程已處理的所述待處理數(shù)據(jù)覆蓋低優(yōu)先級(jí)進(jìn)程已處理的所述待處理數(shù)據(jù)的進(jìn)程交錯(cuò)訪問。
[0014]優(yōu)選地,所述控制不同空間維度的進(jìn)程并行處理被分配的待處理數(shù)據(jù),包括:所述權(quán)限維度與所述時(shí)間維度間的進(jìn)程以所述待處理數(shù)據(jù)為基礎(chǔ),進(jìn)行時(shí)間點(diǎn)靠后的進(jìn)程已處理的所述待處理數(shù)據(jù)覆蓋時(shí)間點(diǎn)靠前的進(jìn)程已處理的所述待處理數(shù)據(jù)的進(jìn)程交錯(cuò)訪問。
[0015]優(yōu)選地,該方法進(jìn)一步包括:為所述三維以上的空間維度中的每一維分別生成對(duì)應(yīng)的所述待處理數(shù)據(jù)的副本;
[0016]所述將待處理數(shù)據(jù)載入所述數(shù)據(jù)空間,包括:將生成的所有副本載入所述數(shù)據(jù)空間;
[0017]所述將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程,包括:將所述所有副本分配給對(duì)應(yīng)的空間維度的進(jìn)程;
[0018]所述控制不同空間維度的進(jìn)程并行處理被分配的所述待處理數(shù)據(jù),包括:控制不同空間維度的進(jìn)程并行處理該進(jìn)程所在空間維度對(duì)應(yīng)的副本。
[0019]優(yōu)選地,該方法進(jìn)一步包括:確定所述數(shù)據(jù)空間的環(huán)境參數(shù),所述環(huán)境參數(shù)包括數(shù)據(jù)空間的大小、初始坐標(biāo)的位置、空間規(guī)則、時(shí)間刻度以及空間曲率中的任意一個(gè)或多個(gè);
[0020]所述將待處理數(shù)據(jù)載入所述數(shù)據(jù)空間,包括:根據(jù)所述確定的數(shù)據(jù)空間的大小、初始坐標(biāo)的位置、空間規(guī)則、時(shí)間刻度以及空間曲率中的任意一個(gè)或多個(gè),將所述待處理數(shù)據(jù)抽象為所述數(shù)據(jù)空間中的立體化的幾何結(jié)構(gòu);
[0021]在所述將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程之前,進(jìn)一步包括:
[0022]根據(jù)所述幾何結(jié)構(gòu)的結(jié)構(gòu)特性,對(duì)所述立體化的幾何結(jié)構(gòu)進(jìn)行分割,形成至少兩個(gè)新的幾何結(jié)構(gòu);
[0023]根據(jù)所述至少兩個(gè)新的幾何結(jié)構(gòu)的幾何特性,設(shè)定每一個(gè)新的幾何結(jié)構(gòu)對(duì)應(yīng)的數(shù)據(jù)處理方法,并為所述數(shù)據(jù)處理方法分配進(jìn)程;
[0024]判斷為所述數(shù)據(jù)處理方法分配進(jìn)程是否處于同一空間維度,如果是,則將所述至少兩個(gè)新的幾何結(jié)構(gòu)中的待處理數(shù)據(jù)分配給處于同一空間維度的不同進(jìn)程;否則,執(zhí)行所述將待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程。
[0025]優(yōu)選地,在所述對(duì)所述立體化的幾何結(jié)構(gòu)進(jìn)行分割,形成至少兩個(gè)新的幾何結(jié)構(gòu)之后,在所述為所述數(shù)據(jù)處理方法分配進(jìn)程之前,進(jìn)一步包括:
[0026]獲取新的幾何結(jié)構(gòu)的個(gè)數(shù);
[0027]判斷所述新的幾何結(jié)構(gòu)的個(gè)數(shù)是否大于等于I且小于處理器個(gè)數(shù)的兩倍,如果是,則繼續(xù)執(zhí)行所述為所述數(shù)據(jù)處理方法分配進(jìn)程。
[0028]優(yōu)選地,該方法進(jìn)一步包括:根據(jù)所述計(jì)算機(jī)的進(jìn)程運(yùn)行的環(huán)境,定義所述計(jì)算機(jī)的進(jìn)程所在的空間維度高低;
[0029]設(shè)定處于高空間維度的進(jìn)程可以訪問處于低空間維度的進(jìn)程對(duì)應(yīng)的數(shù)據(jù),而處于低空間維度進(jìn)程不能夠訪問處于高空間維度進(jìn)程對(duì)應(yīng)的數(shù)據(jù);
[0030]所述將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程,包括:將所述待處理數(shù)據(jù)分配給處于不同高低維度的進(jìn)程;
[0031]在所述控制不同空間維度的進(jìn)程并行處理被分配的待處理數(shù)據(jù)之后,進(jìn)一步包括:處于高空間維度的進(jìn)程訪問處于低空間維度的進(jìn)程對(duì)應(yīng)的數(shù)據(jù)。
[0032]一種數(shù)據(jù)處理裝置,包括:
[0033]數(shù)據(jù)空間處理單元,用于建立數(shù)據(jù)空間,將數(shù)據(jù)的指針和地址信息存儲(chǔ)在所述數(shù)據(jù)空間;為所述數(shù)據(jù)空間劃分三個(gè)以上的空間維度,使計(jì)算機(jī)的進(jìn)程運(yùn)行在所述三個(gè)以上的空間維度上,不同空間維度間的進(jìn)程沒有依賴性;
[0034]讀取單元,用于通過存儲(chǔ)于所述數(shù)據(jù)空間中的指針和地址信息,將待處理數(shù)據(jù)載入所述數(shù)據(jù)空間;
[0035]第一分配單元,用于將所述待處理數(shù)據(jù)分配給處于不同空間維度的進(jìn)程;
[0036]數(shù)據(jù)處理單元,用于控制不同空間維度的進(jìn)程并行處理被分配的待處理數(shù)據(jù)。
[0037]優(yōu)選地,所述數(shù)據(jù)空間處理單元為所述數(shù)據(jù)空間劃分出的空間維度包括五維的空間維度,其中,三個(gè)維度用于標(biāo)記所述待處理數(shù)據(jù)在空間中的地址,另兩個(gè)維度包括:權(quán)限維度和時(shí)間維度;
[0038]所述數(shù)據(jù)處理單元,進(jìn)一步用于以所述待處理數(shù)據(jù)為基礎(chǔ),所述權(quán)限維度與所述時(shí)間維度間的進(jìn)程進(jìn)行非重疊的互斥訪問。
[0039]優(yōu)選地,所述數(shù)據(jù)處理單元,進(jìn)一步用于以所述待處理數(shù)據(jù)為基礎(chǔ),所述權(quán)限維度與所述時(shí)間維度間進(jìn)行高優(yōu)先級(jí)進(jìn)程已處理的數(shù)據(jù)覆蓋低優(yōu)先級(jí)進(jìn)程已處理的數(shù)據(jù)的進(jìn)程交錯(cuò)訪問;
[0040]優(yōu)選地,所述數(shù)據(jù)處理單元,進(jìn)一步用于以所述待處理數(shù)據(jù)為基礎(chǔ),所述權(quán)限維度與所述時(shí)間維度間進(jìn)行時(shí)間點(diǎn)靠后的進(jìn)程處理的數(shù)據(jù)覆蓋時(shí)間點(diǎn)靠前的進(jìn)程處理的數(shù)據(jù)的進(jìn)程交錯(cuò)訪問。
[0041]優(yōu)選地,上述裝置進(jìn)一步包括:生成單元,其中,
[0042]所述生成單元,用于為所述三維以上的空間維度中的每一維分別生成對(duì)應(yīng)的所述待處理數(shù)據(jù)的副本;
[0043]所述讀取單元,用于通過存儲(chǔ)于所述數(shù)據(jù)空間中的指針和地址信息,將生成的所有副本載入所述數(shù)據(jù)空間;
[0044]所述第一分配單元,用于將所述所有副本分配給對(duì)應(yīng)的空間維度的進(jìn)程;
[0045]所述數(shù)據(jù)處理單元,用于控制不同空間維度的進(jìn)程并行處理該進(jìn)程所在空間維度對(duì)應(yīng)的副本。
[0046]優(yōu)選地,上述裝置進(jìn)一步包括:確定單元、分割單元、設(shè)定單元、第一