■型創科技 / 羅偉航 應用工程師
前言
在做了許多不同類型、製程的CAE專案後,對於CAE的計算速度上有了一些實踐經驗。有很多工程師會認為,使用越多的核心進行並行運算,速度就會越快,把越多的服務器或電腦串起來同時跑一個專案,速度就會越快。但實際上這些做法是不對的。本文主要對CAE工程師提供一些硬體和計算參數上的建議。
各硬體對CAE計算的作用
首先我們得弄清楚,一台服務器中,不同硬體對CAE分析都有什麽作用。
- 處理器(CPU)
處理器是一台電腦的大腦,也是一個專案分析快慢的核心硬體。此處建議選擇核心數目高的、處理器基本頻率高的處理器。
- 內存(RAM)
內存的大小對於能做多大網格規模的專案有影響,大的內存可以支持更大網格規模的專案,以及影響後處理的處理速度。建議百萬級別的網格規模,使用64GB以內的內存便足夠,千萬級別的網格規模則需要具體評估,建議使用64GB以上的內存。
- 存儲
存儲有分機械硬盤和固態硬盤(SSD),固態硬盤的讀寫速度會更快,一般建議CAE軟體安裝在固態硬盤中,但大容量的固態硬盤價格較貴,所以低預算使用者分析後的專案也可存在機械硬盤中。機械硬盤建議配置CMR垂直盤,不建議用SMR叠瓦盤(雖然比較便宜,但正常使用讀寫的情况下,壽命一般只有兩年,本人用壞過兩塊,過了2年保修期後便很容易壞掉,一般只存不重要的數據)。
- 網卡(NIC)
如果使用遠端計算,或多台服務器串聯,以叢集計算的方式進行分析,則對網卡也有要求。在網絡帶寬足夠的情况下,建議配置萬兆網卡。避免數據傳輸時間太長。
由於顯示卡(GPU)的配置高低對CAE分析不起加速作用。所以顯示卡可以直接使用CPU自帶的核顯,或NVIDIA Quadro系列的繪圖顯卡。
關於計算速度的問題
使用越多核心數,分析速度越快?
這種說法不準確,假設現在要計算一個1萬網格的專案,使用4個核心計算的速度可能比32核心計算的速度要快。如果是20萬的網格,可能4核心計算速度和32核心計算速度差不多。但如果是百萬級別、千萬級別的網格,這時候32、64核心和8、16核心的計算速度差異才能體現出來。因為多核心在進行平行運算時(以32核心為例),首先需要將模型進行區域分割,將模型的計算區域分配給每個核心的計算節點。即需要先分成32份子區域來計算,且在平行運算中,資料會在子區域之間頻繁的交換,而這種數據交換會影響整體計算的速度。因此計算效率和資料交換的速度以及交換的資料量有直接關聯。所以如果網格量較少的專案,更推薦使用少量的核心進行計算。百萬級別以上的網格,這個就需要根據求解配置、模型複雜程度來對比研究使用多少個核心計算。
核心數、線程數的區別
對於CAE來講,分析速度主要與CPU的內核數目有關,而在打開超線程的狀態下,如32核心的電腦,會有64條線程數。此時分析參數會顯示最高可用64數目進行計算。這種狀態下,我建議就用32核心進行計算。只用核心數計算90%是最具效率的,在某些情况下,可能48線程速度會略快,但這和CPU、內存有關,沒有普遍性。因此如果你不太熟悉電腦硬體,建議就以核心數目作為上限進行計算。
是否需要關閉超線程?
這個同樣是有爭議的一點。打開超線程,不同的CPU、內存下的結果可能都不一樣。如32核心的電腦,關閉超線程,使用32數目進行分析,則CPU會一直處於滿載狀態,此時電腦可能會變得很慢很卡頓。而如果打開超線程,使用32數目進行分析,則CPU會剩下10~20%的資源,電腦可以處理其他工作。而兩者的分析速度幾乎相同或超線程稍慢一點。此處建議如果是多人使用的計算節點,建議關閉超線程。如果是個人使用,可不關閉,自行調整。
1台雙路CPU服務器還是2台單路CPU服務器
假設1台16核的服務器效能為1的話,1台雙路CPU(16核+16核)的效能大概為1.8,而兩台16核CPU組成的服務器組的效能由於需要通過網絡傳輸交換數據,最終可能只有1.5。而塔式服務器串接的服務器組,效率會比機架式服務器串接的服務器組更差。因此如果需要做服務器組,建議用機架式服務器,且網卡的配置也需要跟上。
系統對計算速度的影響
相同配置下,Linux系統比Windows系統的計算速度更快。但Linux系統只能作為計算節點運算,前後處理仍需要Windows系統下的CAE軟體進行。
桌面級CPU和服務器級CPU
以Intel的CPU為例,服務器級的CPU如至强系列,核心數可更高,可支持更大的內存,且更穩定。所以如果是專業分析的企業,首選是服務器而非個人電腦(PC)。如果你的預算不高或分析的專案比較簡單,那麽桌面級的CPU如酷睿系列,也是不錯的選擇。但此處需要注意的是,如果僅作為分析運算的話,建議選擇酷睿11代或以前的CPU,因為12代開始使用「大小核」的架構,將CPU核心分為性能核(Performance-core)和能效核(Efficient-core),如24核心數的i9第13代CPU,含有8個性能核以及16個能效核。當使用多核心進行平行運算時,有時會出現只有性能核滿載,能效核不運算的問題。該情况下,分析速度會異常慢甚至完全停滯。後續本人有嘗試用其他軟體解决能效核不運算的問題,但由於兩種核心的單核心運算速度不一,造成了用(8性能核+8能效核)分析反而比8性能核分析要慢。因此如果非專業者,建議使用服務器或11代前的酷睿CPU。
寫在最後
這篇文章雖然不是射出模具相關知識,但卻是讓很多CAE使用者都頭痛過的問題。花了大價格配置的服務器,結果分析速度提升不明顯。或用多核心分析低網格的專案,資源分配不合理。作為一名CAE工程師,除了要瞭解前後處理、結果判讀、射出工藝等專業技能外,仍需對硬體的作用、軟體的計算參數及求解方法有所瞭解,這樣會更有利於工程師合理分配資源。對於這些問題,希望這篇文章能夠有所解答,有不正確的地方歡迎指正。