本站小編為你精心準備了微波源器件的FDTD建模參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1并行FDTD建模
假設以index<domain>表示domain區域內的多重索引結構數據,var<depth,domain>表示domain區域、深度為depth的實際變量數據。并行FDTD建模包括兩個模塊:(1)并行建立多重索引結構;(2)基于多重索引結構的影像區填充。以下分別作具體描述。
1.1并行建立多重索引結構與串行算法不同的是,在并行建立多重索引結構中,單個進程僅對其擁有的本地變量數據建立多重索引。圖1給出了并行建立多重索引結構的示意圖,其中索引深度n為1。后面的圖中均以索引深度為1作為示例。圖中下面部分是網格數據,它是一個索引,指向一個表格中的某一項。不同網格數據可能指向表中的同一項。不同處理器維護不同的表。當索引深度n大于1時,每個處理器將包含多個表,網格數據代表指向第1個表的索引,第1個表中的某一列又指向第2個表,另一列又指向第3個表,第2個表的某一列又指向第4個表,等等。網格數據和這些表就組成了復雜的索引結構。這里,索引深度是從網格數據開始計數并實現所有表的間接尋址中的最大深度。
1.2基于多重索引結構的影像區填充這里,index<*>中,boundary表示本進程擁有的網格區域邊界,ghost表示影像區,tmp表示用于存放臨時數據的臨時開辟的內存區域。算法第一步,是實現鄰居間通信,填充影像區數據。對于發送方,首先排查出邊界(包括物理邊界和人工邊界)不同索引值所對應的索引結構,并將它記錄于緩沖區diffbuf中,然后將diffbuf和對應的變量值一起發送給鄰居進程。作為接收方,它先接收信息,將其存儲于index<tmp>、diffbuf、var<depth,tmp>中,然后遍歷索引表,根據內容更新對應的索引結構和變量數據。圖2和圖3給出了算法兩個步驟的示意圖。在基于多重網格索引結構的影像區填充算法中,主要包含三個部分:預處理、通信和后處理。在預處理部分,發送方將記錄相異網格值對應的索引結構,并存儲相關數據到diffbuf數據結構中。通信部分將邊界對應的多重索引結構、diffbuf數據進行發送和接收。后處理中,接收方將更新邊界對應的多重索引結構。通信部分的執行時間可用如下經典公式來描述。其中L為兩個計算節點之間的延遲,o為兩個節點之間傳輸單位字節數據的開銷,d為實際傳輸數據的字節數。預處理和后處理的執行時間與內存訪問速度、以及相異網格值對應的多重索引結構相關,即與應用密切相關。
2性能測試
并行測試平臺如下:由186個四核IntelXeon64微處理器組成,它們之間由InfinibandDDR高速互聯連接,內存5.95TB,磁盤容量4.8TB.我們在該平臺上首先測試了五組數據,網格規模從100100100變化到500500500,處理器規模從8變化到1024。性能測試如圖4所示。顯然,隨著網格規模和處理器規模的增加,通信時間增加。同時,在兩種網格規模400400400和500500500情況下,比較了新算法與常規的影像區填充方法的性能。如圖5所示。常規方法就是鄰居之間交換相交邊界信息。可以發現,隨著處理器規模的增加,兩種方法的執行時間都隨之增長。同時,比較了新算法與常規的影像區填充方法的性能,如圖5所示。常規方法就是鄰居之間交換相交邊界信息,這里用阻塞式send和receive成組來交換邊界網格數據。可以發現,當網格規模從64M增加到125M時,相對于常規方法,基于多重索引的影像區填充方法的并行執行時間的增長幅度較為顯著,且隨著處理器個數的增長,差距更加增大。這是由于新算法在進行通信之前,需要進行預處理工作,即從邊界數據中查找到相異網格值,并將相應索引結構對應的間接數據找出并存儲到臨時空間。當網格規模增大時,查找范圍增大,同時相異網格值的個數也可能增加,使得執行時間增加。另外,網格規模為64M時,當處理器核數增長到一定規模(64),基于多重索引的影像區填充算法的并行執行時間小于常規方法,這有可能是由于分散到更多處理器核之后,測試數據中涉及到邊界的表中數據量較少,也就是diff_buf的計算較少,且需要打包的數據量也少,同時由于采用了異步發送和接收操作,相對于常規方法可以減少部分時間。圖6給出了采用上述的并行FDTD建模后,一典型微波源器件的幾何結構示意圖。在fdtd建模中,其索引深度為5,表的寬度基本固定,長度隨模型的不同而變化。由上可知,基于多重索引結構的影像區填充算法仍然屬于鄰居間通信。該算法與傳統的影像區填充算法的區別在于需要作計算和重組織工作。其通信量依賴于相鄰進程間相異網格值的個數、索引深度、各表中與相異網格值對應的表項面積。本文給出了該算法能夠有效實現并行FDTD建模的性能測試結果。進一步詳細地測試將在下一步工作中完成。
3結束語
本文針對微波源器件模擬中的并行FDTD建模提出了一種有效的并行計算方法,在1024個處理器的計算平臺上,驗證了其有效性。
作者:陳軍 單位:北京應用物理與計算數學研究所 高性能計算中心