這幾年,我們已經(jīng)試用過很多有趣的ARM小電腦了。
萬萬沒想到,我竟然還獲得了超算服務(wù)器的試用資格。
10月末的時(shí)候,我去了一趟西安,在工程熱物理會議上做了一個小小的報(bào)告。會議間隙里,“并行?”給我推薦了一下他們的超算服務(wù)器。
與一般的多節(jié)點(diǎn)高性能計(jì)算服務(wù)器不同的是,它們的服務(wù)器不需要把設(shè)備運(yùn)到本地,而是可以在云端操作。這種云超算平臺的名字叫超算網(wǎng)格,是基于國家高性能計(jì)算環(huán)境與云計(jì)算技術(shù),提供多家各大超算與數(shù)據(jù)中心的計(jì)算資源、優(yōu)化網(wǎng)絡(luò)、應(yīng)用與工具、軟件與服務(wù)的一站式平臺,降低了高性能計(jì)算應(yīng)用成本,用戶不管身居何處,都能對超算“觸手可及”。
超算云使用的是linux操作系統(tǒng),這個與哈工大的計(jì)算服務(wù)器相同,但多了云端桌面,方便了遠(yuǎn)程操作。下面是云端桌面的客戶端界面。
客戶端帶有網(wǎng)速測試功能。因?yàn)楸镜?a href="http://www.www27dydycom.cn/v/tag/1247/" target="_blank">電腦只作為客戶端,并不參與計(jì)算,所以云端對本地的網(wǎng)速并沒有太高的要求,只要不影響正常操作就行。
用putty連接后,可以查看cpu和內(nèi)存參數(shù)。當(dāng)然,這里只能查看到其中一個節(jié)點(diǎn)的20個核。
實(shí)際使用中我們可以操作多個節(jié)點(diǎn)。比如8個節(jié)點(diǎn),每個節(jié)點(diǎn)20核,就有160個核心可以用了。
服務(wù)器已經(jīng)預(yù)先裝上了常用的軟件和并行計(jì)算庫,其中GCC版本是4.8.5
申請賬號開通后,安裝上fluent軟件,就可以體驗(yàn)云端超算了。
我們把算例文件上傳一下。文件稍大,是個6百萬網(wǎng)格的流場計(jì)算算例。
我們可以以多種方式向服務(wù)器提交計(jì)算工作
其中,srun命令屬于交互式提交作業(yè),有屏幕輸出,但容易受網(wǎng)絡(luò)波動影響,斷網(wǎng)或關(guān)閉窗口會導(dǎo)致作業(yè)中斷。
我們用sbatch 提交腳本。這種方式不受本地網(wǎng)絡(luò)波動影響,提交作業(yè)后可以關(guān)閉本地電腦。由于sbatch命令沒有屏幕輸出,默認(rèn)輸出日志為提交目錄下的 slurm-xxx.out文件,我們可以使用tail -f slurm-xxx.out 實(shí)時(shí)查看日志,其中 xxx 為作業(yè)號。
舉個例子,把一個名字叫fluent.sh的計(jì)算腳本提交,命令可以這樣寫:sbatch fluent.sh
在向服務(wù)器提交計(jì)算任務(wù)前,先查看一下計(jì)算節(jié)點(diǎn)的空閑情況。我們發(fā)現(xiàn)還有六十多個節(jié)點(diǎn)處于閑置狀態(tài),妥妥地夠用啦。
我們先寫個fluent計(jì)算使用的jou文件,里面定義了算例文件名,和計(jì)算迭代次數(shù)。
這是個定常流動的計(jì)算算例,本身計(jì)算量就比非定常計(jì)算要小。
然后這里只做速度測試,所以只迭代10次。這種定常計(jì)算,正常一般都是1萬次以上迭代才能獲得一個收斂的結(jié)果。
然后我們寫一下計(jì)算腳本,分別使用不同的節(jié)點(diǎn)數(shù)量進(jìn)行計(jì)算速度測試。
第一個腳本使用2個節(jié)點(diǎn),共40個核心并行計(jì)算
第二個腳本使用4個節(jié)點(diǎn),共80個核心并行計(jì)算
第三個腳本使用8個節(jié)點(diǎn),共160個核心并行計(jì)算
接著,提交作業(yè),然而發(fā)現(xiàn)了一個小問題。Unix的文本換行格式與windows不一樣。這個只要用dos2uninx命令轉(zhuǎn)一下就好了。
下面,正式提交第一個工作。
下圖中,我們可以發(fā)現(xiàn),兩節(jié)點(diǎn)40個核心的計(jì)算速度還不錯的。大約每3秒完成一次迭代步(剛開始,剩余時(shí)間估計(jì)還沒穩(wěn)定,后來就穩(wěn)定了)。
這種多機(jī)并行的計(jì)算環(huán)境,CPU與內(nèi)存之間的交互很快,然而機(jī)群節(jié)點(diǎn)間的網(wǎng)絡(luò)傳輸往往會形成瓶頸,即使是千兆網(wǎng)絡(luò)往往也會讓性能大打折扣。我們用ip命令會發(fā)現(xiàn)這種云超算使用了一種叫IB的網(wǎng)卡。
使用ethtool命令可以看到這個IB網(wǎng)卡的具體參數(shù),速度達(dá)到了56Gb/s,已經(jīng)超過1萬兆啦。難怪并行速度那么快呢。
下一步,我們繼續(xù)提交第二個測試算例,使用4節(jié)點(diǎn)的80核并行計(jì)算。
下圖的計(jì)算結(jié)果可看出,4節(jié)點(diǎn)80核的計(jì)算條件下,每步迭代時(shí)間在1至2秒之間。
再提交第三個160核的計(jì)算任務(wù)吧。
這一步,發(fā)生了一些郁悶的事情。當(dāng)申請的節(jié)點(diǎn)比較多時(shí),需要排隊(duì)。
我們排了幾分鐘,還沒排上,等不及了,最后就取消這個任務(wù)了。
最后,我們模擬正常的計(jì)算情況,來一次1萬步的迭代計(jì)算。
其中計(jì)算資源使用4個節(jié)點(diǎn),80核并行。
算了幾步以后,通過下面這個輸出文件,我們可以發(fā)現(xiàn)計(jì)算總耗時(shí)約在4小時(shí)左右,也就是說平均約1.4秒就能完成一個迭代步。
以上就是并行?超算云服務(wù)的試用體驗(yàn)。
我覺得,這種服務(wù)器的性能是非常好的,內(nèi)存大,CPU速度快,CPU核心數(shù)量多,甚至可以用50個節(jié)點(diǎn)進(jìn)行一千核的并行計(jì)算(只是需要排隊(duì))。當(dāng)然,這些都不是最大的亮點(diǎn)了,最大的亮點(diǎn)是在云平臺。
我們不用擔(dān)心占地面積是否過大,不用擔(dān)心供電功率是否足夠,更不用擔(dān)心噪音擾民,只要通過云端操作就可以把需要巨大計(jì)算量的工作給搞定了。
評論