服務(wù)器集群與PBS任務(wù)管理系統(tǒng)的常用命令

天河二號超級計算機(jī)

1. 服務(wù)器集群

  • 服務(wù)器集群就是指將很多服務(wù)器集中起來一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個服務(wù)器,集群可以利用多個計算機(jī)進(jìn)行并行計算從而獲得很高的計算速度,也可以用多個計算機(jī)做備份,從而使得任何一個機(jī)器壞了整個系統(tǒng)還是能正常運(yùn)行捅儒。

  • 集群是一組獨(dú)立的計算機(jī)(節(jié)點(diǎn))的集合體,節(jié)點(diǎn)間通過高性能的互連網(wǎng)絡(luò)連接;各節(jié)點(diǎn)除了可以作為一個單一的計算資源供交互式用戶使用外巧还,還可以協(xié)同工作并表現(xiàn)為一個單一的鞭莽、集中的計算資源供并行計算任務(wù)使用。

1.1. 集群系統(tǒng)基本信息

  • 集群配制的刀片計算節(jié)點(diǎn)的CPU麸祷,GPU配制情況
  • 系統(tǒng)配備的并行文件系統(tǒng)澎怒,各組刀片機(jī)之間的網(wǎng)絡(luò)連接
  • 系統(tǒng)配制的登陸管理節(jié)點(diǎn),部署的集群管理系統(tǒng)阶牍。用戶可根據(jù)登錄節(jié)點(diǎn)IP喷面,登錄集群,提交作業(yè)走孽,編譯程序惧辈。

1.2. 集群計算資源列表

集群計算資源列表示例

  • 一般在搭建好集群之后,都會給出集群計算資源列表磕瓷,類似于上圖的幾個部分盒齿。
    首先,會將整個集群劃分為若干個隊列(Queue)困食,并根據(jù)隊列的資源配置情況進(jìn)行相應(yīng)的命名边翁; 其次,每個隊列下有若干個計算節(jié)點(diǎn)(nodes)硕盹,每個計算節(jié)點(diǎn)配制若干個CPU(ppn)符匾;最后,就是對集群的一些其他信息說明和限制情況說明莱睁,如,CPU的型號和核數(shù)芒澜,用戶可提交的作業(yè)樹仰剿,每個作業(yè)的最大運(yùn)行時間等。
  • 在往集群上投遞任務(wù)之前痴晦,首先要了解一下南吮,該任務(wù)所需的計算資源是否能被集群所滿足。

2. PBS任務(wù)管理系統(tǒng)

2.1 PBS 簡介
PBS (Protable Batch System) 是一種常用的作業(yè)管理系統(tǒng)誊酌,其他類似的還有 LSF 和 SLURM部凑。

  • PBS會根據(jù)一個集群上的可用計算節(jié)點(diǎn)的計算資源管理和調(diào)度所有計算作業(yè)(無論是批處理作業(yè)還是交互式作業(yè))。

目前有兩個版本:OpenPBS(開源)和PBSPro(商業(yè))碧浊。TORQUE:基于PBS項目的開源軟件涂邀,可以認(rèn)為是開源的OpenPBS的改進(jìn)版。主要包括:

  • PBS Server:運(yùn)行于集群的管理節(jié)點(diǎn)箱锐。創(chuàng)建并接受作業(yè)比勉、修改作業(yè)、激活調(diào)度器(PBS Scheduler)以及通知PBS執(zhí)行器(PBS Moms)執(zhí)行作業(yè)
  • PBS Scheduler:根據(jù)資源管理器獲知各個節(jié)點(diǎn)的資源狀況和系統(tǒng)的作業(yè)信息生成相應(yīng)的作業(yè)優(yōu)先級列表
  • PBS Moms:每個節(jié)點(diǎn)均有一個后臺進(jìn)程,該進(jìn)程真正啟動和停止提交到該節(jié)點(diǎn)的作業(yè)

2.2 PBS --- Torque 安裝配置步驟 (來自博客)
該部分來自于博客浩聋,只為加深對PBS的理解

1观蜗、在 master(管理結(jié)點(diǎn)上)解壓安裝包

[root@master tmp]# tar zxvf torque-2.3.0.tar.gz

2、進(jìn)入到解壓后的文件夾
配置: ./configure--with-default-server=master
編譯: make
安裝: make install

[root@master torque-2.3.0]# ./configure--with-default-server=master
[root@master torque-2.3.0]# make
[root@master torque-2.3.0]# make install
  1. 生成后面安裝計算節(jié)時需要的5個腳本文件, 作為在其它機(jī)器上安裝用的安裝包衣洁,運(yùn)行完后會生成幾個torque-package-*.sh文件
