FEKO計算中減少內存的方法

2021-01-08 電子產品世界

用FEKO軟體進行電磁仿真時,由於電磁仿真對計算資源的強烈需求,計算資源尤其是內存的大小極大的成為決定求解問題規模的約束條件。為了在已有的硬體計算條件下,解決儘量大的電磁問題,FEKO提供了一些減少內存的途徑,主要可分為二個層面,其一是算法層面的節約內存,其二是技巧層面的節約內存。

本文引用地址:http://www.eepw.com.cn/article/259796.htm

算法
從算法上面來講,FEKO提供的有MoM,MLFMM,PO,UTD,FEM。矩量法佔用內存最多,存儲量級為O(N2)。MLFMM為基於MoM的快速算法,將存儲量成功將到O(NlogN)量級。PO和UTD屬於高頻方法,PO只考慮一次場的貢獻,存儲量為O(N),UTD不需要對目標表面剖分,所以內存不是求解的困難。當然,各種方法有其適用的範圍,如果精確方法不能求解的問題,可考慮採用近似的方法降低對內存的需求以解決。

技巧
主要有兩點,一是對稱性,二是迭代求解的預條件的設置。

1、對稱性:
在矩量法求解和物理光學求解中,利用對稱性可大大減少內存需求和求解的複雜度,節省求解時間。
矩量法求解中,如所求解的問題存在電磁對稱性,求解的過程可簡化成求解部分模型,將結果複製到對稱的部分即得到全部結構的解。電磁對稱性分為兩種,電對稱和磁對稱,分別用到不同的邊界條件實現對稱所帶來的簡便性。幾何對稱可以方便建模,然而卻不能節省計算和內存需求。
物理光學計算中,也可以利用電磁對稱節省內存開銷,同時可選擇對稱射線尋跡選項,加速計算。

2、預條件:
眾所周知,算法的內存需求絕大部分是矩陣方程所佔用的內存,如何降低這部分內存需求,將是減少整個算法內存需求的關鍵。對於多層快速多極子這樣的迭代算法,其內存的需求主要包括三部分:近區阻抗矩陣元素,轉移矩陣和預條件矩陣。近區阻抗矩陣元素的內存需求是跟MLFMM算法所確定的最細層盒子尺寸決定的,FEKO中,如果想通過調整該盒子尺寸來減少內存,可通過FM卡手動設置其尺寸,不過一般不推薦這樣做,FEKO默認尺寸為0.23個波長,縮小尺寸將導致多極子模式數增大,從而導致計算複雜度增大。

預條件矩陣是整個迭代過程佔用內存最多的部分,為了減少此部分內存,可通過CG卡調節預條件的種類或者改變其參數。對於MLFMM,FEKO提供了2種預條件技術,不完全LU分解預條件和稀疏近似逆預條件。FEKO默認採用完全LU分解,填充級別為12,為了減少內存,可將ILU預條件的填充級別改為低於12的值,值越低,預條件佔用內存越少,但預條件效果越差。稀疏近似逆佔用內存較ILU少很多,當然效果也要差一些。目前,只有稀疏近似逆支持MLFMM的並行。

另外,值得一提的是MLFMM計算過程中,EG卡中默認選擇的單精度選項,數據採用單精度存儲,將減少一半的內存需求,對於一般情況,單精度已足夠滿足計算的精度要求。


