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