網(wǎng)絡(luò )并行計算在多層快速多極子法中的應用
1 引言
近幾十年來(lái),計算機技術(shù)飛速發(fā)展,計算速度不斷提高,內存容量不斷增大;但同時(shí),在科學(xué)研究和工程應用中越來(lái)越需要對大型艦只、車(chē)輛、航空航天器等目標進(jìn)行電磁散射特性分析。這些目標電尺寸非常巨大,求解問(wèn)題所含未知量動(dòng)輒以百萬(wàn)、千萬(wàn)計,現有水平下單臺PC機很難應對如此龐大的計算量。鑒于此,越來(lái)越多的科研、工程人員希望在改進(jìn)算法的同時(shí)能夠擁有高效的并行計算環(huán)境。巨型并行計算機存儲容量大、運算速度快,但價(jià)格昂貴。網(wǎng)絡(luò )并行計算應運而生,它是近幾年國內外計算機科學(xué)研究與應用領(lǐng)域中最引人注目的前沿課題之一。網(wǎng)絡(luò )并行計算以網(wǎng)絡(luò )為基礎,這種并行計算環(huán)境的顯著(zhù)優(yōu)點(diǎn)是投資較少、靈活性強等。
作為數值方法,多層快速多極子法(MLFMA)具有數值誤差可控、計算精度高、通用性強和應用范圍寬的優(yōu)點(diǎn)。它們對軟硬件環(huán)境要求低,在一般的PC機即可開(kāi)展復雜目標電磁仿真。目標散射分析能力主要受限于計算機內存大小。
一般情況下,MLFMA單機處理的未知量數目最大為40萬(wàn)左右。因此,降低并行MLFMA單機的內存需求,計算更大未知量的問(wèn)題就成為我們的主要目的。MLFMA的內在并行性包括不變項求解中含有的內在并行性。我們很容易發(fā)現平移因子、聚合因子以及配置因子的計算都是獨立的,可在多臺計算機上異步進(jìn)行。另外,用MLFMA求解矩陣矢量乘法時(shí)也存在內在并行性。
1997年,美國伊利諾依大學(xué)W.C. Chew教授與Demaco公司聯(lián)合推出高效高精度電磁數值分析軟件FISC,在伊利諾依大學(xué)超級計算機應用中心的SGI Cray Origin 2000型計算機上求解了203萬(wàn)未知量的散射問(wèn)題,而且成功求解了VFY218模型飛機在8GHz平面波照射下的雙站RCS,未知量高達999萬(wàn)。FISC正是基于MLFMA技術(shù)的。其后,S.V. Velamparambil、J.M. Song和W.C. Chew還開(kāi)發(fā)了FISC的并行版本ScaleME,并行MLFMA得到了迅猛發(fā)展。在這種大趨勢下,本文研究了網(wǎng)絡(luò )并行計算技術(shù)在MLFMA中的應用,給出含240萬(wàn)未知量金屬球的雙站RCS曲線(xiàn),初步測試、驗證了并行求解大未知量問(wèn)題的可行性與準確性。
2 并行多層快速多極子技術(shù)
我們依據如下步驟進(jìn)行設計(可參見(jiàn)表1):
A. 讀入數據,并對其分層分組
各計算進(jìn)程同時(shí)讀入RWG網(wǎng)格剖分信息,并為目標結構上的RWG單元建立八叉樹(shù)結構。
建立八叉樹(shù)結構的過(guò)程是:首先,選擇能夠包含該結構的最小立方體,即第0層盒子;然后,將這個(gè)盒子均分成8個(gè)子立方體,即第1層盒子;再將第1層盒子均分8部分得到第2層盒子;如此反復,直到最小盒子的邊長(cháng)為0.25λ~0.45λ。在各層盒子中,不包含基函數的盒子將被拋棄。
B. 劃分任務(wù)
在保留原串行算法中八叉樹(shù)結構的基礎上,在適當層上將整棵樹(shù)劃分為多個(gè)子樹(shù),并以子樹(shù)為基本單位劃分任務(wù)給各個(gè)從機。
例如,我們將第1層的8個(gè)盒子分配給8個(gè)從機分別進(jìn)行處理,此時(shí)我們區分出各個(gè)從機所要各自處理的各層非空盒子,并單獨編號,完成其與全局各層非空盒子之間的相互索引。
C. 近場(chǎng)矩陣填充及遠場(chǎng)不變項處理
初始化各從機處理的近場(chǎng)矩陣,給出各從機近場(chǎng)矩陣的大小及非零元素位置的索引。
用MLFMA生成的近場(chǎng)矩陣一般都是稀疏化的,如果直接存儲會(huì )造成內存的浪費,所以要把稀疏化矩陣壓縮存儲。稀疏化矩陣壓縮存儲一般有兩種方法:行壓縮存儲和列壓縮存儲.,我們采用行壓縮存儲。
遠場(chǎng)不變項的處理主要涉及當前層的轉移因子,父子層之間的平移因子。由于它們占用內存相對較小,我們可以預先計算這些遠場(chǎng)不變項,需要時(shí)即可直接調用。
表1 并行MLFMA的主機及從機流程比較
主計算機 | 從計算機 |
開(kāi)始 | 開(kāi)始 |
各進(jìn)程同時(shí)讀入RWG信息,并為目標結構上的RWG單元建立八叉樹(shù)結構 | 各進(jìn)程同時(shí)讀入RWG信息,并為目標結構上的RWG單元建立八叉樹(shù)結構 |
在保留原串行算法中八叉樹(shù)結構的基礎上,在適當層上將整棵樹(shù)劃分為多個(gè)子樹(shù),并以子樹(shù)為基本單位劃分任務(wù)給各個(gè)進(jìn)程 | 區分出各個(gè)進(jìn)程所要各自處理的各層非空盒子,并單獨編號,完成及其與全局各層非空盒子之間的標號相互索引 |
管理協(xié)調各進(jìn)程之間的數據交換 | 生成各進(jìn)程的壓縮格式近場(chǎng)矩陣,以及遠場(chǎng)的平移項、轉移項、匯聚項等 |
進(jìn)入迭代求解,協(xié)調各進(jìn)程之間的數據交換 | 計算屬于各自進(jìn)程的矩陣矢量乘部分 |
接收從機結果,輸出 | 將結果發(fā)送給主機 |
結束 | 結束 |
D. 矩陣矢量乘的處理
首先,各從機計算本地存儲的近場(chǎng)矩陣與電流未知量的乘積,再發(fā)送至主機匯總進(jìn)行處理比較,然后進(jìn)行其他運算。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論