CST中如何使用分布式計算進行參數(shù)掃描
作者 | Wang Yuanteng
我們知道,分布式計算非常適合進行參數(shù)掃描、優(yōu)化這種互相獨立的任務(wù)。之前我們介紹了,F(xiàn)AQ117:如何安裝和設(shè)置分布式計算?
但不少用戶對參數(shù)掃描的設(shè)置仍有疑惑,下面我們將詳細(xì)介紹設(shè)置方法。
1:參掃選項。以時域求解器設(shè)置界面為例,在solver->Acceleration->DC,勾選Parameter sweep,輸入同時掃描的參數(shù)數(shù)量,該值直接影響下方token所需數(shù)量。
DC properties設(shè)置:
這里可以選擇use global setting,也就是所用solver server跟main controller中所設(shè)一致,main controller可以修改(Change global settings…),指向不同的main controller機器。
這兩個界面都有Loacl host information供參考。
或者我們可以點擊Use specified DC solver server去指定要使用的solver server。
2. 了解基本設(shè)置后,我們來說明下所需token數(shù)量。DC參數(shù)數(shù)量(N)指在多個solver server上同時進行計算的job數(shù)量,一般來說,應(yīng)設(shè)為小于等于總的server數(shù)量,那么所消耗的token數(shù)為N個節(jié)點CPU和GPU所需token的總和,在設(shè)置界面下方token
usage給出顯示。
當(dāng)所設(shè)參數(shù)數(shù)量大于實際solver數(shù)量時,界面上所顯示的token數(shù)由參數(shù)數(shù)量N計算得到,但實際同時計算的參數(shù)和對應(yīng)消耗的token由solver server數(shù)量決定,所以這么做不利于直接看所需token數(shù)量。
驗證一下:
條件所限,這里將兩臺電腦分成多個節(jié)點進行計算,PC1有6個節(jié)點,PC2有2個節(jié)點,共8個節(jié)點,設(shè)成8個參數(shù)。
從progress可以看到,任務(wù)被分配到2臺電腦的8個節(jié)點上進行計算。
從Main control可以看到全部節(jié)點都在running job。
如前面求解器界面顯示,使用了 2個S2T。
雖然這種情況下,兩臺電腦實際只有2顆CPU,但在8個server同時跑了8個job,每個server設(shè)為1個CPU,那么總共使用了8個CPU,按此計算得到token數(shù)量。有點用S2T換S2P的意思。
3. 最后一個問題,假如有80個參數(shù),但只有8個server,DC參數(shù)設(shè)為8,那會怎么樣呢?Main
Controller會分批處理這80個job,如下在progess看到waiting和pending狀態(tài)。