如何大幅提升Virtuoso仿真效率?正確答案在此,快來(lái)抄作業(yè)!
1991年Virtuoso技術(shù)正式發(fā)布,最初作為掩模設(shè)計(jì)師的版圖工具,是Opus平臺(tái)的一部分,主要功能包括電路設(shè)計(jì)與仿真、版圖設(shè)計(jì)、設(shè)計(jì)驗(yàn)證,以及模擬/數(shù)字混合設(shè)計(jì)等。
近30年來(lái),Virtuoso產(chǎn)品已和最初有很大不同,但其核心仍然是版圖編輯器。應(yīng)用工具層面。Cadence一直致力于優(yōu)化EDA應(yīng)用算法和性能,提高自動(dòng)化水平,將Virtuoso逐漸升級(jí)和擴(kuò)展為集合多項(xiàng)新技術(shù)的系統(tǒng)設(shè)計(jì)平臺(tái)。
而從應(yīng)用到云資源層,就由我們來(lái)發(fā)揮了。我們針對(duì)EDA應(yīng)用云原生適配,為IC研發(fā)設(shè)計(jì)人員提供一整套即開(kāi)即用,快速上手的IC研發(fā)設(shè)計(jì)環(huán)境,系統(tǒng)性大幅提升研發(fā)效率。
我們到底是怎么做到的?研發(fā)效率具體提高在哪些方面?什么是即開(kāi)即用的IC研發(fā)設(shè)計(jì)環(huán)境?好用嗎?改變?cè)瓉?lái)習(xí)慣嗎?
以下是今天的正文:
用戶需求
某芯片設(shè)計(jì)公司做數(shù)?;旌闲酒?,經(jīng)常使用Virtuoso調(diào)用Spectre完成仿真任務(wù),需要趕MPW shuttle,即將面臨多項(xiàng)目同時(shí)進(jìn)行、項(xiàng)目關(guān)鍵時(shí)間節(jié)點(diǎn)相同的困境。但公司CEO并不想單純靠增加本地機(jī)器來(lái)解決目前問(wèn)題,一方面考慮到會(huì)對(duì)企業(yè)造成比較大的現(xiàn)金流壓力,另一方面公司并沒(méi)有專門的IT和CAD團(tuán)隊(duì)。他對(duì)能不能用云解決現(xiàn)有問(wèn)題十分重視,也直接和云廠商交流過(guò),對(duì)我們的云上自動(dòng)化和Auto-Scale功能很感興趣。
實(shí)證目標(biāo)
實(shí)證參數(shù)
平臺(tái):fastone企業(yè)版產(chǎn)品
應(yīng)用:Cadence Virtuoso
適用場(chǎng)景:數(shù)?;旌想娐吩O(shè)計(jì)及仿真
云端硬件配置:Spectre仿真主要需要的是計(jì)算密集型CPU,所以平臺(tái)推薦的是計(jì)算優(yōu)化型云端實(shí)例
調(diào)度器:Slurm(關(guān)于調(diào)度器,下文會(huì)詳細(xì)講解)
技術(shù)架構(gòu)圖:
一整套即開(kāi)即用的IC研發(fā)設(shè)計(jì)環(huán)境
用戶對(duì)于在本地單機(jī)使用Virtuoso運(yùn)行仿真任務(wù),已經(jīng)非常熟悉。而對(duì)于在云上跑,用戶依然有以下疑問(wèn):什么叫一整套?從哪一步到哪一步?云上使用Virtuoso,操作方式會(huì)改變嗎?會(huì)不會(huì)很麻煩?
我們?yōu)橛脩籼峁┑漠a(chǎn)品,從登錄桌面、打開(kāi)應(yīng)用、配置仿真、提交任務(wù)、自動(dòng)上云開(kāi)機(jī)運(yùn)行任務(wù)并自動(dòng)關(guān)機(jī)、查看結(jié)果進(jìn)行調(diào)試……用戶所需要的操作與本地幾乎完全一致,每一步只需在平臺(tái)上使用鼠標(biāo)簡(jiǎn)單點(diǎn)選即可完成。我們說(shuō)的“一整套”,就是這個(gè)意思。 至于操作方式會(huì)不會(huì)改變?拿訪問(wèn)集群舉例。用戶訪問(wèn)集群,既可以通過(guò)命令行,也可以通過(guò)WebVNC圖形界面方式直接訪問(wèn)。
手動(dòng)模式訪問(wèn)集群,一共有五步,往往還需要請(qǐng)IT先配置環(huán)境 :1、在云端開(kāi)一臺(tái)機(jī)器;2、在云端安裝VNC服務(wù)并進(jìn)行配置,有幾個(gè)用戶使用就需要配置幾個(gè)賬號(hào);3、在本地安裝VNC服務(wù)并進(jìn)行配置;4、在云端開(kāi)啟VNC服務(wù);5、用戶使用各自賬號(hào)登錄客戶端VNC訪問(wèn)云端。
我們?yōu)樗杏脩裘赓M(fèi)提供WebVNC功能,自動(dòng)化創(chuàng)建到訪問(wèn)集群:1、通過(guò)Web瀏覽器登錄fastone平臺(tái);2、在Web界面新建集群、配置資源;3、在已創(chuàng)建的集群點(diǎn)擊WebVNC遠(yuǎn)程桌面圖標(biāo)(同時(shí)提供WebSSH遠(yuǎn)程命令行功能);4、跳轉(zhuǎn)到虛擬桌面,可在該桌面中操作Virtuoso。
我們還提供了統(tǒng)一的用戶認(rèn)證,不同用戶可以直接訪問(wèn)VNC,無(wú)需重新配置。這種操作方式給用戶提供了熟悉的操作環(huán)境,使其能夠快速地遠(yuǎn)程自動(dòng)化訪問(wèn)集群,避免了大量的手動(dòng)部署,使用體驗(yàn)更好。 在數(shù)據(jù)傳輸上,我們同樣為用戶提供了不改變操作習(xí)慣的DM工具,用戶無(wú)需在多套認(rèn)證系統(tǒng)之間切換,使用統(tǒng)一的身份認(rèn)證即可傳輸數(shù)據(jù),并自動(dòng)關(guān)聯(lián)云端集群進(jìn)行計(jì)算,具體看這里《CAE云實(shí)證Vol.8:LS-DYNA求解效率深度測(cè)評(píng) │ 六種規(guī)模,本地VS云端5種不同硬件配置》
當(dāng)然,好處遠(yuǎn)遠(yuǎn)不止這些。
Auto-Scale自動(dòng)伸縮就像仙女棒變大變小變漂亮
fastone通過(guò)Auto-Scale功能實(shí)現(xiàn)自動(dòng)化創(chuàng)建集群的過(guò)程,可以實(shí)現(xiàn)自動(dòng)監(jiān)控用戶提交的任務(wù)數(shù)量和資源的需求,動(dòng)態(tài)按需地開(kāi)啟所需算力資源,在提升效率的同時(shí)有效降低成本。 怎么讓仙女棒發(fā)揮作用? 先來(lái)設(shè)置一下:
下圖就是開(kāi)啟Auto-Scale功能后,用戶某項(xiàng)目一周之內(nèi)所調(diào)用云端計(jì)算資源的動(dòng)態(tài)情況。其中橙色曲線為OD實(shí)例的使用狀況,紅色曲線為SPOT的使用狀況。OD:On-Demand,按需實(shí)例。針對(duì)短期彈性需求,按小時(shí)計(jì)費(fèi),但價(jià)格比較高。SPOT:可被搶占實(shí)例,又稱競(jìng)價(jià)實(shí)例。價(jià)格最低可達(dá)到按需實(shí)例價(jià)格的10%,相當(dāng)于秒殺,手快有手慢無(wú),隨時(shí)可能被搶占中斷,需要有一定的技術(shù)實(shí)力才能使用。
兩個(gè)重點(diǎn):
第一、從圖中可以看到整個(gè)階段算力波峰為約3500核,而波谷只有650核左右。用戶使用資源是存在明顯的波峰波谷周期的。Auto-Scale功能可以根據(jù)任務(wù)運(yùn)算情況動(dòng)態(tài)開(kāi)啟云端資源,并在波峰過(guò)去后自動(dòng)關(guān)閉,讓資源的使用隨著用戶的需求自動(dòng)擴(kuò)張及縮小,最大程度匹配任務(wù)需求。當(dāng)然,用戶也可以選擇自己對(duì)最大最小值進(jìn)行設(shè)置,加以限制。
這一方面節(jié)約了用戶成本,不需要時(shí)刻保持最高峰使用資源;另一方面也最大限度保證了任務(wù)最大效率運(yùn)行。比如跑100個(gè)corner的仿真,以前只能同時(shí)跑10個(gè),要花10天,現(xiàn)在可以同時(shí)跑100個(gè),只要1天就可以完成。這兩種方式成本相同,為用戶節(jié)約出了顯著的時(shí)間差,大大縮短了任務(wù)運(yùn)行周期,提升了研發(fā)效率。
第二、我們的Auto-Scale功能支持對(duì)不同計(jì)費(fèi)模式(OD、SPOT)實(shí)例進(jìn)行自動(dòng)伸縮,OD按需實(shí)例價(jià)格通常為SPOT實(shí)例的3-10倍。Auto-Scale功能可以根據(jù)不同的用戶策略,比如成本最優(yōu)還是時(shí)間優(yōu)先,自動(dòng)化跨區(qū)、跨類型為用戶調(diào)度云資源,完成計(jì)算任務(wù)。
至于不同策略具體怎么落地執(zhí)行?相比時(shí)間優(yōu)先策略,成本優(yōu)先怎么做到降低成本最多達(dá)67%-90%?在這篇實(shí)證《生信云實(shí)證Vol.3:提速2920倍!用AutoDockVina對(duì)接2800萬(wàn)個(gè)分子》里體現(xiàn)得十分明顯。
不僅限于運(yùn)行任務(wù)期間,其實(shí)早在創(chuàng)建集群的時(shí)候,自動(dòng)化Auto-Scale過(guò)程就已經(jīng)開(kāi)始了。在這篇Bladed實(shí)證里,fastone平臺(tái)在任務(wù)的不同階段采取不同的策略應(yīng)對(duì),除任務(wù)運(yùn)行時(shí)間內(nèi)全部云資源滿負(fù)荷運(yùn)作以外,在數(shù)據(jù)處理和結(jié)果數(shù)據(jù)上傳階段均只開(kāi)啟了1-2臺(tái)機(jī)器,而其他準(zhǔn)備過(guò)程不需要開(kāi)啟機(jī)器。
習(xí)慣了LSF/SGESlurm調(diào)度器到底行不行?
為什么選擇Slurm調(diào)度器?
Virtuoso應(yīng)用原生支持的調(diào)度器有LSF和SGE。LSF作為商業(yè)軟件,由IBM提供商業(yè)支持,是半導(dǎo)體行業(yè)最常用的調(diào)度器軟件。曾經(jīng)衍生出的開(kāi)源版Openlava在2016后IBM發(fā)起的版權(quán)訴訟之后,2018年正式被禁用。SGE商業(yè)版在去年已經(jīng)隨Univa被Altair收購(gòu)。類似的,免費(fèi)開(kāi)源版已經(jīng)長(zhǎng)期無(wú)維護(hù)和更新,也存在版權(quán)風(fēng)險(xiǎn)。
LSF和SGE均按核時(shí)收費(fèi),價(jià)格不菲,如果在云端大規(guī)模使用,價(jià)格驚人,而且都需要購(gòu)買單獨(dú)的Resource Connector或Navops Launch產(chǎn)品才能支持在云上使用。
而Slurm作為調(diào)度器四大流派里唯一的純開(kāi)源派,就不受規(guī)模和費(fèi)用的限制了。而且Slurm擁有容錯(cuò)率高、支持異構(gòu)資源、高度可擴(kuò)展等優(yōu)點(diǎn),每秒可提交超過(guò)1000個(gè)任務(wù),且由于是開(kāi)放框架,高度可配置,擁有超過(guò)100種插件,因此適用性相當(dāng)強(qiáng)。所以我們優(yōu)先選擇Slurm。
關(guān)于這四家主流調(diào)度器:LSF/SGE/Slurm/PBS以及它們的9個(gè)演化版本,可以看這篇文章《億萬(wàn)打工人的夢(mèng):16萬(wàn)個(gè)CPU隨你用》,我們進(jìn)行了整體梳理和盤點(diǎn),尤其是對(duì)云的支持方面劃了重點(diǎn)。
我們是怎么實(shí)現(xiàn)的?答案是:SGE Wrapper。
Wrapper是什么呢?可以看看下圖,可以看到同樣的命令在不同的調(diào)度器之間有不同的實(shí)現(xiàn)方式:
而Wrapper就像不同調(diào)度器命令語(yǔ)言中的翻譯器,我們相當(dāng)于通過(guò)這個(gè)翻譯器,把Slurm語(yǔ)言翻譯成了Virtuoso聽(tīng)得懂的SGE語(yǔ)言,于是應(yīng)用就能正常運(yùn)行啦。
關(guān)于不同調(diào)度器的使用效果。我們?cè)?jīng)在Proteus? OPC實(shí)證場(chǎng)景四中分別使用SGE和Slurm在云端和本地分別調(diào)度2000核/5000核運(yùn)行相同OPC任務(wù)。結(jié)論是:對(duì)于計(jì)算結(jié)果無(wú)影響。
關(guān)于調(diào)度器如何在多機(jī)器多任務(wù)的情況下提升資源利用率,并進(jìn)行自動(dòng)化管理,可以看這篇《EDA云實(shí)證Vol.7:揭秘20000個(gè)VCS任務(wù)背后的“搬桌子”系列故事》
任務(wù)監(jiān)控還能搞出省錢大招?
根據(jù)我們對(duì)整個(gè)任務(wù)消耗資源狀態(tài)的監(jiān)控,發(fā)現(xiàn)運(yùn)算該組任務(wù)所使用的內(nèi)存大部分時(shí)間在5G以下,但會(huì)有極短的一段時(shí)間(不超過(guò)半小時(shí))達(dá)到17.5G。
從上圖中可以看到,Swap剩余量在短時(shí)間內(nèi)從8.6G跌到了7.1G,隨后很快回升到了8.38G,也就是說(shuō)如果沒(méi)有Swap,運(yùn)行內(nèi)存的瞬時(shí)缺口約為1.5G,勢(shì)必造成任務(wù)失敗。
Swap,交換分區(qū),就是在內(nèi)存不夠的情況下,操作系統(tǒng)先把內(nèi)存中暫時(shí)不用的數(shù)據(jù),存到硬盤的交換空間,騰出內(nèi)存來(lái)讓別的程序運(yùn)行。
如果配置16G的內(nèi)存,任務(wù)最后會(huì)因此失敗。但如果選擇配置32G內(nèi)存,著實(shí)有點(diǎn)浪費(fèi),畢竟也就超了一點(diǎn)點(diǎn)。而同等CPU資源下,配備32G內(nèi)存的價(jià)格普遍要比16G貴1.4-1.9倍。正是由于完備的監(jiān)控和任務(wù)性能評(píng)估機(jī)制,我們建議用戶在云端運(yùn)算時(shí)配備16G內(nèi)存,同時(shí)使用Swap功能渡過(guò)這段內(nèi)存波峰,以達(dá)到最高的性價(jià)比。
實(shí)證小結(jié)
1、fastone平臺(tái)支持在云端使用Virtuoso調(diào)用Spectre運(yùn)行仿真任務(wù);
2、用戶使用這套研發(fā)設(shè)計(jì)環(huán)境能閉環(huán)完成Virtuoso運(yùn)行任務(wù),且基本不改變用戶習(xí)慣;3、fastone平臺(tái)的云上自動(dòng)化模式和Auto-Scale功能能有效幫用戶縮短研發(fā)周期,同時(shí)降低使用成本;4、Slurm調(diào)度器不會(huì)影響計(jì)算結(jié)果,是更具性價(jià)比及擴(kuò)展性的選擇;5、fastone平臺(tái)擁有完備的監(jiān)控及任務(wù)性能評(píng)估機(jī)制。
本次EDA實(shí)證系列Vol.10就到這里了。下一期我們聊HFSS。
- END -