[root@master torque-2.3.0]# make packages
  1. 初始化配置
[root@master torque-2.3.0]# sudo ./torque.setup wangwei #設(shè)置wangwei用戶為管理用戶
  1. 設(shè)置計算節(jié)點(diǎn)
    配置 /var/spool/torque/server_priv/nodes 文件(如果沒有就手動添加)墓捻,指定哪些節(jié)點(diǎn)作為計算節(jié)點(diǎn),若管理節(jié)點(diǎn)不參與計算則去掉ww-master
ww-master np=8
ww-slave1 np=8
ww-slave2 np=8
  1. 這里需要說明一下坊夫,Torque主要是由三個主要部件組成
    pbs_server PBS服務(wù)守護(hù)進(jìn)程砖第,負(fù)責(zé)接收作業(yè)提交,位于服務(wù)節(jié)點(diǎn)上
    pbs_sched PBS調(diào)度守護(hù)進(jìn)程践樱,負(fù)責(zé)調(diào)度作業(yè)厂画,位于服務(wù)節(jié)點(diǎn)上
    pbs_mom PBS MOM守護(hù)進(jìn)程, 負(fù)責(zé)監(jiān)控本機(jī)并執(zhí)行作業(yè)拷邢,位于所有計算節(jié)點(diǎn)上
# sudo pbs_server   //在服務(wù)器節(jié)點(diǎn)執(zhí)行
# sudo pbs_sched   //在服務(wù)器節(jié)點(diǎn)執(zhí)行
# sudo pbs_mom  //在計算節(jié)點(diǎn)執(zhí)行
# sudo trqauthd 

主要步驟大概就這么多袱院,不過一般也不需要自己去配置和安裝。
以上所有代碼均來自別人的博客

linux下瞭稼,源碼的安裝一般由3個步驟組成:配置(configure)忽洛、編譯(make)、安裝(make install)
./configure的作用是檢測系統(tǒng)配置环肘,生成makefile文件欲虚,以便你可以用make和make install來編譯和安裝程序。
./configure --prefix --with悔雹;其中--prefix指的是安裝路徑复哆,--with指的是安裝本文件所依賴的庫文件
如果不指定prefix,則可執(zhí)行文件默認(rèn)放在/usr/local/bin腌零,庫文件默認(rèn)放在/usr/local/lib梯找,配置文件默認(rèn)放在/usr/local/etc。其它的資源文件放在/usr /local/share

./configure是源代碼安裝的第一步益涧,主要的作用是對即將安裝的軟件進(jìn)行配置锈锤,檢查當(dāng)前的環(huán)境是否滿足要安裝軟件的依賴關(guān)系,但并不是所有的tar包都是源代碼的包闲询,
你先ls久免,看有沒有configure或者makefile文件。
如果有configure扭弧,就./configure阎姥,有很多參數(shù),看樓下的吧鸽捻。如果系統(tǒng)環(huán)境合適丁寄,就會生成makefile氨淌,否則會報錯。
如果有makefile伊磺,就直接make盛正,然后make install。

2.3 常用PBS命令

  • 查看節(jié)點(diǎn)狀態(tài)
    pbsnodes (查看所有節(jié)點(diǎn))
    pbsnodes -l free (查看空閑節(jié)點(diǎn))
    pbsnodes 某節(jié)點(diǎn) (查看某節(jié)點(diǎn)狀態(tài))

  • 節(jié)點(diǎn)切換
    ssh 某節(jié)點(diǎn) (轉(zhuǎn)到某節(jié)點(diǎn))

  • 退出節(jié)點(diǎn)
    exit (離開節(jié)點(diǎn))

  • 查看任務(wù)運(yùn)行狀態(tài)
    qstat (列出所有作業(yè)運(yùn)行狀態(tài))

