PBS 作業(yè)管理系統(tǒng)

上一篇中我們非常簡單地介紹了在 C 語言中嵌入 mpi4py 程序的方法哗脖。

前面我們所給出的各個例程一般都是在單臺計算機上直接使用 mpiexec 或 mpirun 執(zhí)行的伐憾,但是在實際應(yīng)用中冶伞,對規(guī)模比較大的高性能計算任務(wù)宠哄,一般會提交到集群或超級計算機平臺上進行計算种蘸。集群系統(tǒng)具有低成本坤溃、高性能的特性甥郑,提供了強大的批處理和并行計算能力,代表了高性能計算機發(fā)展的新方向筋蓖。在集群或者超級計算機平臺上卸耘,一般不能隨意地直接以 mpiexec 或 mpirun 運行我們的并行計算程序,而必須通過其上提供的作業(yè)管理系統(tǒng)來提交計算任務(wù)粘咖。作為集群系統(tǒng)軟件的重要組成部分鹊奖,集群作業(yè)管理系統(tǒng)可以根據(jù)用戶的需求,統(tǒng)一管理和調(diào)度集群的軟硬件資源涂炎,保證用戶作業(yè)公平合理地共享集群資源忠聚,提高系統(tǒng)利用率和吞吐率。下面我們將簡要地介紹幾個常用的集群作業(yè)管理系統(tǒng):PBS唱捣,LSF 和 SLURM两蟀。下面我們首先簡要介紹 PBS 作業(yè)管理系統(tǒng)。

PBS 簡介

PBS (Protable Batch System) 作業(yè)管理系統(tǒng)會根據(jù)一個集群上的可用計算節(jié)點的計算資源管理和調(diào)度所有計算作業(yè)(無論是批處理作業(yè)還是交互式作業(yè))震缭。

PBS 常用命令

作業(yè)控制

  • qsub:提交作業(yè)
  • qdel:取消作業(yè)
  • qsig:給作業(yè)發(fā)送信號
  • qhold:掛起作業(yè)
  • qrls:釋放掛起的作業(yè)
  • qrerun:重新運行作業(yè)
  • qmove:將作業(yè)移動到另一個隊列
  • qalter: 更改作業(yè)資源屬性

作業(yè)監(jiān)測

  • qstat:顯示作業(yè)狀態(tài)
  • showq: 查看所有作業(yè)

節(jié)點狀態(tài)

  • pbsnodes:列出集群中所有節(jié)點的狀態(tài)和屬性

PBS 作業(yè)屬性

可以用兩種方式設(shè)置 PBS 作業(yè)屬性:

  • 通過命令行參數(shù)傳遞給 qsub 命令赂毯;
  • 在 PBS 腳本中以 #PBS 方式指定。

下表列出常用的 PBS 作業(yè)屬性

屬性 取值 說明
-l 以逗號分隔的資源列表 設(shè)定作業(yè)所需資源
-N 作業(yè)名稱 設(shè)定作業(yè)名稱
-o 文件路徑 設(shè)定作業(yè)的標(biāo)準(zhǔn)輸出文件路徑
-e 文件路徑 設(shè)定作業(yè)的標(biāo)準(zhǔn)錯誤文件路徑
-p -1024 到 +1023 之間的整數(shù) 設(shè)定作業(yè)優(yōu)先級拣宰,越大優(yōu)先級越高
-q 隊列名稱 設(shè)定作業(yè)隊列名稱

比較常用的作業(yè)資源如下:

資源 取值 說明
nodes 節(jié)點資源構(gòu)型 設(shè)定作業(yè)所需計算節(jié)點資源
walltime hh:mm:ss 設(shè)定作業(yè)所需的最大 wallclock 時間
cput hh:mm:ss 設(shè)定作業(yè)所需的最大 CPU 時間
mem 正整數(shù)党涕,后面可跟 b,kb巡社,mb膛堤,gb 設(shè)定作業(yè)所需的最大內(nèi)存
ncpus 正整數(shù) 設(shè)定作業(yè)所需的 CPU 數(shù)目

可以用以下方法設(shè)定節(jié)點資源構(gòu)型:

  1. 設(shè)定所需節(jié)點數(shù):

    nodes=<num nodes>

  2. 設(shè)定所需節(jié)點數(shù)和每個節(jié)點上使用的處理器數(shù)目:

    nodes=<num nodes>:ppn=<num procs per node>

  3. 設(shè)定所用的節(jié)點:

    nodes=<list of node names separated by '+'>

PBS 環(huán)境變量

下表列出常用的 PBS 環(huán)境變量:

