Re: [菜單] 數值分析用電腦

作者: MiyaKami (米漢堡)   2024-08-07 00:18:52
原文刪光光
由於前一篇回答此類問題是2019年,也還在這個領域工作就乾脆更新一下
數值分析套裝軟體很多種,
常見有ANSYS LS-DYNA ABAQUS Fluent COMSOL這類泛用型物理模擬
也有許多化學類的模擬軟體(我不熟)
而這類軟體的核心都是從"解偏微分方程式"這個目標衍伸而來的
其運作流程是
1. 幾何資訊(CAD)離散化,也就是俗稱的切網格
2. 矩陣組合,解反矩陣,這是所謂的求解計算
3. 結果產出
如何配置一台符合預期的計算主機也可從上面3點一一解釋
1.切網格部分目前絕大多數軟體都是自動切分網格,使用者只需要手動
輸入一個尺寸(最多再輸入最小尺寸),軟體會自動鋪設並且還會製作過度元素
這在20~30年前是想不到的功能,我公司前輩講古說因為以前記憶體不夠大
大概是配個512MB到1G,工程師會覺得公司好捨得給我好的電腦配備
因為網格數量會直接佔用記憶體,即使是矩陣0區不計算也會劃分空間留用
所以老工程師會手動製作網格,用各種花式手法去製作精良(品質良好)的網格
甚至會簡化原始模型,例如拿掉不重要區域的導R角,
然後把 "mesh is art" 這句話掛在嘴邊(一臉秋樣),
其這些手法都是為了降低記憶體使用,因為矩陣大於記憶體是不能計算的
軟體方因應方法曾開發了一個 swaping 功能,其實就是把硬碟當記憶體用,
來避免"不能算"的狀況發生,也能想像到這樣的計算速度會有多慢了
但算得慢總比不能算來得好,至於手動製作網格學習成本太高,也不會有妹子
在你旁邊說 哇你網格好強喔
手動做三天,自動只要3分鐘 所以不建議學這個
現在王道就是自動網格然後買大記憶體+高時脈多核心CPU硬幹就是了
所以記憶體選擇越快越好,買到多大取決於你的模型有多大,
不知道模型會有多大,那就買滿現在能插滿的
2.矩陣求解部分,這個需要看題目,簡單說就是如果是一般大小的線性題目基
本上幾分鐘到幾十分鐘就會解完了,阿就解一步反矩陣是會多慢,如果是頻率
域算太久,你要先想是不是選錯掃頻策略
所以這部分會預先假設做的題目是時域非線性(學術上才稱得上有一些些難度),
在非線性求解過程,會有非常多步的迭代跟時間增量步,簡單說就是會一直try
解反矩陣~驗證收斂性~反覆做,在這個步驟CPU效能是吃滿的,所以CPU的時脈
直接決定了解題快慢
基於這個架構要談幾件事:
a. 核心數不等於執行緒,這個是某家起的壞榜樣,超執行緒(Hyper Threading)
技術是~我賭你使用電腦時不會一直讓CPU很忙碌,所以我把一個核心模擬成
兩個核心,這樣看起來框框超多的,賣相很好
很抱歉,在模擬過程還真是CPU滿載,所以16C/32T開啟平行32核,你會發現一件
神奇的事情,原本要加速反而速度變更慢,因為資源互搶了
b. 快取的重要性,因為使用到平行計算功能(intel MPI/MS MPI),在數據的吞
吐頻率跟資料大小,因為軟體不同也不甚熟悉無法詳述,依照之前資工資源
班上課老師說的~快取buffer是預先讀取前後幾十行的程式碼,讓使用者操作
不卡頓,在計算上SMP平行計算效能是會集中調配使用,這部分快取就很重要
我也實測過,快取越多效率越好,快取像便宜白菜給的AMD,我只能給個讚
c. 時脈,CPU規格上面會有兩種時脈,一個是基本時脈,另一個是turbo時脈
turbo時脈講的是單核使用時的極限,還可能根據體質以及散熱而無法達到此值
所以在使用上建議買32C/64T 滿載最多用到16C
我這邊上上個月配的 TR 7980 32C/64T (5.3 / 4.0 GHz)
測試非線性物理專用型CAE
32C 4.2 ~ 4.5 GHz (常時 4.2 GHz)
16C 4.8 ~ 5.0 GHz (常時 4.8 GHz)
基本上會跳動偏高,觀察懷疑是迭代完成準備存取下一步時的喘息時段
所以原PO買了7985也不用煩惱,測測看 32C/64C 再決定要不要開滿
3.結果產出部分,就是把計算完的某個時間點結果存到硬碟
這時取決的就是硬碟寫入速度了,
其實這二十年來電腦硬體進步神速,記憶體便宜又大,CPU核心數比前女友還多
最後還是被硬碟速度拖到,在SSD還沒普及的時候,算一個非線性題目常是2天
起跳,當裝了SSD後同題目竟然可以剩下10多小時,可見硬碟寫入速度有多拖
沓,現在 Gen 4 到 Gen 5 才隔沒幾年,這種進步速度讓我期待接下來的發展
當然也可以在軟體設定上面減少結果存檔數量也能做到加速的效果,但不保證
會不會漏看甚麼重要的物理現象
上禮拜計算的一個題目檔案存了100多Gb算是特例,但是5Gb~10Gb應該是跑不掉
然後還是要提醒一下 SSD 做 RAID 只有讀取有加速受惠,寫入沒有
結論:
必要零件選用優先度
1. RAM 決定了能計算的題目大小,有餘裕就買滿
2. CPU 時脈越高越好>核心數(取決使用的軟體)>快取
3. 硬碟讀取寫入(特別是寫入)速度越快越好,
然後容量大小評估一下,或是習慣常清空間
其他零組件
CPU水冷必備,跑個題目可能要幾天,你也不希望熱當機重跑吧
顯卡看模型結果複雜度(解析度/網格數),網格太多可能會卡頓,選個vram多的
不用繪圖卡
另外以上只是大方向並非絕對,特別是題型或學術領域不同可能差異很大
也歡迎其他大大補充

Links booklink

Contact Us: admin [ a t ] ucptt.com