何結(jié)點(diǎn)和幾何邊心。
[0080]通過上述本發(fā)明的實(shí)施例,結(jié)構(gòu)網(wǎng)格被按網(wǎng)格層嵌套組織為網(wǎng)格片層次結(jié)構(gòu),并嵌套剖分為網(wǎng)格區(qū)、網(wǎng)格域、網(wǎng)格片和網(wǎng)格單元,分別匹配于高性能計(jì)算機(jī)的計(jì)算結(jié)點(diǎn)、結(jié)點(diǎn)內(nèi)CPU、CPU計(jì)算核心和計(jì)算核心內(nèi)指令集并行和長(zhǎng)向量加速并行。相應(yīng)地,結(jié)構(gòu)網(wǎng)格上的物理量以網(wǎng)格片為單位分布存儲(chǔ)到結(jié)點(diǎn)、分布共享存儲(chǔ)到CPU或共享存儲(chǔ)到CPU核的內(nèi)存空間,可以大幅提升結(jié)構(gòu)網(wǎng)格和物理量的存儲(chǔ)與訪問的數(shù)據(jù)局部性,支持應(yīng)用軟件面向高性能計(jì)算機(jī)復(fù)雜體系結(jié)構(gòu)展開浮點(diǎn)性能優(yōu)化,大幅提升計(jì)算效率。
[0081]作為本發(fā)明的其它實(shí)施例,不限定網(wǎng)格層、網(wǎng)格區(qū)、網(wǎng)格域和網(wǎng)格片的具體剖分算法和映射算法,可采用矩形剖分、遞歸對(duì)分、圖剖分等多種方法將網(wǎng)格層剖分為網(wǎng)格區(qū)、將網(wǎng)格區(qū)剖分為網(wǎng)格域、將網(wǎng)格域剖分為網(wǎng)格片;采用直接編號(hào)、空間填充曲線等方法為網(wǎng)格區(qū)、網(wǎng)格域和網(wǎng)格片編號(hào);采用直接映射、硬件拓?fù)涓兄膱D映射等方法將網(wǎng)格區(qū)映射到計(jì)算結(jié)點(diǎn)、將網(wǎng)格域映射到CPU、將網(wǎng)格片映射到CPU核。
[0082]同時(shí),本發(fā)明實(shí)施例也不限定物理量數(shù)據(jù)片的多維數(shù)組儲(chǔ)存方式,可采用行主序、列主序等方式儲(chǔ)存該多維數(shù)組。
[0083]另外,本發(fā)明實(shí)施例也不限定物理量數(shù)據(jù)片不能包含除物理量離散值以外的其他相關(guān)數(shù)據(jù),可根據(jù)需要在數(shù)據(jù)片上儲(chǔ)存其他相關(guān)數(shù)據(jù)。
[0084]在一些實(shí)施例中,使用結(jié)構(gòu)網(wǎng)格上的二維歐拉流體力學(xué)計(jì)算作為上述分析的例證。程序使用移動(dòng)網(wǎng)格方法求解二維結(jié)構(gòu)網(wǎng)格上的歐拉方程,計(jì)算區(qū)域?yàn)樽笙陆撬饕秊?0,O),右上角索引范圍為(4095,1023),運(yùn)行10個(gè)時(shí)間步。程序使用單個(gè)CPU核心進(jìn)行串行計(jì)算,計(jì)算區(qū)域包含一個(gè)網(wǎng)格層,被嵌套剖分為一個(gè)網(wǎng)格區(qū)、一個(gè)網(wǎng)格域和若干網(wǎng)格片,映射到一個(gè)計(jì)算結(jié)點(diǎn)的一塊CPU的一個(gè)計(jì)算核心。采用傳統(tǒng)的多維數(shù)組數(shù)據(jù)管理方法,計(jì)算結(jié)點(diǎn)上的物理量為一個(gè)多維數(shù)組,其計(jì)算時(shí)間為34.89秒,而采用本發(fā)明提出數(shù)據(jù)管理方法,依據(jù)Cache大小將計(jì)算結(jié)點(diǎn)上網(wǎng)格剖分為若干大小為(128,128)的網(wǎng)格片并以此為物理量分配并管理數(shù)據(jù)片,程序計(jì)算時(shí)間為14.68秒,由此可見本發(fā)明顯著提升計(jì)算效率達(dá) 138%。
[0085]通過本發(fā)明上述的方法,面向基于結(jié)構(gòu)網(wǎng)格的高性能數(shù)值模擬,通過六層嵌套不同粒度并行度的挖掘和支持,大幅提升結(jié)構(gòu)網(wǎng)格和物理量的存儲(chǔ)與訪存的數(shù)據(jù)局部性,支持應(yīng)用軟件面向高性能計(jì)算機(jī)復(fù)雜體系結(jié)構(gòu)展開浮點(diǎn)性能優(yōu)化,大幅提升計(jì)算效率。
[0086]以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于包括, 根據(jù)數(shù)值模擬對(duì)象確定結(jié)構(gòu)網(wǎng)格和所述結(jié)構(gòu)網(wǎng)格上的物理量,并將結(jié)構(gòu)網(wǎng)格建模為由多個(gè)網(wǎng)格層構(gòu)成的網(wǎng)格片層次結(jié)構(gòu); 將所述網(wǎng)格層剖分為互不重疊的若干個(gè)子網(wǎng)格,稱這些子網(wǎng)格為網(wǎng)格區(qū),為每個(gè)所述網(wǎng)格區(qū)賦予惟一的邏輯編號(hào),將每個(gè)所述網(wǎng)格區(qū)映射到惟一的高性能計(jì)算機(jī)結(jié)點(diǎn),將所述網(wǎng)格區(qū)分布存儲(chǔ)在高性能計(jì)算機(jī)結(jié)點(diǎn)的內(nèi)存空間;每個(gè)網(wǎng)格層剖分所得網(wǎng)格區(qū)數(shù)等于高性能計(jì)算機(jī)結(jié)點(diǎn)數(shù); 將所述網(wǎng)格區(qū)剖分為互不重疊的若干個(gè)子網(wǎng)格,稱這些子網(wǎng)格為網(wǎng)格域,為每個(gè)網(wǎng)格域在網(wǎng)格層中分配惟一的邏輯編號(hào),將其映射到高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)惟一的CPU,所述網(wǎng)格域被分布共享存儲(chǔ)在高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)不同CPU的內(nèi)存空間;每個(gè)網(wǎng)格區(qū)剖分所得網(wǎng)格域數(shù)等于高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)CPU數(shù); 將所述網(wǎng)格域剖分為互不重疊的若干個(gè)子網(wǎng)格,稱這些子網(wǎng)格為網(wǎng)格片,為每個(gè)網(wǎng)格片在網(wǎng)格層中分配惟一的邏輯編號(hào),將其映射到高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)CPU的惟一 CPU核,依據(jù)所述網(wǎng)格片對(duì)CPU核的映射,網(wǎng)格片被共享存儲(chǔ)在高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)CPU的內(nèi)存空間;每個(gè)網(wǎng)格域剖分所得網(wǎng)格片數(shù)不少于高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)每CPU核數(shù); 在每個(gè)網(wǎng)格片上,為每個(gè)物理量在該網(wǎng)格片上分配唯一的內(nèi)存空間,稱該內(nèi)存空間為數(shù)據(jù)片,用于儲(chǔ)存該物理量定義在該網(wǎng)格片所有網(wǎng)格單元上的離散值。
2.根據(jù)權(quán)利要求1所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述網(wǎng)格片中包括至少一個(gè)數(shù)據(jù)片,所述數(shù)據(jù)片包括網(wǎng)格單元的坐標(biāo),以及物理量定義在該網(wǎng)格片所有網(wǎng)格單元上的離散值;還包括所述離散值在所述網(wǎng)格單元中的幾何位置。
3.根據(jù)權(quán)利要求2所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述離散值根據(jù)所述幾何位置不同,分為多種類型,包括,中心量、結(jié)點(diǎn)量、邊心量、面心量、散亂量、外表面中心量、外表面結(jié)點(diǎn)量、外表面面心量。
4.根據(jù)權(quán)利要求3所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,不同物理量對(duì)應(yīng)不同的數(shù)據(jù)片。
5.根據(jù)權(quán)利要求2所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述數(shù)據(jù)片還沿網(wǎng)格片的四周設(shè)置影像區(qū),用于存儲(chǔ)同一物理量從相鄰網(wǎng)格片對(duì)應(yīng)幾何位置復(fù)制的物理量的離散值。
6.根據(jù)權(quán)利要求1所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述網(wǎng)格片包括網(wǎng)格單元的總數(shù)上限為,設(shè)置CPU的緩存(Cache)容量為網(wǎng)格片中數(shù)值計(jì)算依賴的所有數(shù)據(jù)片的內(nèi)存容量的上限,選取網(wǎng)格片單元總數(shù)上限值,使之滿足所在CPU分配到的所有網(wǎng)格片上的所有物理量的數(shù)據(jù)容量總和不超過該上限,選取所得結(jié)果的最大值作為所述網(wǎng)格片包含網(wǎng)格單元的總數(shù)上限。
7.根據(jù)權(quán)利要求1所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述網(wǎng)格片包括網(wǎng)格單元的總數(shù)上限為,選擇不同的網(wǎng)格單元總數(shù)上限值,進(jìn)行數(shù)值模擬計(jì)算,選取性能最優(yōu)的網(wǎng)格單元總數(shù)作為所述網(wǎng)格片包括網(wǎng)格單元的總數(shù)上限。
8.根據(jù)權(quán)利要求1所述的匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法,其特征在于,所述結(jié)構(gòu)網(wǎng)格上的物理量隨著網(wǎng)格片被分布儲(chǔ)存于高性能計(jì)算機(jī)結(jié)點(diǎn)間、分布共享儲(chǔ)存于高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)CPU間、共享存儲(chǔ)于高性能計(jì)算機(jī)結(jié)點(diǎn)內(nèi)CPU內(nèi)多處理器核間。
【專利摘要】本發(fā)明涉及并行計(jì)算技術(shù)領(lǐng)域,特別是關(guān)于匹配于高性能計(jì)算機(jī)體系結(jié)構(gòu)的結(jié)構(gòu)網(wǎng)格數(shù)據(jù)管理方法包括,根據(jù)數(shù)值模擬對(duì)象確定計(jì)算區(qū)域的結(jié)構(gòu)網(wǎng)格和所述結(jié)構(gòu)網(wǎng)格上的物理量;將結(jié)構(gòu)網(wǎng)格嵌套剖分為網(wǎng)格區(qū)、網(wǎng)格域、網(wǎng)格片,分別編號(hào),并映射于高性能計(jì)算機(jī)的計(jì)算結(jié)點(diǎn)、結(jié)點(diǎn)內(nèi)CPU、CPU計(jì)算核心;在每個(gè)網(wǎng)格片上,為每個(gè)物理量在該網(wǎng)格片上分配唯一的內(nèi)存空間,用于儲(chǔ)存該物理量定義在該網(wǎng)格片所有網(wǎng)格單元上的離散值。通過本發(fā)明實(shí)施例的上述方法可以大幅提升結(jié)構(gòu)網(wǎng)格和物理量的存儲(chǔ)與訪問的數(shù)據(jù)局部性,支持應(yīng)用軟件面向高性能計(jì)算機(jī)復(fù)雜體系結(jié)構(gòu)展開浮點(diǎn)性能優(yōu)化,大幅提升計(jì)算效率。
【IPC分類】G06F9-50
【公開號(hào)】CN104572295
【申請(qǐng)?zhí)枴緾N201410769018
【發(fā)明人】莫?jiǎng)t堯, 張愛清, 曹小林, 徐小文, 郭紅, 楊章
【申請(qǐng)人】北京應(yīng)用物理與計(jì)算數(shù)學(xué)研究所
【公開日】2015年4月29日
【申請(qǐng)日】2014年12月12日