主要會包括以下幾個方面信息:

  • Job ID 任務(wù)ID號
  • Name 任務(wù)腳本名稱
  • User 用戶名
  • Time Use 任務(wù)運(yùn)行時間
  • S State 任務(wù)狀態(tài)
    * B 只用于任務(wù)向量屑埋,表示任務(wù)向量已經(jīng)開始執(zhí)行
    * E 任務(wù)在運(yùn)行后退出
    * H 任務(wù)被服務(wù)器或用戶或者管理員阻塞
    * Q 任務(wù)正在排隊中豪筝,等待被調(diào)度運(yùn)行
    * R 任務(wù)正在運(yùn)行
    * S 任務(wù)被服務(wù)器掛起,由于一個更高優(yōu)先級的任務(wù)需要當(dāng)前任務(wù)的資源
    * T 任務(wù)被轉(zhuǎn)移到其它執(zhí)行節(jié)點(diǎn)了
    * U 由于服務(wù)器繁忙摘能,任務(wù)被掛起
    * W 任務(wù)在等待它所請求的執(zhí)行時間的到來(qsub -a)
    * X 只用于子任務(wù)续崖,表示子任務(wù)完成
    * C 表示程序正在被關(guān)閉,一般是程序運(yùn)行錯誤团搞,報錯
  • Queue 任務(wù)執(zhí)行所在隊列
    qstat -q (列出隊列使用信息)
    qstat -n (列出隊列中使用的節(jié)點(diǎn))
    qstat -f jobid (查看jobid任務(wù)的詳細(xì)信息)

  • 提交任務(wù)到集群
    qsub 文件名.pbs/.sh (提交任務(wù))
    echo "script.py" | qsub -l q batch1 -l nodes=1:ppn=2 (直接在終端設(shè)置PBS資源命令严望,并在此資源下提交可執(zhí)行腳本)

  • 任務(wù)掛起,釋放逻恐,重新加載
    qhold:掛起作業(yè)
    qrls:釋放掛起的作業(yè)
    qrerun:重新運(yùn)行作業(yè)

  • 任務(wù)更改
    qmove:將作業(yè)移動到另一個隊列
    qalter: 更改作業(yè)資源屬性
    修改pbs隊列:
    將任務(wù)號為JOBID的任務(wù)像吻,轉(zhuǎn)移到Batch5 隊列繼續(xù)排隊
    qalter <JOBID> -W queue=Batch5
    改變cpu數(shù)量:
    qalter -l nodes=1:ppn=10 <JOBID>
    qalter pbs

  • 刪除任務(wù)
    qdel jobid (取消任務(wù))

2.4 qsub 提交任務(wù)

2.4.1 通過終端提交任務(wù)

  • 通過命令行參數(shù)傳遞給 qsub 命令
echo "python script.py -i inputdir -o outdir " | qsub -q Batch1 -l nodes=1:ppn=1 -l mem=40gb -N jobname

執(zhí)行script.py 腳本, 通過pbs投遞任務(wù), 任務(wù)提交到Batch1隊列复隆,所需資源為拨匆,1個節(jié)點(diǎn),節(jié)點(diǎn)使用1個cpu, 40GB物理內(nèi)存挽拂,該任務(wù)命名jobname

  • -N 任務(wù)名稱
  • -q 指定Queue
  • -l resource_list 指定任務(wù)所需資源
    一般包括:
    * cput=N惭每, 請求N秒CPU時間,N也可以寫成hh:mm::ss亏栈,單位分別是 時:分:秒
    * mem=N[K|M|G|][B|W], 請求N大小的內(nèi)存
    * nodes=N, N個節(jié)點(diǎn)
    * ppn=M, 每個節(jié)點(diǎn)需要M個cpu
  • -e path 將標(biāo)準(zhǔn)錯誤重定向到path
  • -o path 標(biāo)準(zhǔn)輸出重定向到path
  • -j join 將標(biāo)準(zhǔn)輸出信息與標(biāo)準(zhǔn)錯誤信息合并到同一個文件join中去
  • -p priority 任務(wù)優(yōu)先級台腥,整數(shù),無定義默認(rèn)0
  • -m mail_options mail_option =a:左右abort時給用戶發(fā)信绒北;=b:作業(yè)開始時發(fā)信黎侈;=e:作業(yè)結(jié)束時發(fā)信. 默認(rèn)=a

2.4.2 PBS通過sh腳本執(zhí)行命令

  • 在 PBS 腳本中以 #PBS 方式指定
    在PBS系統(tǒng)中,用戶使用qsub命令提交用戶程序镇饮。用戶運(yùn)行程序的命令 以及 PBS環(huán)境變量設(shè)置 共同組成了PBS作業(yè)腳本蜓竹。
  • 注釋為 “#” 開頭
  • PBS指令為 “#PBS” 開頭
  • shell命令 (運(yùn)行腳本的命令)

例如 run.sh

