仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖1

高性能計(jì)算的瓶頸

在實(shí)際的工作和科研中,許多人會(huì)遭遇一個(gè)令人費(fèi)解的困境:

明明想要通過(guò)增加核心數(shù)來(lái)提高計(jì)算效率,但是隨著并行計(jì)算核心數(shù)的不斷增加,原本期待的加速效果并未如約而至,計(jì)算效率的曲線非但沒(méi)什么變化,甚至開(kāi)始不斷下降。

而影響計(jì)算效率的因素除了“算法的優(yōu)化”,像“數(shù)據(jù)相關(guān)性”、“負(fù)載平衡”等也涉及其中,下面我們就來(lái)講講各個(gè)因素為何會(huì)影響算例的“最佳并行規(guī)模”。

01 影響因素分析

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖2

1. 數(shù)據(jù)通信和同步

在并行計(jì)算中,不同處理單元之間需要進(jìn)行數(shù)據(jù)通信和同步動(dòng)作,而過(guò)多的核心數(shù)所產(chǎn)生的通信時(shí)間也是相當(dāng)可觀的,從而會(huì)影響到作業(yè)本身的計(jì)算效率和計(jì)算平臺(tái)的整體性能,但是通信密集型任務(wù)需要更多的核心,最終的計(jì)算效率反而會(huì)下降,這個(gè)也需要在作業(yè)的配置中考慮到。

2. 負(fù)載平衡

在并行計(jì)算中,各個(gè)節(jié)點(diǎn)的負(fù)載分配可能不均衡,導(dǎo)致部分處理單元負(fù)載過(guò)重,而部分處理單元空閑,從而影響到計(jì)算效率。

3. 數(shù)據(jù)相關(guān)性

并行計(jì)算中的數(shù)據(jù)相關(guān)性可能導(dǎo)致處理單元之間的依賴關(guān)系,限制了并行度的提高,從而影響性能。

4. 潛在的競(jìng)爭(zhēng)和瓶頸

在并行計(jì)算中,可能存在共享資源的競(jìng)爭(zhēng)和瓶頸,如內(nèi)存帶寬、I/O帶寬等,這些因素可能限制并行計(jì)算的性能。

5. 算法設(shè)計(jì)和并行化的復(fù)雜性

一些算法并不容易并行化,或者其并行化的復(fù)雜性較高,這可能導(dǎo)致并行計(jì)算的效率不高。

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

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

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖3

在汽車碰撞分析中,采用并行計(jì)算可以顯著縮短求解時(shí)間,但同時(shí)也需要注意優(yōu)化計(jì)算性能。根據(jù)計(jì)算節(jié)點(diǎn)和核心數(shù)量合理分配任務(wù),避免資源浪費(fèi),并通過(guò)調(diào)整網(wǎng)格劃分,確保計(jì)算負(fù)載在所有節(jié)點(diǎn)間平衡分配,減少計(jì)算瓶頸。

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

1. 負(fù)載不均衡

當(dāng)并行規(guī)模過(guò)大時(shí),各個(gè)計(jì)算節(jié)點(diǎn)之間的負(fù)載分配可能變得不均衡,部分節(jié)點(diǎn)計(jì)算任務(wù)過(guò)重,而其他節(jié)點(diǎn)則處于空閑狀態(tài),導(dǎo)致整體計(jì)算效率下降。

2. 通信開(kāi)銷增加

過(guò)多的并行核心會(huì)導(dǎo)致通信頻率和復(fù)雜度增加,通信開(kāi)銷增大,從而拖慢計(jì)算速度。

3. 內(nèi)存管理問(wèn)題

在大規(guī)模并行計(jì)算中,內(nèi)存分配和管理變得更加復(fù)雜,可能出現(xiàn)內(nèi)存不足或內(nèi)存訪問(wèn)沖突等問(wèn)題,影響計(jì)算效率。

在實(shí)際測(cè)試中,使用不同規(guī)模的計(jì)算資源對(duì)同一組LS-DYNA任務(wù)進(jìn)行運(yùn)算,結(jié)果如下:

本地計(jì)算資源:

使用32、48、64核計(jì)算資源,耗時(shí)分別為821、566、439分鐘。

注:本地資源有限,無(wú)法提供更多資源測(cè)試,共進(jìn)行了3次作業(yè)提交,總計(jì)耗時(shí)1826分鐘。

云端計(jì)算優(yōu)化型實(shí)例:

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

注:云平臺(tái)資源充足,可同時(shí)進(jìn)行多個(gè)作業(yè)的提交和計(jì)算,即耗時(shí)662分鐘得出所有結(jié)果(測(cè)試效率提升約64%),得出該作業(yè)最佳并行規(guī)模為128核。

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖4

03 計(jì)算效率瓶頸解決方案

方案一:多次作業(yè)并行運(yùn)算,找出合適運(yùn)算規(guī)模

不同的大規(guī)模作業(yè)需要不同的優(yōu)化方式,其中包括優(yōu)化數(shù)據(jù)讀寫策略、優(yōu)化網(wǎng)格劃分、找到合適的最佳并行規(guī)模。

方案二:在線云平臺(tái)解決方案

SimForge?高性能仿真云平臺(tái)可以在線提供以下資源:

① 在線圖形界面

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖5

② 海量軟件提供計(jì)算支持

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖6

③ 多個(gè)大算力作業(yè)同步計(jì)算

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖7

④ 數(shù)據(jù)實(shí)時(shí)同步,快速展示傳輸

仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖8
仿真干貨|算例核心數(shù)越多反而越慢?一篇文看懂“最佳并行規(guī)模”的圖9
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP