新思科技(Synopsys)家的VCS,在半導(dǎo)體行業(yè)使用率極高,背景我們就不多說(shuō)了,。
對(duì)經(jīng)常跑EDA或其他算力密集型任務(wù)的用戶來(lái)說(shuō),,在深度掌握本行業(yè)業(yè)務(wù)知識(shí)及熟練運(yùn)用常見EDA工具以外,通常還需要在技能樹上點(diǎn)上一門技能——IT,,就是怎么(順利)使用機(jī)器把手里的任務(wù)給(高效)跑完。
他們的IT技能升級(jí)打怪之旅一般分為三個(gè)階段:
第一階段:?jiǎn)螜C(jī)單CPU核,單任務(wù)
第二階段:?jiǎn)螜C(jī)多CPU核,,多任務(wù)
第三階段:多機(jī)多CPU核,多任務(wù)
據(jù)我們觀察,,很多用戶都已經(jīng)處在第二階段,。
但是,依然有部分用戶尚處在第一階段,,比如我們今天的實(shí)證主角,。
我們之前的六篇實(shí)證都直接一步到位——上云后。
HSPICE │ Bladed │ Vina │ OPC │ Fluent │ Amber
今天我們看看上云前的幕后系列,,又名:搬桌子的故事,。
用戶需求
某IC設(shè)計(jì)公司運(yùn)行EDA仿真前端設(shè)計(jì)和后端設(shè)計(jì)的分析任務(wù),進(jìn)行機(jī)電一體芯片技術(shù)的開發(fā)?,F(xiàn)有機(jī)房設(shè)備較為老舊,,共有8臺(tái)單機(jī),需要同時(shí)服務(wù)數(shù)字和模擬兩個(gè)研發(fā)部門,。
隨著公司業(yè)務(wù)的發(fā)展,,相關(guān)部門負(fù)責(zé)人幾乎同時(shí)反饋業(yè)務(wù)峰值時(shí)計(jì)算資源嚴(yán)重不足,排隊(duì)現(xiàn)象嚴(yán)重,。
實(shí)證目標(biāo)
1,、fastone平臺(tái)是否能有效提升VCS任務(wù)運(yùn)行效率?
2,、fastone平臺(tái)是否能有效提升本地機(jī)器資源利用率,?
3、fastone平臺(tái)是否支持大規(guī)模VCS任務(wù)自動(dòng)化穩(wěn)定運(yùn)行?
實(shí)證參數(shù)
平臺(tái):
fastone企業(yè)版產(chǎn)品
應(yīng)用:
Synopsys VCS
適用場(chǎng)景:
數(shù)?;旌想娐贩抡?/p>
系統(tǒng):
Red Hat Enterprise release 5.7(Tikanga)
實(shí)證結(jié)果
我們先來(lái)看看用戶自己跑20000個(gè)任務(wù)和我們來(lái)跑的效果:
大規(guī)模任務(wù)驗(yàn)證 20000個(gè)任務(wù)
我們將本地機(jī)房的8臺(tái)單機(jī)構(gòu)建為一個(gè)統(tǒng)一管理的集群,,運(yùn)行20000個(gè)VCS任務(wù)的時(shí)間是用戶自己所需時(shí)間的約1/50。
實(shí)證過(guò)程:
1,、用戶使用一臺(tái)單機(jī)C1運(yùn)行20000個(gè)VCS任務(wù),,耗時(shí)40485分鐘;
2,、將本地機(jī)房的所有8臺(tái)單機(jī)構(gòu)建為集群A,,使用集群A運(yùn)行20000個(gè)VCS任務(wù),耗時(shí)809分鐘,。
用戶按常理推斷,,本地機(jī)房共有8臺(tái)單機(jī),將所有機(jī)器一起來(lái)運(yùn)行大規(guī)模VCS任務(wù)的時(shí)間大概應(yīng)該是使用一臺(tái)機(jī)器機(jī)耗時(shí)的6-7倍(理想值為8倍,,但由于存在長(zhǎng)尾任務(wù),,存在一定差異)。
但實(shí)證中50倍的提升大大超出了他們的預(yù)期,。
中間發(fā)生了什么,?
回到我們開頭說(shuō)的三個(gè)階段——
第一階段:?jiǎn)螜C(jī)單CPU核,單任務(wù)
單任務(wù)狀態(tài)下的單機(jī)單核,,就是一個(gè)任務(wù)只在一臺(tái)機(jī)器上的一個(gè)CPU上跑,。不管這臺(tái)機(jī)器其實(shí)有幾個(gè)CPU,反正就只用一個(gè),。資源利用率極其低下,,可以說(shuō)是暴殄天物。
再細(xì)一點(diǎn),,這里其實(shí)還有個(gè)1.5階段:?jiǎn)螜C(jī)多CPU核,,單任務(wù)。效果類似,。
假設(shè)給你幾個(gè)人(CPU核),,完成一個(gè)叫做“搬桌子”的任務(wù)。
單任務(wù)的處理方式分為單進(jìn)程和多進(jìn)程:
單進(jìn)程的處理方式是:
不管你有幾個(gè)人,,同一時(shí)間永遠(yuǎn)只有1個(gè)人在搬整張桌子,,其他人在圍觀。
多進(jìn)程的處理方式是:
先拆桌子,。比如把一張桌子拆成4個(gè)零部件,,分給4個(gè)人來(lái)同時(shí)搬,有的搬桌子腿,,有的搬桌面等等,,搬得最慢的人決定任務(wù)的完成速度,。
但是,哪怕你有8個(gè)人,,一次也只有4個(gè)人在搬,。
搬完一張桌子再搬下一張,依次往復(fù),。
補(bǔ)充一個(gè)背景信息:2009年4月,,新思科技就發(fā)布了VCS的多核技術(shù),通過(guò)將耗時(shí)的計(jì)算處理動(dòng)態(tài)地分配至多個(gè)CPU內(nèi)核來(lái)突破芯片驗(yàn)證的瓶頸,,從而提高驗(yàn)證的速度,。
也就是說(shuō),應(yīng)用十多年前就支持單任務(wù)多進(jìn)程了,,現(xiàn)在這個(gè)技術(shù)的名字叫Fine-Grained Parallelism,,F(xiàn)GP。
第二階段:?jiǎn)螜C(jī)多CPU核,,多任務(wù)
多任務(wù)狀態(tài)下的單機(jī)多核,就是多個(gè)任務(wù)能同時(shí)在一臺(tái)機(jī)器上的數(shù)個(gè)CPU上跑,,受制于單臺(tái)機(jī)器的最大核數(shù),,目前最多也就96個(gè)核了。
我們繼續(xù)講“搬桌子”,。
上一階段的多進(jìn)程處理方式,,存在一個(gè)明顯的問題。哪怕你有8個(gè)人,,一次也只有4個(gè)人在搬,。搬完一張桌子再搬下一張。
這就很不合理了,。
于是我們?cè)诖嘶A(chǔ)上改進(jìn)了一下,。
在你有8個(gè)人的情況下,一張桌子4個(gè)人搬,,我們可以同時(shí)搬兩張桌子啦,。這樣可以明顯加快任務(wù)的完成速度。
但是,,單臺(tái)機(jī)器的總CPU核數(shù)就是上限了,。
當(dāng)然這一階段還是會(huì)存在一些問題,會(huì)出現(xiàn)有人突然跳出來(lái)跟你搶人或者你也搞不清楚哪些人現(xiàn)在有空來(lái)幫你,。
因?yàn)橘Y源使用的不透明和缺乏有序管理,,會(huì)出現(xiàn)不同人對(duì)同一資源的爭(zhēng)搶,任務(wù)排隊(duì)等現(xiàn)象,。同時(shí),,你會(huì)發(fā)現(xiàn)資源利用率還是不高,。
不少用戶已經(jīng)處在這一階段。
我們看看從第一階段到第二階段的實(shí)際VCS驗(yàn)證效果:
應(yīng)用并行化驗(yàn)證
400個(gè)任務(wù)
對(duì)VCS進(jìn)行多任務(wù)并行化處理后,,一臺(tái)單機(jī)運(yùn)行相同VCS任務(wù)的時(shí)間縮短為原先的15%-16%,,極大提升了運(yùn)行效率。
實(shí)證過(guò)程:
1,、使用一臺(tái)單機(jī)C1(8核)運(yùn)行400個(gè)VCS任務(wù),,耗時(shí)806分鐘;
2,、使用一臺(tái)單機(jī)C2(8核)運(yùn)行400個(gè)VCS任務(wù),,耗時(shí)793分鐘;
3,、對(duì)VCS應(yīng)用進(jìn)行多任務(wù)并行化處理后,,使用一臺(tái)單機(jī)C1(8核)運(yùn)行400個(gè)VCS任務(wù),耗時(shí)130分鐘,;
4,、對(duì)VCS應(yīng)用進(jìn)行多任務(wù)并行化處理后,使用一臺(tái)單機(jī)C2(8核)運(yùn)行400個(gè)VCS任務(wù),,耗時(shí)122分鐘,。
第三階段:多機(jī)多CPU核,多任務(wù)
多任務(wù)狀態(tài)下的多機(jī)多核,,就是多個(gè)任務(wù)能同時(shí)在數(shù)臺(tái)機(jī)器的數(shù)個(gè)CPU上跑,,這個(gè)我們稱之為集群化管理,一般都需要有調(diào)度器的參與,。
關(guān)于調(diào)度器的相關(guān)知識(shí),,看這里:億萬(wàn)打工人的夢(mèng):16萬(wàn)個(gè)CPU隨你用
前面講到我們已經(jīng)可以同時(shí)安排搬兩張桌子啦。
但其實(shí),,如果你的機(jī)器足夠多,,人(CPU核)足夠多,你完全可以同時(shí)搬更多的桌子,。
這個(gè)時(shí)候,,必然要面臨一個(gè)如何調(diào)兵遣將的問題。
這么多機(jī)器,,這么多任務(wù),,怎么順利一一配置、啟動(dòng),、關(guān)閉,,提高整體資源利用率,最好還能自動(dòng)化管理等等,。這就需要一點(diǎn)技術(shù)了,。
至于云上資源的大規(guī)模動(dòng)態(tài)化調(diào)度和管理,,要更加高階一點(diǎn)。
在《生信云實(shí)證Vol.3:提速2920倍,!用AutoDockVina對(duì)接2800萬(wàn)個(gè)分子》中,,我們最多調(diào)用了10萬(wàn)核CPU資源對(duì)整個(gè)VS數(shù)據(jù)庫(kù)進(jìn)行虛擬篩選。
當(dāng)集群達(dá)到如此規(guī)模之后,,手動(dòng)管理是不可想象的,。
而且云上資源跟本地不同,往往是個(gè)動(dòng)態(tài)使用的過(guò)程,,有時(shí)候甚至要搶,。
更不用說(shuō)還要考慮不同用戶在不同階段的策略和需求。
我們看看從第二階段到第三階段的實(shí)際VCS驗(yàn)證效果:
集群化驗(yàn)證
400個(gè)任務(wù)
由2臺(tái)單機(jī)構(gòu)建的集群運(yùn)行相同VCS任務(wù)的時(shí)間為單機(jī)的約60%,,并實(shí)現(xiàn)了自動(dòng)化資源管理,。
實(shí)證過(guò)程:
1、使用一臺(tái)單機(jī)C1(8核)運(yùn)行400個(gè)VCS任務(wù),,耗時(shí)130分鐘,;
2、使用一臺(tái)單機(jī)C2(8核)運(yùn)行400個(gè)VCS任務(wù),,耗時(shí)122分鐘,;
3、將C1和C2構(gòu)建為集群B,,使用集群B運(yùn)行400個(gè)VCS任務(wù),耗時(shí)75分鐘,。
最后,,我們回顧一下,我們到底做了哪些事:
應(yīng)用并行化:從單任務(wù)到多任務(wù)
fastone幫助用戶實(shí)現(xiàn)了應(yīng)用并行化,,可以充分使用一臺(tái)單機(jī)上的全部CPU資源,,確保了最大的計(jì)算效率。
資源集群化:從單機(jī)到集群
fastone幫助用戶實(shí)現(xiàn)了集群化管理,,讓多臺(tái)機(jī)器能夠并行化運(yùn)行VCS任務(wù),,實(shí)現(xiàn)了數(shù)據(jù)、應(yīng)用,、資源的統(tǒng)一化管理,。
規(guī)模自動(dòng)化:從400個(gè)任務(wù)到20000個(gè)任務(wù)
用戶希望在面臨大規(guī)模VCS任務(wù)時(shí),上述方案的穩(wěn)定性能夠得到充分驗(yàn)證,。
fastone幫助用戶充分驗(yàn)證了20000個(gè)VCS任務(wù)場(chǎng)景下,,能夠自動(dòng)化規(guī)模化地調(diào)度資源高效完成任務(wù),,滿足用戶需求,。
到現(xiàn)在為止,,我們成功幫助用戶從單機(jī)單任務(wù)單進(jìn)程運(yùn)行的階段大幅度跨越到了大規(guī)模任務(wù)自動(dòng)化集群化運(yùn)行階段。
萬(wàn)事俱備,,下一步,,上云。
我們的前兩篇EDA云實(shí)證可以了解一下:
《從30天到17小時(shí),,如何讓HSPICE仿真效率提升42倍,?》
《國(guó)內(nèi)最大規(guī)模OPC上云,5000核并行,,效率提升53倍》
本次EDA行業(yè)云實(shí)證系列Vol.7就到這里了,。
下一期的EDA云實(shí)證,我們聊Virtuoso,。
請(qǐng)保持關(guān)注哦,!