環(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é)點的文件名
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é)點名稱
PBS_O_QUEUE 提交的作業(yè)的最初隊列名稱
PBS_O_WORKDIR 執(zhí)行 qsub 命令所在的絕對路徑

提交批處理作業(yè)

用以下命令形式提交批處理作業(yè):

$ qsub [options] <control script>

作業(yè)提交后一般會先排隊等待晌该,PBS 系統(tǒng)會根據(jù)作業(yè)的優(yōu)先級和可用的計算資源來調(diào)度和執(zhí)行作業(yè)肥荔。

PBS 腳本本質(zhì)上是一個 Linux shell 腳本,在 PBS 腳本中可以用一種特殊形式的注釋(#PBS)作為 PBS 指令以設(shè)定作業(yè)屬性朝群。下面是一個 PBS 腳本示例:

#!/bin/bash

# file: example.pbs

### set job name
#PBS -N example-job
### set output files
#PBS -o example.stdout
#PBS -e example.stderr
### set queue name
#PBS -q example-queue
### set number of nodes
#PBS -l nodes=2:ppn=4

# enter job's working directory
cd $PBS_O_WORKDIR

# get the number of processors
NP=`cat $PBS_NODEFILE | wc -l`

# run an example mpi4py job
mpirun -np $NP -machinefile $PBS_NODEFILE python example_mpi4py.py

用以下命令提交該作業(yè):

$ qsub example.pbs

取消或停止作業(yè)

要取消或停止一個作業(yè)燕耿,需要得到該作業(yè)的作業(yè)標(biāo)識號 <job ID >,可以通過 qstat 命令獲得姜胖。

取消排隊等待的作業(yè)

取消一個正在排隊等待的作業(yè)誉帅,可用以下命令:

$ qdel <job ID >

停止正在運行的作業(yè)

要停止一個正在運行的作業(yè),可用向其發(fā)送 KILL 信號:

$ qsig -s KILL <job ID>

交互式作業(yè)

交互式的計算作業(yè)通過類似于下面的命令使用:

$ qsub -I [options]

例如要求 2 臺計算節(jié)點右莱,運行在 example-queue 隊列上的交互式作業(yè)蚜锨,執(zhí)行如下命令:

$ qsub -I -l nodes=2 -q example-queue

執(zhí)行完以上命令,等 PBS 系統(tǒng)分配好資源后會進入所分配的第一臺計算節(jié)點隧出,可在其命令終端上執(zhí)行交互式的計算任務(wù)踏志,如要退出交互作業(yè),可在終端輸入 exit 命令胀瞪,或使用按鍵 Ctrl+D针余。

以上簡要介紹了 PBS 作業(yè)管理系統(tǒng)饲鄙,在下一篇中我們將介紹 LSF 作業(yè)管理系統(tǒng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末圆雁,一起剝皮案震驚了整個濱河市忍级,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伪朽,老刑警劉巖轴咱,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烈涮,居然都是意外死亡朴肺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門坚洽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戈稿,“玉大人,你說我怎么就攤上這事讶舰“暗粒” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵跳昼,是天一觀的道長般甲。 經(jīng)常有香客問我,道長鹅颊,這世上最難降的妖魔是什么敷存? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮挪略,結(jié)果婚禮上历帚,老公的妹妹穿的比我還像新娘滔岳。我一直安慰自己杠娱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布谱煤。 她就那樣靜靜地躺著摊求,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刘离。 梳的紋絲不亂的頭發(fā)上室叉,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音硫惕,去河邊找鬼茧痕。 笑死,一個胖子當(dāng)著我的面吹牛恼除,可吹牛的內(nèi)容都是我干的踪旷。 我是一名探鬼主播曼氛,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼令野!你這毒婦竟也來了舀患?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤气破,失蹤者是張志新(化名)和其女友劉穎聊浅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體现使,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡低匙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碳锈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片努咐。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖殴胧,靈堂內(nèi)的尸體忽然破棺而出渗稍,到底是詐尸還是另有隱情,我是刑警寧澤团滥,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布竿屹,位于F島的核電站,受9級特大地震影響灸姊,放射性物質(zhì)發(fā)生泄漏拱燃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一力惯、第九天 我趴在偏房一處隱蔽的房頂上張望碗誉。 院中可真熱鬧,春花似錦父晶、人聲如沸哮缺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尝苇。三九已至,卻和暖如春埠胖,著一層夾襖步出監(jiān)牢的瞬間糠溜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工直撤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留非竿,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓谋竖,卻偏偏與公主長得像红柱,于是被迫代替她去往敵國和親侮东。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

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