對經常跑EDA或其他算力密集型任務的用戶來說,在深度掌握本行業業務知識及熟練運用常見EDA工具以外,通常還需要在技能樹上點上一門技能——IT,就是怎麼(順利)使用機器把手裡的任務給(高效)跑完。
他們的IT技能升級打怪之旅一般分為三個階段:
第一階段:單機單CPU核,單任務
第二階段:單機多CPU核,多任務
第三階段:多機多CPU核,多任務
據速石科技觀察,很多用戶都已經處在第二階段。
但是,依然有部分用戶尚處在第一階段,比如今天的實證主角。
我們之前的六篇實證都直接一步到位——上雲後。
HSPICE│Bladed│Vina│OPC│Fluent│Amber
今天我們看看上雲前的幕後系列,又名:搬桌子的故事。
用戶需求
某IC設計公司運行EDA仿真前端設計和後端設計的分析任務,進行機電一體芯片技術的開發。現有機房設備較為老舊,共有8台單機,需要同時服務數字和模拟兩個研發部門。
随着公司業務的發展,相關部門負責人幾乎同時反饋業務峰值時計算資源嚴重不足,排隊現象嚴重。
實證目标
1、fastone平台是否能有效提升VCS任務運行效率?
2、fastone平台是否能有效提升本地機器資源利用率?
3、fastone平台是否支持大規模VCS任務自動化穩定運行?
實證參數
平台:
fastone企業版産品
應用:
Synopsys VCS
适用場景:
數模混合電路仿真
系統:
Red Hat Enterprise release 5.7(Tikanga)
實證結果
我們先來看看用戶自己跑20000個任務和我們來跑的效果:
大規模任務驗證:20000個任務
我們将本地機房的8台單機構建為一個統一管理的集群,運行20000個VCS任務的時間是用戶自己所需時間的約1/50。

實證過程:
1、用戶使用一台單機C1運行20000個VCS任務,耗時40485分鐘;
2、将本地機房的所有8台單機構建為集群A,使用集群A運行20000個VCS任務,耗時809分鐘。

用戶按常理推斷,本地機房共有8台單機,将所有機器一起來運行大規模VCS任務的時間大概應該是使用一台機器機耗時的6-7倍(理想值為8倍,但由于存在長尾任務,存在一定差異)。
但實證中50倍的提升大大超出了他們的預期。
中間發生了什麼?
回到我們開頭說的三個階段——
第一階段:單機單CPU核,單任務
單任務狀态下的單機單核,就是一個任務隻在一台機器上的一個CPU上跑。不管這台機器其實有幾個CPU,反正就隻用一個。資源利用率極其低下,可以說是暴殄天物。
再細一點,這裡其實還有個1.5階段:單機多CPU核,單任務。效果類似。
假設給你幾個人(CPU核),完成一個叫做“搬桌子”的任務。
單任務的處理方式分為單進程和多進程:
單進程的處理方式是:
不管你有幾個人,同一時間永遠隻有1個人在搬整張桌子,其他人在圍觀。

多進程的處理方式是:
先拆桌子。比如把一張桌子拆成4個零部件,分給4個人來同時搬,有的搬桌子腿,有的搬桌面等等,搬得慢的人決定任務的完成速度。
但是,哪怕你有8個人,一次也隻有4個人在搬。
搬完一張桌子再搬下一張,依次往複。

補充一個背景信息:2009年4月,新思科技就發布了VCS的多核技術,通過将耗時的計算處理動态地分配至多個CPU内核來突破芯片驗證的瓶頸,從而提高驗證的速度。
也就是說,應用十多年前就支持單任務多進程了,現在這個技術的名字叫Fine-Grained Parallelism,FGP。

第二階段:單機多CPU核,多任務
多任務狀态下的單機多核,就是多個任務能同時在一台機器上的數個CPU上跑,受制于單台機器的大核數,目前多也就96個核了。
我們繼續講“搬桌子”。
上一階段的多進程處理方式,存在一個明顯的問題。哪怕你有8個人,一次也隻有4個人在搬。搬完一張桌子再搬下一張。
這就很不合理了。
于是我們在此基礎上改進了一下。
在你有8個人的情況下,一張桌子4個人搬,我們可以同時搬兩張桌子啦。這樣可以明顯加快任務的完成速度。
但是,單台機器的總CPU核數就是上限了。