相關焦點

  • 模擬內存計算如何解決邊緣AI推理的功耗挑戰
    這個問題可以通過多層內存和使用模擬內存計算方法來解決,這些計算方法可讓處理引擎能夠滿足在網絡邊緣執行人工智慧推斷所需的更低的毫瓦到微瓦的功率要求。雲計算的挑戰當人工智慧應用程式通過基於雲的引擎提供服務時,用戶必須上傳一些數據到雲中,由計算引擎處理數據,提供預測,並將預測發送到下遊,供用戶使用。
  • 基於LLVM的內存計算
    最近業界有很多技術和產品都被認為屬於內存計算的範疇,並且大家都覺得內存計算是未來大數據方面的核心技術,特別是類似Spark和HANA這樣的產品和技術湧現,使得內存計算已經在大數據技術方面成為主流。
  • 基於FEKO的機載導航天線方向圖分析
    採用實測的方法,不僅獲得的測量數據較少,而且造成大量的人員浪費和經濟損失。隨著計算機技術的不斷發展,現在大多採用電磁仿真軟體進行機載天線方向圖的研究。使用電磁仿真軟體,可以極大的提高分析的速度和節約研究的成本。
  • 在BIOS中優化內存的方法
    為充分發揮內存的潛能,必須在BIOS設置中對與內存有關的參數進行調整。下面針對稍老一點的支持Intel PentiumⅢ、CeleronⅡ處理器的Intel 815E/815EP晶片組主板、VIA(威盛)694X晶片組主板和支持AMD Thunder bird(雷鳥)、Duron(鑽龍)處理器的VIA KT133/133A晶片組主板,介紹如何在最常見的Award BIOS 6.0中優化內存設置。
  • Oracle Database In-Memory:重新定義內存計算?
    提到內存計算,就不能不提最近幾年大紅大紫的SAP公司,其HANA內存計算解決方案賺足了市場的眼球,在短短幾年時間擁有超過幾百家的用戶,並獲得了包括IBM、HP、Dell、華為等伺服器廠商的大力追捧。與此同時,不能否認的是類似SAP HANA這樣動輒上百萬美金的內存計算解決方案依然只是少數經濟實力雄厚的用戶的選擇。
  • 《文明6》厭戰情緒怎麼減少 厭戰情緒減少及計算方法
    導 讀 《文明6》中很多玩家不知道怎麼減少厭戰情緒,今天就為大家帶來了文明6厭戰情緒怎麼減少,其中還包括厭戰情緒計算方法
  • 全面解讀作業系統中的內存管理,你懂幾點?
    此外,每個進程運行都會佔據一定的物理內存,如果物理內存足夠大到可以容納許多個進程同時運行還好,但現實中物理內存的大小是有限的,可能會出現內存不夠用的情況,怎麼辦?方法一:如果是因為程序太大,大到超過了內存的容量,可以採用手動覆蓋技術,只把需要的指令和數據保存在內存中。
  • Accordion:HBase 「呼吸式」內存壓縮算法
    Accordion 算法可以實現在內存中容納更多的數據,並且降低寫入磁碟的頻率。這正好是多個場景下我們所需要的。首先,HBase的磁碟佔用和寫入放大因此減少;其次,更多數據的讀取和寫入將直接從RAM中獲得,更少的讀取和寫入基於磁碟I/O,換句話說,HBase的性能得到提高。在2.0版本之前,這些不同的指標是不能同時滿足的,並且相互制約。而通過Accordion 算法,它們都同時得到了改善。
  • 更快的計算,更高的內存效率:PyTorch混合精度模型AMP介紹
    只有在我們擁有大量計算資源的情況下,我們才能進行足夠的實驗並充分利用深度學習的潛力。但是我們真的充分利用了現有的計算資源嗎? 我們可以做得更好嗎?這篇文章是關於利用Tensor Cores和自動混合精度來更快地訓練深度學習網絡的。什麼是Tensor Cores?
  • Linux下內存洩漏工具
    一次性內存洩漏。發生內存洩漏的代碼只會被執行一次,或者由於算法上的缺陷,導致總會有一塊且僅一塊內存發生洩漏。比如,在一個Singleton類的構造函數中分配內存,在析構函數中卻沒有釋放該內存。而Singleton類只存在一個實例,所以內存洩漏只會發生一次。  4. 隱式內存洩漏。程序在運行過程中不停的分配內存,但是直到結束的時候才釋放內存。
  • 天線布局:利用FEKO仿真的解決方案
    該飛機模型是EMC計算電磁學(CEMEMC)專題研討會上展示的一個測試模型,屬於EV55(屬於HIRF-SE FP7 EU項目,EVEKTOR,spol.s r.o.和HIRF SE聯盟擁有其版權)的變形版本。用戶只需要根據求解問題的類型、電尺寸大小和複雜度等來選擇FEKO中的一種求解器進行計算。
  • 終結硬碟時代 主流內存資料庫對比報告
    業界觀點  @微博平臺架構:內存計算時代來臨?在Gartner推出的2013年10大戰略性技術中,其中一項即是"In Memory Computing"。在本周,微軟宣布,將在下一個SQL Server版本中實現內存技術,將允許從內存中運行整個資料庫。微軟預計,使用內存技術,可以使事務運行速度比標準的SQL Server快50倍。
  • 電磁仿真(HFSS、CST、FEKO)時域頻域精準配置推薦2019
    電磁仿真1.1 電磁仿真算法分類、計算特點計算電磁學(CEM)方法大致可分為2類:精確算法和高頻近似方法。(1)全波精確計算法包括差分法(FDTD,FDFD)、有限元(FEM)、矩量法(MoM)以及基於矩量法的快速算法(如快速多極子FMM和多層快速多極子MLFMA)等,其中,在解決大目標電磁問題中最有效的方法為多層快速多極子方法。
  • NVRAM可以消除I / O和內存瓶頸 並為百億億次存儲提供關鍵的推動力
    「當您在計算節點中放置大量的高性能,字節可尋址的NVRAM時,一切都會發生變化,」 EPCC高級研究員,愛丁堡大學超級計算中心以及34位軟體架構師的艾德裡安·傑克遜(Adrian Jackson)說。 NEXTGenIO合作夥伴組織共同開發的節點原型平臺,以支持其研究。「計算節點既是存儲節點,又是存儲節點,您可以擴展I / O帶寬並以不同方式使用I / O。
  • 高速電機轉子衝片的強度設計(一)——考慮高速離心力的計算方法(下)
    本六面體單元,在ANSYS Workbench中,默認採用20個節點的高階Solid 186單元建立,每個節點有X、Y、Z三個方向的平移自由度;四面體則為10節點高階Solid187單元。如採用直接求解器,內存消耗量為10x0.741G=7.41G,總內存消耗量預計在10G左右。則建議最低配置為16G內存的電腦。對於其他計算,方法近似,不再贅述。
  • 摩爾定律失效 還有什麼方法讓計算性能暴漲
    ,比如內存中運算、量子計算、分子電子學、神經形態計算等等。即便矽晶片正接近物理和經濟成本上的極限,也還有其它的方法繼續驅動計算性能的指數級增長,比如採用新材料來打造晶片和以新方式定義計算本身。目前已經出現了與電晶體速度無關的技術進步,如深度學習驅動的更加聰明的軟體,以及通過利用雲資源實現更強計算能力的技術。而這只是未來計算創新的冰山一角。
  • 產品知識中心:Chipkill內存
    內存糾錯技術的發展過程    90年代初,內存體系採用奇偶性校驗(Parity Verifying)技術。奇偶校驗內存在每一字節(8位)外又額外增加了一位作為錯誤檢測之用,BIOS中的監控程序會將存入內存中的數據位相加,並將結果存於校驗位中。
  • 回顧:神經擬態計算需求下的6種新內存技術
    【IT168 技術】對神經擬態計算的興趣促使人們去研究一種新的內存設備,以複製/實現生物神經元和突觸的特性功能。近日有一篇論文(https://onlinelibrary.wiley.com/doi/10.1002/admt.201800589)回顧了該領域的現狀,並討論了6種在這一領域最有前途的技術。
  • Java常見內存溢出異常分析
    Java 棧 StackOverflowError   我們知道, JVM 的運行時數據區中有一個叫做 虛擬機棧 的內存區域, 此區域的作用是: 每個方法在執行時都會創建一個棧幀, 用於存儲局部變量表, 操作數棧, 方法出口等信息。
  • Java進行內存洩露 GC 分析都有哪些常用好用的工具
    使用Java語言開發應用程式,雖然JVM幫我們進行了GC收集、清除工作;但是使用不當的話,還是會導致某些對象常駐堆空間無法給垃圾收集器清除,導致內存洩露、內存溢出等情況,今天盤點一下在項目中進行內存洩露分析和GC分析的一些常用、好用的工具。