CST如何安裝和設(shè)置分布式計(jì)算?
作者 | Wang Yuanteng
最近常有用戶(hù)問(wèn)到分布式計(jì)算設(shè)置相關(guān)問(wèn)題。其實(shí),幫助文檔中詳細(xì)介紹了分布式計(jì)算(Distributed Computing,簡(jiǎn)稱(chēng)DC)設(shè)置的方法,今天將DC設(shè)置的幾部分關(guān)鍵內(nèi)容總結(jié)一下。
CST支持多核、GPU、DC和MPI四種高性能計(jì)算方式。DC支持互相獨(dú)立的計(jì)算任務(wù),如頻域求解器不同頻點(diǎn)的計(jì)算、參數(shù)掃描或優(yōu)化的計(jì)算、連續(xù)激勵(lì)多個(gè)端口。下面詳細(xì)介紹DC的系統(tǒng)架構(gòu)、安裝和設(shè)置方式。
DC系統(tǒng)架構(gòu)
在進(jìn)行DC設(shè)置之前,我們首先需要了解一下DC系統(tǒng)架構(gòu):
工作原理主要分成以下幾個(gè)步驟:
Frontend即用戶(hù)前端,用戶(hù)從Frontend向DC Main Controller提交仿真作業(yè)。
DC Main Controller作為一個(gè)排隊(duì)系統(tǒng),根據(jù)在求解器設(shè)置中輸入的條件選擇Solver Server(DC Main Controller可以連接任意數(shù)量的Frontend和DC Solver Server)。
DC Main Controller通過(guò)網(wǎng)絡(luò)將仿真任務(wù)發(fā)送到可用的選定服務(wù)器上。提交任務(wù)依據(jù)“先到先得”原則。
DC Solver Servers的作用是保持和MainController的通信,并在本地運(yùn)行和控制求解器的可執(zhí)行文件。
作業(yè)在DC Solver Server上一旦完成,就會(huì)被發(fā)送回DC Main Controller,排隊(duì)等待最終傳輸回相應(yīng)Frontend。
Frontend提交仿真作業(yè)給分布式計(jì)算系統(tǒng)后,可以斷開(kāi)(即關(guān)閉)CST前端。當(dāng)Frontend再次連接到系統(tǒng),它將自動(dòng)接收當(dāng)前打開(kāi)的項(xiàng)目所有之前計(jì)算的仿真結(jié)果(這里Main Controller必須可以訪問(wèn)lincense server)。
安裝和設(shè)置
Main Controller只需要安裝在網(wǎng)絡(luò)中的一臺(tái)計(jì)算機(jī)上,該計(jì)算機(jī)不一定要安裝CST Studio Suite其他組件。
Solver Server需要安裝在網(wǎng)絡(luò)中遠(yuǎn)程運(yùn)行仿真的每臺(tái)計(jì)算機(jī)上,且計(jì)算機(jī)需要安裝CST Studio Suite程序。
實(shí)際上,用戶(hù)安裝CST時(shí)如果選擇typical,DC Main Controller和DC Solver Server都會(huì)被安裝。并且,DC Main Controller和DC Solver Server安裝后會(huì)有一些默認(rèn)設(shè)置,為了使DC更夠正常使用,我們需要搞明白幾個(gè)關(guān)鍵的設(shè)置。
DC Main Controller
1:指定TCP/IP服務(wù)器端口,默認(rèn)為36300。Main Controller將使用該端口與Frontend和Solver Server通信。需確保防火墻已配置,使該端口可以正常訪問(wèn)。
2:需要指定一個(gè)工作目錄,所有仿真數(shù)據(jù)存儲(chǔ)在該目錄,直到仿真結(jié)果已成功傳輸回前端。強(qiáng)烈建議使用本地硬盤(pán),避免不必要的網(wǎng)絡(luò)流量。該文件夾中存儲(chǔ)的數(shù)據(jù)量可能會(huì)很大,需確保有足夠的磁盤(pán)空間。
3: 補(bǔ)丁目錄,該目錄用作自動(dòng)更新補(bǔ)丁包,允許將CST服務(wù)包自動(dòng)分發(fā)和安裝到所有Solver Server。
該界面還包括安全設(shè)置,具體可以查閱help進(jìn)行設(shè)置。
單擊Start Server即啟動(dòng)DC Main Controller服務(wù)。
DC Solver Server
1:指定服務(wù)器端口號(hào),默認(rèn)為38300。該端口將用于求解器可執(zhí)行文件和Solver Server通信以及Main Controller和Solver Server之間的通信。
2:指定工作目錄,當(dāng)前仿真任務(wù)的數(shù)據(jù)將暫存在該目錄下。強(qiáng)烈建議使用本地硬盤(pán),以避免不必要的網(wǎng)絡(luò)流量,因?yàn)閿?shù)據(jù)傳輸過(guò)程會(huì)降低求解器性能。確保有足夠的磁盤(pán)空間來(lái)保存數(shù)據(jù)。
3:指定DC Main Controller計(jì)算機(jī)的名稱(chēng)或IP地址,以及它的TCP/IP端口地址。點(diǎn)擊Start Server,Solver Server將自動(dòng)連接到主控制器,即可以在Main Controller連接到的服務(wù)器列表中看到該服務(wù)器,如下圖。
指定DC Main Controller非常重要,前面所有內(nèi)容不改都可以用,但這里不改可能會(huì)錯(cuò)。默認(rèn)的DC Main Controller是localhost,也就是本機(jī)。所以,當(dāng)網(wǎng)絡(luò)中作為計(jì)算的機(jī)器安裝了Main Controller的時(shí)候,需要將本機(jī)的Main Controller服務(wù)停止掉,這里修改成實(shí)際使用的Main Controller機(jī)器。
根據(jù)以上信息我們可以知道,從設(shè)置角度來(lái)說(shuō),F(xiàn)rontend和Main Controller可以在同一臺(tái)機(jī)器上,甚至它們也可以和其中一臺(tái)Solver Server在同一臺(tái)機(jī)器上(但最好不要)。大家可以根據(jù)自己的資源情況和使用需求靈活設(shè)置。
4:指定本地計(jì)算機(jī)上運(yùn)行的服務(wù)器的數(shù)量,即同時(shí)執(zhí)行的求解器數(shù)量,默認(rèn)為1。設(shè)置服務(wù)器數(shù)量后,點(diǎn)擊Select CPU device或Select Hardware acceleration device,可以將CPU或GPU分配給多個(gè)不同的Solver Server。
Set Priorities可以為每個(gè)求解器服務(wù)器設(shè)置優(yōu)先級(jí),數(shù)字越小,優(yōu)先級(jí)越高。Max number of allowed threads per server 如字面意思,可以指定每個(gè)服務(wù)器允許的最大線(xiàn)程數(shù),限制每個(gè)求解器運(yùn)行所使用的CPU核數(shù)。注意,實(shí)際物理CPU核的數(shù)量其實(shí)是這個(gè)設(shè)置的上限。
另外,即使解算器服務(wù)器正在運(yùn)行,上述大多數(shù)設(shè)置也可以修改。
設(shè)置完成之后,回到MainController界面:
在這里可以找到有關(guān)已連接的Solver Server的信息,如可用內(nèi)存、已安裝的CPU、已安裝的硬件加速設(shè)備和操作系統(tǒng)信息。單擊Active可以啟用或禁用特定的Solver Server,單擊PP可以要啟用或禁用特定服務(wù)器上的遠(yuǎn)程后處理。這樣就完成了DC系統(tǒng)相關(guān)的設(shè)置,接下來(lái)去仿真任務(wù)中調(diào)用即可。
Frontend
在仿真工程的Solver->Accleration->DC進(jìn)行設(shè)置,即可以激活DC。DC支持三種應(yīng)用方式:參數(shù)掃描/優(yōu)化,分布激勵(lì)計(jì)算,遠(yuǎn)程計(jì)算。
根據(jù)仿真需要,可以勾選DC使用的方式和設(shè)置數(shù)量,可參考FAQ049:如何設(shè)置硬件加速選項(xiàng):GPU/DC/MPI/token DC部分(這里需要注意使用DC所帶來(lái)的的token消耗數(shù)量為所使用服務(wù)器CPU和GPU消耗token數(shù)總和),點(diǎn)擊OK,回到求解器界面點(diǎn)擊Start,即可以激活分布式計(jì)算。
如果分布式作業(yè)正在運(yùn)行,則可以在自動(dòng)打開(kāi)的“分布式計(jì)算狀態(tài)”窗口中查看進(jìn)度。
更加詳細(xì)的DC設(shè)置方法或者相關(guān)問(wèn)題,可以仔細(xì)閱讀幫助文檔。本號(hào)之前也介紹過(guò)一些相關(guān)內(nèi)容,感興趣可以回顧:
如何設(shè)置分布式計(jì)算的共享儲(chǔ)存
如何設(shè)置分布式計(jì)算(Distributed Computing)的 TCP-IP子網(wǎng)