當然這一階段還是會存在一些問題,會出現有人突然跳出來跟你搶人或者你也搞不清楚哪些人現在有空來幫你。
因為資源使用的不透明和缺乏有序管理,會出現不同人對同一資源的争搶,任務排隊等現象。同時,你會發現資源利用率還是不高。
不少用戶已經處在這一階段。
我們看看從第一階段到第二階段的實際VCS驗證效果:
應用并行化驗證:400個任務
對VCS進行多任務并行化處理後,一台單機運行相同VCS任務的時間縮短為原先的15%-16%,極大提升了運行效率。
實證過程:
1、使用一台單機C1(8核)運行400個VCS任務,耗時806分鐘;
2、使用一台單機C2(8核)運行400個VCS任務,耗時793分鐘;
3、對VCS應用進行多任務并行化處理後,使用一台單機C1(8核)運行400個VCS任務,耗時130分鐘;
4、對VCS應用進行多任務并行化處理後,使用一台單機C2(8核)運行400個VCS任務,耗時122分鐘。

第三階段:多機多CPU核,多任務
多任務狀态下的多機多核,就是多個任務能同時在數台機器的數個CPU上跑,這個我們稱之為集群化管理,一般都需要有調度器的參與。
關于調度器的相關知識,看這裡:億萬打工人的夢:16萬個CPU随你用
前面講到我們已經可以同時安排搬兩張桌子啦。
但其實,如果你的機器足夠多,人(CPU核)足夠多,你完全可以同時搬更多的桌子。

這個時候,必然要面臨一個如何調兵遣将的問題。
這麼多機器,這麼多任務,怎麼順利一一配置、啟動、關閉,提高整體資源利用率,好還能自動化管理等等。這就需要一點技術了。
至于雲上資源的大規模動态化調度和管理,要更加高階一點。
在《生信雲實證Vol.3:提速2920倍!用AutoDockVina對接2800萬個分子》中,我們多調用了10萬核CPU資源對整個VS數據庫進行虛拟篩選。

當集群達到如此規模之後,手動管理是不可想象的。
而且雲上資源跟本地不同,往往是個動态使用的過程,有時候甚至要搶。
更不用說還要考慮不同用戶在不同階段的策略和需求。
我們看看從第二階段到第三階段的實際VCS驗證效果:
集群化驗證:400個任務
由2台單機構建的集群運行相同VCS任務的時間為單機的約60%,并實現了自動化資源管理。
實證過程:
1、使用一台單機C1(8核)運行400個VCS任務,耗時130分鐘;
2、使用一台單機C2(8核)運行400個VCS任務,耗時122分鐘;
3、将C1和C2構建為集群B,使用集群B運行400個VCS任務,耗時75分鐘。

後回顧一下,我們到底做了哪些事:
應用并行化:從單任務到多任務
fastone幫助用戶實現了應用并行化,可以充分使用一台單機上的全部CPU資源,确保了大的計算效率。
資源集群化:從單機到集群
fastone幫助用戶實現了集群化管理,讓多台機器能夠并行化運行VCS任務,實現了數據、應用、資源的統一化管理。
規模自動化:從400個任務到20000個任務
用戶希望在面臨大規模VCS任務時,上述方案的穩定性能夠得到充分驗證。fastone幫助用戶充分驗證了20000個VCS任務場景下,能夠自動化規模化地調度資源高效完成任務,滿足用戶需求。
到現在為止,速石科技 成功幫助用戶從單機單任務單進程運行的階段大幅度跨越到了大規模任務自動化集群化運行階段。
萬事俱備,下一步,上雲。
我們的前兩篇EDA雲實證可以了解一下:
《從30天到17小時,如何讓HSPICE仿真效率提升42倍?》
《國内大規模OPC上雲,5000核并行,效率提升53倍》
本次EDA行業雲實證就到這裡了。
下一期我們聊Virtuoso。
敬請期待哦~
關于速石:
速石科技(fastone)緻力于構建為應用定義的雲,讓任何應用程序,始終以自動化、更優化和可擴展的方式,在任何基礎架構上運行。
我們為有高算力需求的用戶提供一站式多雲算力運營解決方案,基于本地+公有混合雲環境的靈活部署及交付,幫助用戶提升10-20倍業務運算效率,降低成本達到75%以上,加快市場響應速度。速石平台對藥物研發/基因分析/CAE/EDA/AI等行業應用進行分析與加速,通過Serverless框架屏蔽底層IT技術細節,實現用戶對本地和公有雲資源無差别訪問。
我們的産品包括:fastone COMPUTE PLATFORM和fastone COMPUTE CLOUD。
免責聲明:本文僅代表作者個人觀點,與每日科技網無關。其原創性以及文中陳述文字和内容未經本站證實,對本文以及其中全部或者部分内容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關内容。
本網站有部分内容均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,若因作品内容、知識産權、版權和其他問題,請及時提供相關證明等材料并與我們聯系,本網站将在規定時間内給予删除等相關處理.