#參數(shù)解析
#指定節(jié)點(diǎn)數(shù)目 ppn指每個節(jié)點(diǎn)運(yùn)行的cpu數(shù)量(4個小節(jié)點(diǎn)箕母,每個48個CPU)
#PBS -l nodes=1:ppn=16
#指定合并到標(biāo)準(zhǔn)輸出文件中
#PBS -j oe
#設(shè)置程序運(yùn)行的最大時間192小時
#PBS -l walltime=192:00:00
#指定qsub的所有環(huán)境變量都傳遞到批處理作業(yè)中
#PBS -V
#輸出文件
#PBS -o /public/home/tang/chaim/back_info/$jobname.out
#錯誤輸出文件
#PBS -e /public/home/tang/chaim/back_info/$jobname.err
cd PBS_O_OUTDIR
# 程序執(zhí)行命令
python script.py -i inputdir -o outdir 
# 執(zhí)行腳本
qsub run.sh
# 制定命令開始運(yùn)行的時間  
qusb -a 070000 run.s  #7天后運(yùn)行程序储藐,此時是處于W狀態(tài)(等待狀態(tài))
qsub -a 2400 run.s #24h后運(yùn)行程序

2.4.3 通過交互式的方式執(zhí)行任務(wù)

  • qsub -I
  • qsub -I -q Batch1 -l nodes=1:ppn=1 -l mem=80gb -N jobname
[#11#Rd01@login ~]$
$qsub -I -q Batch1 -l nodes=1:ppn=1 -l mem=80gb -N jobname
qsub: waiting for job 1230615.admin to start
qsub: job 1230615.admin ready

[#1#Rd01@comput4 ~]$
$

2.5 PBS常用環(huán)境變量

  • PBS_ENVIRONMENT:批處理作業(yè)為 PBS_BATCH,交互式作業(yè)為 PBS_INTERACTIVE
  • PBS_JOBID:PBS 系統(tǒng)給作業(yè)分配的標(biāo)識號
  • PBS_JOBNAME:用戶指定的作業(yè)名稱
  • PBS_NODEFILE:包含作業(yè)所用計算節(jié)點(diǎn)的文件名
  • PBS_QUEUE:作業(yè)所執(zhí)行的隊列名稱
  • PBS_O_HOME:執(zhí)行 qsub 命令的 HOME 環(huán)境變量值
  • PBS_O_PATH:執(zhí)行 qsub 命令的 PATH 環(huán)境變量值
  • PBS_O_SHELL:執(zhí)行 qsub 命令的 SHELL 環(huán)境變量值
  • PBS_O_HOST:執(zhí)行 qsub 命令節(jié)點(diǎn)名稱
  • PBS_O_QUEUE:提交的作業(yè)的最初隊列名稱
  • PBS_O_WORKDIR:執(zhí)行 qsub 命令所在的絕對路徑

Ref

  1. https://blog.csdn.net/pursuitbeauty/article/details/42642117
  2. http://www.reibang.com/p/062c58bea2a2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
  3. http://www.reibang.com/p/682f1f64e53c
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嘶是,一起剝皮案震驚了整個濱河市钙勃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聂喇,老刑警劉巖辖源,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚携,死亡現(xiàn)場離奇詭異,居然都是意外死亡克饶,警方通過查閱死者的電腦和手機(jī)酝蜒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矾湃,“玉大人亡脑,你說我怎么就攤上這事⊙荆” “怎么了霉咨?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拍屑。 經(jīng)常有香客問我途戒,道長,這世上最難降的妖魔是什么僵驰? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任喷斋,我火速辦了婚禮,結(jié)果婚禮上矢渊,老公的妹妹穿的比我還像新娘继准。我一直安慰自己,他們只是感情好矮男,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布移必。 她就那樣靜靜地躺著,像睡著了一般毡鉴。 火紅的嫁衣襯著肌膚如雪崔泵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天猪瞬,我揣著相機(jī)與錄音憎瘸,去河邊找鬼。 笑死陈瘦,一個胖子當(dāng)著我的面吹牛幌甘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痊项,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼锅风,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鞍泉?” 一聲冷哼從身側(cè)響起皱埠,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咖驮,沒想到半個月后边器,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體训枢,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年忘巧,在試婚紗的時候發(fā)現(xiàn)自己被綠了恒界。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡砚嘴,死狀恐怖仗处,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枣宫,我是刑警寧澤婆誓,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站也颤,受9級特大地震影響洋幻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翅娶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一文留、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竭沫,春花似錦燥翅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谎势,卻和暖如春凛膏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脏榆。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工猖毫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人须喂。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓吁断,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坞生。 傳聞我的和親對象是個殘疾皇子仔役,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容