本發(fā)明屬于計(jì)算電磁學(xué)領(lǐng)域,具體涉及一種用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法。
背景技術(shù):
1、計(jì)算電磁學(xué)中的矩量法(method?of?moments,mom)作為一種具有較高計(jì)算精度的傳統(tǒng)數(shù)值方法,已經(jīng)被廣泛用于分析復(fù)雜電磁輻射和散射問(wèn)題。雖然矩量法具有較高的理論精度,但求解過(guò)程中會(huì)生成一個(gè)維度為n的復(fù)數(shù)稠密矩陣,對(duì)于使用直接求解的矩量法而言,存儲(chǔ)復(fù)雜度和計(jì)算復(fù)雜度將會(huì)隨著矩陣維度的增加出現(xiàn)指數(shù)級(jí)的增長(zhǎng),這使得計(jì)算機(jī)資源被快速消耗進(jìn)而導(dǎo)致問(wèn)題無(wú)法求解,嚴(yán)重限制了矩量法的求解規(guī)模。幸運(yùn)的是,隨著高性能并行計(jì)算技術(shù)和超級(jí)計(jì)算機(jī)的發(fā)展,分布式并行計(jì)算讓矩量法不再局限于單一計(jì)算機(jī)的計(jì)算資源,通過(guò)調(diào)用多個(gè)計(jì)算核心大大緩解了矩量法對(duì)計(jì)算資源的需求,并將求解規(guī)模提升了數(shù)個(gè)量級(jí),這使得矩量法有能力去求解一些電大、多尺度復(fù)雜結(jié)構(gòu)的實(shí)際工程難題。然而,動(dòng)輒使用成千上萬(wàn)的處理器進(jìn)行常態(tài)化計(jì)算顯然是不現(xiàn)實(shí)的,因此仍然需要一種能夠使用較少計(jì)算資源就能滿足計(jì)算精度的高效電磁算法。
2、尋求精確且高效的數(shù)值建模方法一直是計(jì)算電磁學(xué)領(lǐng)域高度關(guān)注的重要課題,直到世紀(jì)之交,快速算法的出現(xiàn)大大降低了存儲(chǔ)復(fù)雜度和計(jì)算復(fù)雜度,使得精確處理大規(guī)模和復(fù)雜電磁問(wèn)題成為可能。其中,快速算法中最具代表性的當(dāng)屬多層快速多極子算法(multilevel?fast?multipole?algorithm,mlfma),該算法具有較高的計(jì)算精度和較快的計(jì)算速度等特點(diǎn),十分適合雷達(dá)散射截面(radar?cross?section,rcs)分析、目標(biāo)識(shí)別、隱身技術(shù)研究等領(lǐng)域。然而,使用迭代求解器的快速算法在求解電磁問(wèn)題時(shí)必然會(huì)面臨收斂性問(wèn)題,特別是在處理強(qiáng)諧振、細(xì)微與宏觀結(jié)構(gòu)并存的多尺度和強(qiáng)耦合等邊值問(wèn)題時(shí),由積分方程生成的矩陣的條件數(shù)通常較差,這導(dǎo)致迭代求解器收斂慢甚至是不收斂。因此,使用迭代求解器計(jì)算之前往往需要選擇合適的預(yù)條件(preconditioner)技術(shù)進(jìn)行處理,而高效的預(yù)條件技術(shù)一直是國(guó)際上需要解決的難題之一。此外,迭代求解器對(duì)具有多個(gè)右端項(xiàng)問(wèn)題(right?hands?sides,rhs)的計(jì)算效率較低,如單站rcs計(jì)算,因?yàn)閷?duì)rhs中的每個(gè)右端項(xiàng),都需要重新迭代計(jì)算。
3、對(duì)于以上迭代求解器遇到的收斂性和單站rcs計(jì)算等問(wèn)題,高效的快速直接求解算法或許成為更好的選擇??焖僦苯忧蠼夥椒▽?duì)完整的矩陣進(jìn)行求逆,避免了收斂性問(wèn)題,同時(shí)對(duì)多個(gè)右端項(xiàng)問(wèn)題,只需要進(jìn)行回代即可獲得全部解,大大提升了單站rcs問(wèn)題的求解效率。
4、此外,近年來(lái)異構(gòu)超級(jí)計(jì)算機(jī)迅猛發(fā)展,為電磁算法的創(chuàng)新和發(fā)展提供了廣闊的空間,借助異構(gòu)計(jì)算,可以在保證計(jì)算精度的前提下,進(jìn)一步擴(kuò)大電磁數(shù)值算法的求解規(guī)模。但異構(gòu)計(jì)算的優(yōu)勢(shì)并不能直接轉(zhuǎn)化為電磁仿真能力,為了充分利用異構(gòu)計(jì)算機(jī)的計(jì)算資源,必須研制出相應(yīng)的異構(gòu)并行快速直接求解方法,以實(shí)現(xiàn)各種目標(biāo)的散射、輻射計(jì)算。
技術(shù)實(shí)現(xiàn)思路
1、為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,本發(fā)明提供了一種用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法。本發(fā)明要解決的技術(shù)問(wèn)題通過(guò)以下技術(shù)方案實(shí)現(xiàn):
2、一種用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,應(yīng)用于包含至少一個(gè)cpu和gpu的計(jì)算系統(tǒng),所述cpu作為cpu端含有多個(gè)mpi進(jìn)程;所述計(jì)算系統(tǒng)預(yù)先利用context技術(shù)將gpu虛擬化,使得一個(gè)mpi進(jìn)程對(duì)應(yīng)一個(gè)虛擬化后的gpu端;所述方法包括:
3、所述cpu端的所有mpi進(jìn)程讀取對(duì)目標(biāo)進(jìn)行三維幾何建模后的模型文件和模型參數(shù);其中,所述模型文件包括對(duì)目標(biāo)的三維幾何模型利用三角形面片進(jìn)行網(wǎng)格剖分后的坐標(biāo)數(shù)據(jù);所述模型參數(shù)包括目標(biāo)的材料參數(shù)、邊界條件和激勵(lì)源;其中,所述cpu端的mpi進(jìn)程數(shù)為偶數(shù);網(wǎng)格剖分后相連的一對(duì)三角形面片得到一個(gè)rwg基函數(shù);
4、所述cpu端將所有mpi進(jìn)程平均劃分為第一組進(jìn)程和第二組進(jìn)程,將得到的所有基函數(shù)分為m組,利用分組后基函數(shù)之間的檢驗(yàn)過(guò)程生成m×m個(gè)單元塊矩陣以合并構(gòu)成作為復(fù)數(shù)稠密矩陣的塊狀矩陣z;每個(gè)mpi進(jìn)程按照mpi進(jìn)程組相關(guān)的獲取規(guī)則,獲取自身所需單元塊矩陣所含有的基函數(shù)信息;其中,m為大于0的自然數(shù);
5、所述cpu端的所有mpi進(jìn)程基于自身獲取的基函數(shù)信息,采用cpu端和gpu端聯(lián)合的異構(gòu)并行分解方式,完成所述塊狀矩陣z的lu分解過(guò)程,得到所述塊狀矩陣z的分解結(jié)果;
6、所述cpu端根據(jù)得到的所述塊狀矩陣z的分解結(jié)果,通過(guò)矩陣方程組回代的方式,求解出電流系數(shù)矩陣;
7、所述cpu端根據(jù)所述電流系數(shù)矩陣對(duì)所述目標(biāo)的三維幾何模型進(jìn)行計(jì)算,得到所需的近場(chǎng)數(shù)據(jù)和遠(yuǎn)場(chǎng)數(shù)據(jù)。
8、本發(fā)明屬于計(jì)算電磁學(xué)領(lǐng)域,涉及復(fù)雜目標(biāo)的電磁散射、輻射問(wèn)題求解。本發(fā)明實(shí)施例所提供的方案中,提出一種新穎的基于aca的異構(gòu)并行快速直接求解算法,且利用gpu提供的context技術(shù),提出一種基于mpi的cpu/gpu異構(gòu)并行編程模型,盡可能地保證進(jìn)程間的通信、計(jì)算和存儲(chǔ)均衡;
9、本發(fā)明具有以下有益效果:
10、1,與現(xiàn)有的基于傳統(tǒng)lu分解的并行矩量法相比,本發(fā)明提供了一種異構(gòu)并行快速直接求解算法,降低了并行矩量法計(jì)算所需的計(jì)算復(fù)雜度和存儲(chǔ)復(fù)雜度。
11、2,與現(xiàn)有的基于迭代求解的并行快速方法相比,本發(fā)明提供的異構(gòu)并行快速直接求解算法,能降低mom的存儲(chǔ)復(fù)雜度和計(jì)算復(fù)雜度,避免了迭代求解器收斂慢甚至是不收斂的問(wèn)題。
12、3,本發(fā)明通過(guò)交替的方式完成矩陣的填充、分解與壓縮,不僅支持純金屬或者純介質(zhì)的散射問(wèn)題分析,還支持復(fù)雜目標(biāo)(結(jié)構(gòu)復(fù)雜、媒質(zhì)復(fù)雜)的電磁散射、輻射問(wèn)題的仿真分析,利用異構(gòu)并行快速直接求解方法可以在使用較少計(jì)算資源的前提下加速電磁散射、輻射問(wèn)題的求解過(guò)程。
1.一種用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,應(yīng)用于包含至少一個(gè)cpu和gpu的計(jì)算系統(tǒng),所述cpu作為cpu端含有多個(gè)mpi進(jìn)程;所述計(jì)算系統(tǒng)預(yù)先利用context技術(shù)將gpu虛擬化,使得一個(gè)mpi進(jìn)程對(duì)應(yīng)一個(gè)虛擬化后的gpu端;所述方法包括:
2.根據(jù)權(quán)利要求1所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,所述mpi進(jìn)程組相關(guān)的獲取規(guī)則,包括:
3.根據(jù)權(quán)利要求1所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,所述cpu端的所有mpi進(jìn)程基于自身獲取的基函數(shù)信息,采用cpu端和gpu端聯(lián)合的異構(gòu)并行分解方式,完成所述塊狀矩陣z的lu分解過(guò)程,得到所述塊狀矩陣z的分解結(jié)果,包括:
4.根據(jù)權(quán)利要求3所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,
5.根據(jù)權(quán)利要求4所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,除第一行外,每一行的單元塊矩陣的分解處理,包括:
6.根據(jù)權(quán)利要求4所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,除第一列外,每一列的單元塊矩陣的分解處理,包括:
7.根據(jù)權(quán)利要求5所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,針對(duì)非第一行的每一行,每個(gè)非對(duì)角線位置的單元塊矩陣所對(duì)應(yīng)的進(jìn)程,利用自身獲取的基函數(shù)信息填充出該行中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣,利用填充出的該行中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣和各自正上方的單元塊矩陣的壓縮結(jié)果,以及之前第二組進(jìn)程的第二類通信發(fā)送的壓縮結(jié)果,在gpu端對(duì)cpu端填充出的該行中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣進(jìn)行更新,包括:
8.根據(jù)權(quán)利要求6所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,針對(duì)非第一列的每一列,每個(gè)非對(duì)角線位置的單元塊矩陣所對(duì)應(yīng)的進(jìn)程,利用自身獲取的基函數(shù)信息填充出該列中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣,利用填充出的該列中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣和各自正左方的單元塊矩陣的壓縮結(jié)果,以及之前第一組進(jìn)程的第二類通信發(fā)送的壓縮結(jié)果,在gpu端對(duì)cpu端填充出的該行中自身對(duì)應(yīng)的所有非對(duì)角線位置的單元塊矩陣進(jìn)行更新,包括:
9.根據(jù)權(quán)利要求7或8所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,所述三步gpu異構(gòu)乘法中,前兩步采用cublas平臺(tái)自帶的cublaszgemm函數(shù)計(jì)算,第三步采用預(yù)先編寫的核函數(shù)進(jìn)行異構(gòu)計(jì)算。
10.根據(jù)權(quán)利要求1所述的用于加速求解復(fù)雜電磁問(wèn)題的異構(gòu)并行快速直接求解方法,其特征在于,所述cpu端根據(jù)得到的所述塊狀矩陣z的分解結(jié)果,通過(guò)矩陣方程組回代的方式,求解出電流系數(shù)矩陣,包括: