仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖1

高性能計算的瓶頸

    在實際的工作和科研中,許多人會遭遇一個令人費解的困境:

    明明想要通過增加核心數來提高計算效率,但是隨著并行計算核心數的不斷增加,原本期待的加速效果并未如約而至,計算效率的曲線非但沒什么變化,甚至開始不斷下降。

    而影響計算效率的因素除了“算法的優化”,像“數據相關性”“負載平衡”等也涉及其中,下面我們就來講講各個因素為何會影響算例的“最佳并行規模”。

01 影響因素分析

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖2

    1. 數據通信和同步

    在并行計算中,不同處理單元之間需要進行數據通信和同步動作,而過多的核心數所產生的通信時間也是相當可觀的,從而會影響到作業本身的計算效率和計算平臺的整體性能,但是通信密集型任務需要更多的核心,最終的計算效率反而會下降,這個也需要在作業的配置中考慮到。

    2. 負載平衡

    在并行計算中,各個節點的負載分配可能不均衡,導致部分處理單元負載過重,而部分處理單元空閑,從而影響到計算效率。

    3. 數據相關性

    并行計算中的數據相關性可能導致處理單元之間的依賴關系,限制了并行度的提高,從而影響性能。

    4. 潛在的競爭和瓶頸

    在并行計算中,可能存在共享資源的競爭和瓶頸,如內存帶寬、I/O帶寬等,這些因素可能限制并行計算的性能。

    5. 算法設計和并行化的復雜性

    一些算法并不容易并行化,或者其并行化的復雜性較高,這可能導致并行計算的效率不高。

02 最佳并行規模分析——以“汽車碰撞分析”為例

    車輛模型包括數百個部件,如車身、座椅、安全帶、氣囊等。碰撞分析的模型需要考慮所有這些部件的相互作用。

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖3

圖片來源:網絡

    在汽車碰撞分析中,采用并行計算可以顯著縮短求解時間,但同時也需要注意優化計算性能。根據計算節點和核心數量合理分配任務,避免資源浪費,并通過調整網格劃分,確保計算負載在所有節點間平衡分配,減少計算瓶頸。

    配置更多算力核心后,計算效率下降原因分析如下:

 1. 負載不均衡

    當并行規模過大時,各個計算節點之間的負載分配可能變得不均衡,部分節點計算任務過重,而其他節點則處于空閑狀態,導致整體計算效率下降。

 2. 通信開銷增加

    過多的并行核心會導致通信頻率和復雜度增加,通信開銷增大,從而拖慢計算速度。

3. 內存管理問題

    在大規模并行計算中,內存分配和管理變得更加復雜,可能出現內存不足或內存訪問沖突等問題,影響計算效率。

    在實際測試中,使用不同規模的計算資源對同一組LS-DYNA任務進行運算,結果如下:

本地計算資源:

    使用32、48、64核計算資源,耗時分別為821、566、439分鐘。

    注:本地資源有限,無法提供更多資源測試,共進行了3次作業提交,總計耗時1826分鐘

云端計算優化型實例:

    使用32、48、64、128、256核計算資源,耗時分別為662、458、375、299、321分鐘。

    注:云平臺資源充足,可同時進行多個作業的提交和計算,即耗時662分鐘得出所有結果(測試效率提升約64%,得出該作業最佳并行規模為128核

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖4

03 計算效率瓶頸解決方案

    方案一:多次作業并行運算,找出合適運算規模

    不同的大規模作業需要不同的優化方式,其中包括優化數據讀寫策略優化網格劃分找到合適的最佳并行規模

    方案二:在線云平臺解決方案

    SimForge高性能仿真云平臺可以在線提供以下資源:

    ① 在線圖形界面

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖5

    ② 海量軟件提供計算支持

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖6

    ③ 多個大算力作業同步計算

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖7

    ④ 數據實時同步,快速展示傳輸

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖8

推薦閱讀

?

仿真干貨|算例核心數越多反而越慢?來了解下“最佳并行規模”!的圖9
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP