如何在集群環(huán)境中使用fluent計(jì)算——fluent并行計(jì)算初步(超小白入門,老鳥略過:


現(xiàn)在國內(nèi)的開放式機(jī)群環(huán)境越來越多,許多都部署了fluent(大好事),不過還是有許多人不太清楚如何利用這些有用的資源。這里結(jié)合我所在單位的情況做一個(gè)簡單的介紹,其他的機(jī)群環(huán)境大同小異。

1、          什么是機(jī)群?有什么特點(diǎn)?

機(jī)群又叫集群,當(dāng)然就是許多的計(jì)算機(jī)(廢話),因?yàn)闄C(jī)器太多了,又需要協(xié)同工作,所以需要按照一定的方式來管理,管理的結(jié)構(gòu)形式叫做拓?fù)洌ㄟ@個(gè)不用管)。機(jī)群使用的電腦是刀片(又薄又長的機(jī)箱)形式(為了便于插入機(jī)柜),一個(gè)刀片一般稱為一個(gè)節(jié)點(diǎn)。

一般而言,機(jī)群會(huì)分為三種節(jié)點(diǎn):管理節(jié)點(diǎn)(若干臺(tái)),編譯節(jié)點(diǎn)(若干臺(tái)),計(jì)算節(jié)點(diǎn)(其余全部)。這三種節(jié)點(diǎn)的配置略有不同(廢話),管理節(jié)點(diǎn)主要用來存儲(chǔ)使用機(jī)群的用戶的信息,如名字,密碼,可以使用機(jī)器數(shù)的權(quán)限,用戶狀態(tài)等等;編譯節(jié)點(diǎn)一般用來預(yù)查程序故障,用戶的程序先在這里試運(yùn)行,查看是否與系統(tǒng)兼容等;計(jì)算節(jié)點(diǎn)用來直接計(jì)算其他節(jié)點(diǎn)提供來的程序。

就配置而言,管理節(jié)點(diǎn)和編譯節(jié)點(diǎn)一般相同,會(huì)部署軟件環(huán)境;計(jì)算節(jié)點(diǎn)只會(huì)部署簡單的必要運(yùn)行文件。計(jì)算機(jī)點(diǎn)之間會(huì)采用高速交換機(jī),速度可達(dá)幾十GB/s,如IB等;計(jì)算節(jié)點(diǎn)與編譯、登陸節(jié)點(diǎn)之間采用普通的萬兆交換機(jī)。

2、          如何使用機(jī)群?

機(jī)群中一般采用linux操作系統(tǒng)來操作(多用戶情況下效率高),用戶會(huì)通過遠(yuǎn)程登錄軟件(如xshell)來登錄到登陸節(jié)點(diǎn)進(jìn)行個(gè)人的操作(一般會(huì)通過VPN網(wǎng)絡(luò)加密數(shù)據(jù)傳輸)。

Linux集群將程序任務(wù)分解發(fā)送到計(jì)算節(jié)點(diǎn)上時(shí),是通過LSF作業(yè)調(diào)度系統(tǒng)(也有其他的,如PBS等)來實(shí)現(xiàn)的,這個(gè)系統(tǒng)的作用是使整個(gè)機(jī)群負(fù)載均衡,便于管理,所以我們使用fluent也要通過這個(gè)系統(tǒng)。在成熟的集群中,用戶登錄之后,默認(rèn)便可以使用作業(yè)調(diào)度系統(tǒng)了。使用時(shí),除了常見的linux命令以外,調(diào)度系統(tǒng)也有一些簡單的命令,這個(gè)一般會(huì)有手冊介紹,常用的就3、5個(gè),很好記。

3、          如何在集群中使用fluent?

因?yàn)?/span>fluent是成熟的封裝好的商業(yè)軟件,所以用戶直接使用命令調(diào)用即可。

但是因?yàn)榇蟛糠值?/span>linux下的遠(yuǎn)程登錄是不支持圖形界面的,所以我們看不到在windows下的熟悉界面,無法進(jìn)行操作。其實(shí),fluent最早也是linux下的軟件,它提供了一種jou腳本來操作各種命令(即幫助中的TUI命令),我們在windows的圖形界面中,也可以在控制臺(tái)窗口中查看如何使用。這樣,我們在啟動(dòng)fluent軟件時(shí),指定它的jou執(zhí)行腳本即可使軟件按照我們的意圖來進(jìn)行操作了。如果在幫助中找太慢,可以在windowsfluent圖形界面下,右下角控制臺(tái)中用回車鍵顯示文字命令,q鍵返回。

4、          實(shí)例

這里給出一個(gè)在LSF調(diào)度系統(tǒng)中使用fluent的實(shí)例:

首先,使用bsub命令提交LSF腳本(名字為fluent.lsf),在命令窗口中鍵入:bsub fluent.lsf即可。

腳本內(nèi)容如下:

#!/bin/sh  (這句話是說此腳本使用/bin/sh來解釋執(zhí)行,小白可以略過)

APP_NAME=fluent  (這句話是說此腳本調(diào)用名字為fluent的集群排序提交隊(duì)列,小白繼續(xù)略過)

NP=2 (這句話是說此腳本的任務(wù)將調(diào)用2個(gè)CPU core來執(zhí)行)

NP_PER_NODE=1 (這句話是說此腳本的任務(wù)將在分配用來執(zhí)行任務(wù)的每個(gè)節(jié)點(diǎn)上調(diào)用1個(gè)CPU core來執(zhí)行)

RUN="fluent 2ddp -g -i fluent.jou -r15.0.0 -pib –mpi=pcmpi" (這句話是說此腳本的執(zhí)行命令以及參數(shù),2ddp 是指二維雙精度類型計(jì)算,這個(gè)大家應(yīng)該熟悉了;fluent.jou就是我們使用的fluent命令執(zhí)行腳本的名字)

 

fluent.jou腳本內(nèi)容實(shí)例:

/file/read-case ./boil-unstdy.cas (讀取cas文件,boil-unstdy.cas

/file/read-data ./boil-unstdy.dat  (讀取dat文件,boil-unstdy.dat

define/user-defined/compiled-function/compile (定義編譯函數(shù)庫并制定編譯文件)

libudf

yes

boiling-rpi-model.c

 

 

define/user-defined/compiled-function/load (加載編譯函數(shù)庫)

libudf

/file/auto-save/data-frequency 100 (自動(dòng)保存)

/solve/initialize/initialize-flow(初始化)

/solve/dual-time-iterate (求解循環(huán)設(shè)置)

500

20

/file/read-data ./boil-unsteady-out.dat (保存結(jié)果)

exit (退出fluent

yes

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

3
2