2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

PBS,QSUB常用命令

 panhoy 2014-09-06

1、后臺(tái)提交作業(yè)qsub

       語法: qsub [-a date_time] [-A account_string] [-e path] [-h] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-n Node_allocation_Method [-L v1,[v2,[v3,[v4]]]]] [-M user_list] [-N name] [-o path] [-p priority] [-q pool] [-r y|n] [-u user_list] [-v variable_list] [-V] [script]

        參數(shù): script參數(shù)被省略時(shí),該命令可以從標(biāo)準(zhǔn)輸入獲得腳本文件名。

       -a 間。格式為[[[[CC]YY]MM]DD]hhmm[.SS]。CC表示世紀(jì),YY表示年(后兩位數(shù)字),MM表示月(兩位數(shù)字),DD表示天(兩位數(shù) 字),hh表示小時(shí)(兩位數(shù)字),mm表示分(兩位數(shù)字),SS表示秒(兩位數(shù)字)。如果DD指定的是未來日子,而未指定MM,則MM缺省值為當(dāng)前月,否 則,MM的缺省值為下個(gè)月。如果hhmm指定的未來時(shí)間,而未指定DD,則DD的缺省值為當(dāng)天,否則,DD的缺省值為明天。如果提交作業(yè)時(shí)使用該選項(xiàng),當(dāng) 指定時(shí)間還沒到時(shí),作業(yè)狀態(tài)顯示為”W”。

       -e 指定錯(cuò)誤輸出文件名,格式為[hostname:]path_home。Hostname是返回錯(cuò)誤輸出文件的主機(jī)名,path_home是錯(cuò)誤輸出文件 的絕對(duì)路徑,如果指定了相對(duì)路徑,則相對(duì)用戶的主目錄。不使用該選項(xiàng)時(shí),缺省值是在用戶主目錄下,以“作業(yè)名.e作業(yè)ID”命名的文件

       -o 指定輸出文件名,格式為[hostname:]path_home。缺省值是在用戶主目錄下,以“作業(yè)名.e作業(yè)ID”命名的文件

       -h 指定在提交作業(yè)時(shí),設(shè)置用戶級(jí)’u’掛起。如果不指定,則設(shè)置掛起類型為’n’,即不掛起。

       -I 指定作業(yè)以交互方式運(yùn)行。

       -j 指定合并錯(cuò)誤輸出和實(shí)際輸出。如果指定’oe’,則合并到標(biāo)準(zhǔn)輸出文件中;如果指定’eo’,則合并到標(biāo)準(zhǔn)錯(cuò)誤輸出文件中.

       -k 指定執(zhí)行主機(jī)是否保留錯(cuò)誤輸出和實(shí)際輸出。如果指定‘o’,則僅保留標(biāo)準(zhǔn)輸出;如果指定’e’,則僅保留標(biāo)準(zhǔn)錯(cuò)誤輸出;如果指定’oe’或‘eo’,則保留標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出;如果指定’n’,則不保留任何輸出。

       -l 指定作業(yè)所需要的資源,設(shè)定對(duì)可消耗資源的限制。如果不設(shè)置,則無限制。例如: resource_name[=[value]][,resource_name[=[value]],…]

       LINUX系統(tǒng)可以設(shè)置的資源有cput, file, pcput, pmem, pvmem, vmem, walltime, arch, nodes, ncpus等;

       Cput指作業(yè)的所有進(jìn)程使用cpu最長時(shí)間;

       File指作業(yè)可以建立單個(gè)文件大小的最大限制;

       Pcput指作業(yè)的單個(gè)進(jìn)程可以使用CPU的最長時(shí)間;

       vmem指作業(yè)可以使用的物理內(nèi)存的最大值;

       Pmem指作業(yè)的單個(gè)進(jìn)程可以使用的物理內(nèi)存的最大值;

       Pvmem指作業(yè)的單個(gè)進(jìn)程可以使用的虛擬內(nèi)存的最大值;

       walltime指作業(yè)處于運(yùn)行狀態(tài)的最長時(shí)間;

       arch 指定系統(tǒng)管理員所定義的系統(tǒng)結(jié)構(gòu)類型;

       host指定作業(yè)運(yùn)行的主機(jī)名;

       nodes指定作業(yè)獨(dú)占使用的結(jié)點(diǎn)數(shù)目和屬性,使用“+”可以連接多種結(jié)點(diǎn)的定義。

       結(jié)點(diǎn)的屬性和主機(jī)名或數(shù)目之間通過“:”分隔。如果不指定結(jié)點(diǎn)數(shù),則缺省為1。結(jié)點(diǎn)的屬性包括ppn(每個(gè)結(jié)點(diǎn)上的進(jìn)程數(shù),缺省為1)和系統(tǒng)管理員設(shè)置的屬性(如batch、bigmem)

       例如:請(qǐng)求12個(gè)結(jié)點(diǎn),不管其屬性

           -l nodes=12

       請(qǐng)求12個(gè)屬性為batch的結(jié)點(diǎn)和14個(gè)屬性為bigmem的結(jié)點(diǎn)

           -l nodes=12:batch+14:bigmem

       請(qǐng)求4個(gè)結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)上使用2個(gè)CPU

           -l nodes=4:ppn=2

       software 指作業(yè)要求的軟件包

       -m 定義何時(shí)給用戶發(fā)送有關(guān)作業(yè)的郵件??稍O(shè)定的選項(xiàng)有:

           n 不發(fā)送郵件

           a 當(dāng)作業(yè)被批處理系統(tǒng)中斷時(shí),發(fā)送郵件

            b 當(dāng)作業(yè)開始執(zhí)行時(shí),發(fā)送郵件

           e 當(dāng)作業(yè)執(zhí)行結(jié)束時(shí),發(fā)送郵件

       -M 指定發(fā)送有關(guān)作業(yè)信息的郵件用戶列表。格式為user[@host][,user@[host],…]缺省值為提交作業(yè)的用戶。

       -N 指定作業(yè)的名字。缺省值為腳本的名字,如果沒有指定腳本,則為STDIN。

       -p 指定作業(yè)的優(yōu)先級(jí),優(yōu)先級(jí)的范圍是[-1024, +1023]。缺省值是沒有優(yōu)先級(jí)。

       -q 指定作業(yè)的目的地(結(jié)點(diǎn)池),目的地可有三種格式:

              pool

              @server

              pool@server

       -r y|n 指定作業(yè)是否可重新運(yùn)行。指定‘y’時(shí),作業(yè)可以重新運(yùn)行;指定’n’時(shí),作業(yè)不能重新運(yùn)行。缺省值為’n’。

       -v 格式為variable1,variable2,…或variable1=value,variable2=value,…這些變量和其值可以傳遞到作業(yè)中。

       -V 指定qsub命令的所有的環(huán)境變量都傳遞到批處理作業(yè)中。

           作用: 以腳本文件的形式向批處理服務(wù)器提交作業(yè)。

           舉例:

           運(yùn)行MPI程序的腳本cpi.ljrs如下:

           #!/bin/sh

           ### Job name

           #LJRS -N test

           ### Declare job non-rerunable

           #LJRS -r n

           ### Output files

           #LJRS -e test.err

           #LJRS -o test.log

           ### Mail to user

           #LJRS -m ae

           ### pool name (small, medium, long, verylong)

           #LJRS -q dque

           ### Number of nodes (node property ev67 wanted)

           #LJRS -l nodes=8:batch

           # This job’s working directory

           echo Working directory is $LJRS_O_WORKDIR

           cd $LJRS_O_WORKDIR

           echo Running on host ‘hostname‘

           echo Time is ‘date‘

           echo Directory is ‘pwd‘

           echo This jobs runs on the following processors:

           echo ‘cat $LJRS_NODEFILE‘

           # Define number of processors

           NPROCS=‘wc -l < $LJRS_NODEFILE‘

           echo This job has allocated $NPROCS nodes

           # Run the parallel MPI executable “a.out”

           mpirun -v -machinefile $LJRS_NODEFILE -np $NPROCS cpi

          

           1、把腳本文件cpi.ljrs提交到結(jié)點(diǎn)池dque中運(yùn)行。

              $ qsub cpi.ljrs

              35.console

              $ qstat

              Job id Name User TimeUse S Pool

              35.console cpi zhangxq 0:00:00 R dque

           2、把腳本作業(yè)cpi.ljrs提交到結(jié)點(diǎn)池long中運(yùn)行,并且當(dāng)作業(yè)開始運(yùn)行時(shí),給用戶發(fā)送電子郵件。

              $qsub -P long -m b cpi.ljrs $qstat

              Job id Name User TimeUse S Pool

              36.console cpi zhangxq 0 R long

           3、使用15個(gè)結(jié)點(diǎn)運(yùn)行cpi.ljrs,運(yùn)行時(shí)間不能大于2小時(shí),作業(yè)占用的內(nèi)存能大于15mb

              $qsub –l nodes=15,walltime=2:00:00,mem=15mb cpi.ljrs

 

           4、綜合考慮CPU、內(nèi)存、緩沖區(qū)、硬盤等因素的使用情況,設(shè)置其權(quán)值分別為5, 4, 3, 2.

              $qsub –l nodes=5 -n syn –L 5, 4, 3, 2 cpi.ljrs

           5、使用-I和–l選項(xiàng)在指定的結(jié)點(diǎn)上交互式運(yùn)行作業(yè)

              $ qsub –I -l nodes=c0101

              運(yùn)行該命令后,系統(tǒng)將自動(dòng)切換到c0101的虛擬終端,所有的標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出均都顯示在該終端上. 在系統(tǒng)出現(xiàn)”waiting to jobid to start”時(shí),用戶若按^C鍵,即可中斷該交互作業(yè).當(dāng)該交互作業(yè)已經(jīng)啟動(dòng)后,用戶除了交互式運(yùn)行作業(yè)外,還可進(jìn)行以下操作:

              ~. 該命令將使qsub退出,且終止作業(yè)。

              ~^Z掛起qsub,作業(yè)依然保持運(yùn)行狀態(tài),無任何輸入輸出。用戶可以在本地shell上提交命令。

              ~^Y部分掛起qsub,因?yàn)檫€可以給作業(yè)發(fā)送輸入,而且接受作業(yè)的輸出的同時(shí),還可以在本地shell提交命令。

 

    2、查看狀態(tài)qstat

       語法:qstat [-f][-W site_specific] [job_identifier... | destination...]

             qstat -Q [-f][-W site_specific] [destination...]

             qstat -B [-f] [-W site_specific] [server_name...]

       參數(shù):destination可以為pool,@server,pool@server

       作用:查看作業(yè)、結(jié)點(diǎn)池和批處理服務(wù)器的狀態(tài)。命令格式一可以輸出所指定作業(yè)ID或者結(jié)點(diǎn)池中所有作業(yè)的狀態(tài),命令格式二可以輸出每個(gè)結(jié)點(diǎn)池的狀態(tài)信息,命令格式三可以輸出服務(wù)器的狀態(tài)。

       舉例:

       1. 顯示已經(jīng)配置的所有結(jié)點(diǎn)池狀態(tài)信息。

           qstat -q

       2. 顯示已經(jīng)提交的作業(yè)狀態(tài)信息

           qstat -a

       3. 顯示指定作業(yè)的所有狀態(tài)信息

           $ qstat -f 23.console

           mtime = Sun Apr 28 19:54:48 2002

           Output_Path = console:/home/zhangxq/cpi.o23

           Priority = 0

           qtime = Sun Apr 28 19:54:48 2002

           Rerunable = True

           Resource_List.cput = 00:00:59

           Resource_List.nodect = 2

           Resource_List.nodes = 2:ppn=1

           Variable_List = LJRS_O_HOME=/home/zhangxq,LJRS_O_LANG=en_US

           ……

       4. 顯示服務(wù)器的狀態(tài)

           $qstat –B

           Server Max Tot Que Run Hld Wat Trn Ext Status

           console 0 0 0 0 0 0 0 0 Active

 

    3、查詢作業(yè)qselect

       語法:qselect [-a [op]date_time] [-A account_string] [-h old_list] [-l resource_list] [-N name] [-p [op]priority] [-q destination] [-r y|n] [-s states] [-u user_list]

       參數(shù):op表示某一個(gè)作業(yè)屬性值和選項(xiàng)參數(shù)值之間的關(guān)系。如

       .eq. (等于)

       .ne. (不等于)

       .ge. (大于或等于)

       .gt. (大于)

       .le. (小于)

       其它參數(shù)含義見qsub命令。

       作用:列出符合選項(xiàng)要求的作業(yè)ID。這些作業(yè)來自于單個(gè)服務(wù)器。如果沒有任何選項(xiàng),該命令則列出該用戶被授權(quán)的服務(wù)器上的所有作業(yè)。對(duì)那些普通用戶來說,該命令只顯示該用戶所提交的作業(yè)。

       舉例:

       1. 查詢用戶所提交的作業(yè)

           $ qsub -q long cpi.ljrs

           28.console

           $ qselect

           25.console

           28.console

       2. 查詢指定結(jié)點(diǎn)池中的作業(yè)

           $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 Q dque

           29.console cpi zhangxq 0 R long

           $ qselect -P dque

           25.console

       3. 查詢指定主機(jī)上的作業(yè)

           $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 Q dque

           29.console cpi zhangxq 0 R long

           $ qselect -P @console

           25.console

           29.console

 

    4、掛起作業(yè)qhold

        語法:qhold [-h hold_list] job_identifier …

        作用:掛起批處理作業(yè)。掛起有三種類型:普通用戶級(jí)‘u’、管理員級(jí)(操作員級(jí))‘o’、系統(tǒng)級(jí)‘s’,缺省值為不掛起‘n’。用戶只能在用戶級(jí)別掛起自己提交的作業(yè),操作員可以在用戶級(jí)和操作員級(jí)掛起任何作業(yè),系統(tǒng)管理員可以在任何級(jí)別上掛起任何作業(yè)。

        在執(zhí)行該命令時(shí),如果作業(yè)在運(yùn)行結(jié)點(diǎn)池里排隊(duì),那么作業(yè)將直接被掛起;如果作業(yè)處于運(yùn)行狀態(tài),為了中斷作業(yè)的執(zhí)行,必須采取其他辦法。如果被掛起作業(yè)的主 機(jī)系統(tǒng)支持一致點(diǎn)檢查或者重新啟動(dòng),則掛起正在運(yùn)行作業(yè)將引發(fā)以下操作:首先檢查作業(yè)的一致性,然后釋放該作業(yè)所占用的資源,最后該作業(yè)位于執(zhí)行結(jié)點(diǎn)池 中,處于掛起狀態(tài);如果被掛起作業(yè)的主機(jī)系統(tǒng)不支持一致點(diǎn)檢查或者重新啟動(dòng),則僅設(shè)置指定的掛起作業(yè)類型,而實(shí)際上并不能掛起,除非調(diào)用qrerun命令 重新運(yùn)行該作業(yè)時(shí),該掛起請(qǐng)求才生效。

        舉例:

        1. 使用普通用戶身份掛起作業(yè)

           $ qhold -h u 25.console $ qstat

           Job id Name User TimeUse S Pool

            25.console cpi zhangxq 0 H dque

        2. 以操作員身份掛起作業(yè)

            $ qhold -h o 25

           qhold: Unauthorized Request 25.console

           $ su root

            $ qhold -h o 25

           $ qstat

           Job id Name User TimeUse S Pool

            25.console cpi zhangxq 0 H dque

 

    5、釋放作業(yè)qrls

        語法:qrls [-h hold_list] job_identifier ...

        作用:釋放被掛起的批處理作業(yè)。由于作業(yè)的掛起有三種類型:USER、OPERATOR和SYSTEM。所以,要釋放不同類型的作業(yè)掛起,用戶就必須具有相應(yīng)的權(quán)限。缺省為USER級(jí)

        舉例:釋放在普通用戶和操作員級(jí)被掛起的作業(yè)。

            $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 H dque

            $ qrls -h uo 25

           $ qstat

           Job id Name User TimeUse S Pool

            25.console cpi zhangxq 0 Q dque

 

    6、重新運(yùn)行作業(yè)qrerun

       語法:qrerun job_identifier ...

       作用:重新運(yùn)行所指定的作業(yè)。

       舉例:如果作業(yè)允許別重新執(zhí)行(缺省值是可以重新運(yùn)行)。ROOT用戶運(yùn)行該命令,可以終止本次運(yùn)行,把該作業(yè)放入其原來所在的結(jié)點(diǎn)池中,重新運(yùn)行。

           $ qrerun 27

           qrerun: Unauthorized Request 27.console

           $ su – root

           $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 Q dque

           27.console cpi zhangxq 0 R dque

           $ qrerun 27

           $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 Q dque

           27.console cpi zhangxq 0 R dque

 

    7、更改作業(yè)屬性qalter

       語法:qalter [-a date_time] [-A account_string] [-e path] [-h hold_list] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-M user_list] [-N name] [-o path] [-p priority] [-r c] [-u user_list] job_identifier...

       參數(shù):各參數(shù)的含義見qsub命令。

       作用:更改批處理作業(yè)的屬性。主要修改所指定作業(yè)ID的相關(guān)屬性(選項(xiàng)表中所列出的屬性)。

       舉例:1. 更改批處理作業(yè)的運(yùn)行時(shí)間屬性。

           $ qalter -a 0309251000 23.console

       2. 更改給用戶發(fā)送郵件的時(shí)間為作業(yè)中止和運(yùn)行結(jié)束時(shí)

           $ qalter –m ae 23.console

 

    8、刪除作業(yè)qdel

       語法:qdel [-W delay|force] job_identifier ...

       參數(shù):-W 當(dāng)指定delay 時(shí),表示在刪除作業(yè)前需要等待的時(shí)間(秒)

當(dāng)指定force時(shí),強(qiáng)制刪除該作業(yè)。

       作用:刪除批處理作業(yè)。按照命令行中所指定的作業(yè)ID的順序來刪除作業(yè)。

       舉例:$ qstat

           Job id Name User TimeUse S Pool

           22.console cpi zhangxq 0 Q long

           $ qdel 22

 

    9、給作業(yè)發(fā)送消息qmsg

       語法:qmsg [-E] [-O] message_string job_identifier ...

       參數(shù):-E 將消息串寫入錯(cuò)誤輸出文件

             -O將消息串寫入輸出文件

       作用:給批處理作業(yè)發(fā)送消息。該命令通過給作業(yè)的所有者(批處理服務(wù)器)發(fā)送消息,從而把消息寫入作業(yè)的輸出文件,也就是說,該命令并不是直接把消息寫入作業(yè)的輸出文件。

       舉例:給正在運(yùn)行的作業(yè)發(fā)送消息,該消息被寫入所指定作業(yè)的錯(cuò)誤輸出文件中。

           $ qstat

           Job id Name User TimeUse S Pool

           25.console cpi zhangxq 0 Q dque

           26.console cpi zhangxq 0 R dque

           $ qmsg “The job is running” 26

           $ more cpi.e26

           The job is running

 

    10、在結(jié)點(diǎn)池之間移動(dòng)作業(yè)qmove

       語法:qmove destination job_identifier ...

       參數(shù):destination可以為結(jié)點(diǎn)池名

       作用:把批處理作業(yè)移到其他結(jié)點(diǎn)池中去運(yùn)行。即把作業(yè)從所在的結(jié)點(diǎn)池中刪除,并放在其他結(jié)點(diǎn)池中。

       舉例:

           $ qstat

           Job id Name User TimeUse S Pool

           22.console cpi zhangxq 0 Q dque

           $ qmove long 22

           $ qstat

           Job id Name User TimeUse S Pool

           22.console cpi zhangxq 0 Q long

 

    11、給作業(yè)發(fā)送信號(hào)qsig

       語法:qsig [-s signal] job_identifier ...

       參數(shù):參數(shù)signal可以為信號(hào)名稱,如SIGKILL,KILL,SIGNULL或者無符號(hào)整數(shù),如9、0。

       作用:給正在運(yùn)行的批處理作業(yè)發(fā)送信號(hào)。如果不指定-S選項(xiàng),則發(fā)送“SIGTERM”信號(hào)。如果有下列原因之一,如用戶無權(quán)給作業(yè)發(fā)送信號(hào)、作業(yè)未處于運(yùn)行狀態(tài)和該信號(hào)請(qǐng)求對(duì)作業(yè)所運(yùn)行的系統(tǒng)無效,則拒絕執(zhí)行該命令請(qǐng)求。

 

    12、查看和管理結(jié)點(diǎn)ljrsnodes

       語法:ljrsnodes [- {c|o|r}] [nodename …] ljrsnodes - {a|l }]

       參數(shù):-a 列出所有結(jié)點(diǎn)及其屬性,屬性包括“state”和“properties”

       -c 清除結(jié)點(diǎn)列表中的“offline”或“down”狀態(tài)設(shè)置,使結(jié)點(diǎn)可以被分配給作業(yè)。

       -l 以行的方式列出被標(biāo)記的結(jié)點(diǎn)的狀態(tài) -o 將指定結(jié)點(diǎn)的狀態(tài)標(biāo)記為“offline”。這將幫助管理員暫時(shí)停止某些結(jié)點(diǎn)的服務(wù)。

       -r 清除指定結(jié)點(diǎn)的“offline”狀態(tài)

       作用:該命令可以標(biāo)記結(jié)點(diǎn)的狀態(tài)為“offline”、“down”或“free”,也可以幫助用戶查看結(jié)點(diǎn)信息。除了”-a” 和“-l”選項(xiàng)外,使用其他選項(xiàng)需要擁有操作員和管理員權(quán)限。

       舉例:1、查看所有結(jié)點(diǎn)信息

           ljrsnodes -a

       2、將結(jié)點(diǎn)標(biāo)記為“offline”狀態(tài)

           ljrsnodes –o c0108

       3、清除結(jié)點(diǎn)的“offline”狀態(tài)設(shè)置

           ljrsnodes –c c0108 或 ljrsnodes –r c0108

 

    13、查看所有計(jì)算結(jié)點(diǎn)的狀態(tài)shownodes

       語法:shownodes [-h]

       作用:按照結(jié)點(diǎn)池分類顯示各結(jié)點(diǎn)池中結(jié)點(diǎn)的狀態(tài),結(jié)點(diǎn)狀態(tài)以不同顏色顯示。并在結(jié)點(diǎn)名后以數(shù)字代表可用CPU數(shù)和總共CPU數(shù)。例如c0101-2/2, 表示c0101結(jié)點(diǎn)可用2CPU總共2CPU,c0102-1/2表示C0102可用1CPU總共2CPU。

       舉例:$shownodes –h

用戶通過qsub命令來向系統(tǒng)提交任務(wù),有兩種方式提交:腳本方式和命令行方式。(一般情況下,不允許root用戶使用qsub命令提交作業(yè))。下面先講一下用這兩種方式提交作業(yè)的過程。
腳本方式提交

用戶將需要執(zhí)行的程序或命令寫入腳本中,再加入一些必要或者可選的語句,就可以通腳本方式提交。腳本提交比較方便,用戶可以用最簡(jiǎn)單的文字編輯器(例如 vi)編寫一個(gè)腳本,然后使用 qsub 命令提交該腳本,pbs 會(huì)按照腳本內(nèi)容執(zhí)行相應(yīng)的任務(wù)。腳本提交的不足之處就是需要用戶執(zhí)行任務(wù)前編寫腳本。
腳本方式提交任務(wù)的一般格式為:qsub [script_name],script_name 是任務(wù)腳本的名稱。
下面介紹 pbs 任務(wù)腳本的編寫方法。
pbs 任務(wù)腳本包括三部分:

    * shell 說明語句:用來說明用戶使用的是哪種 shell,例如 #!/bin/sh說明用戶需要使用 Bourne shell,如果用戶沒有指定,則默認(rèn)為 Bourne shell
    * pbs 指示語句:pbs 指示語句是用戶用來請(qǐng)求任務(wù)運(yùn)行時(shí)所需的資源或設(shè)置任務(wù)的一些屬性的。以#PBS開頭,如#PBS –N taskname 是用來設(shè)置任務(wù)名稱的。pbs 指示語句是可選的,用戶可以不用關(guān)心它如何寫,系統(tǒng)會(huì)自動(dòng)設(shè)置。
    * pbs 指示句的一個(gè)主要作用是請(qǐng)求任務(wù)執(zhí)行時(shí)所需要的系統(tǒng)資源,如 cpu 數(shù)目,存儲(chǔ)容量,運(yùn)行時(shí)間,運(yùn)行優(yōu)先級(jí)等等。以腳本方式提交的任務(wù)的資源請(qǐng)求是通過 pbs 指示語句,一般格式為 #PBS –l [選項(xiàng)=] [選項(xiàng)對(duì)應(yīng)的值],如#PBS –l ncpus=5 表示請(qǐng)求 5 個(gè)cpu為之服務(wù)。系統(tǒng)資源如下所示

arch 所需要的系統(tǒng)結(jié)構(gòu),只用在資源塊中 -l arch=linux
cput 任務(wù)的所有進(jìn)程擁有的最大 cpu 執(zhí)行時(shí)間 -l cput=1:00:00
file 任務(wù)能夠創(chuàng)建的文件的大小 -l file=45mb
host 指定執(zhí)行主機(jī)的名稱 -l nodes=X:host 分配 X個(gè)主機(jī)名稱 中含有 host的執(zhí)行節(jié)點(diǎn)
mem 任務(wù)的所有進(jìn)程能夠分配到的最大物理內(nèi)存數(shù) -l mem=100mb
ncpus 請(qǐng)求的 cpu數(shù) -l ncup=5
nice 任務(wù)運(yùn)行時(shí)的 nice 優(yōu)先級(jí)值 -l nice=3
pcput 任務(wù)的任何一個(gè)進(jìn)程擁有的最大 cpu 執(zhí)行時(shí)間 -l pcput=1:00:00
pmem 任務(wù)的任何一個(gè)進(jìn)程能夠分配到的最大物理內(nèi)存數(shù) -l pmem=45mb
pvmem 任務(wù)的任何一個(gè)進(jìn)程能夠使用的虛擬內(nèi)存的最大數(shù) -l pvmem=100mb
vmem 任務(wù)的所有并發(fā)進(jìn)程能夠使用的最大虛存數(shù) -l pvmem=100mb
walltime 任務(wù)可以處于運(yùn)行態(tài)的最大 wall-clock 時(shí)間 -l walltime=1:00:00
custom resources 用戶自定義資源

最常用的幾種資源是:walltime, ncpus, mem, host。其它可以不用太關(guān)心。

 資源請(qǐng)求的兩種方式:

a、資源塊方式:資源塊是將任務(wù)所需的資源作為一個(gè)整體,這個(gè)整體中說明了所需要的各種資源的數(shù)目。其格式為:-l select=[N:]chunk[+[N:]chunk…],如qsub –l select=2:ncpus=3:mem=4gb:arch=linux ,select=2表示需要2個(gè)這樣的資源塊,一個(gè)資源塊包括3個(gè)cpu,4gb的內(nèi)存,系統(tǒng)結(jié)構(gòu)要求是linux,即總共需要6個(gè)cpu,8gb的內(nèi)存。再如:-l select=2:ncpus=1:mem=10GB+3:ncpus=2:mem=8GB:arch=solaris注意中間的+號(hào),是兩個(gè)資源塊的分隔符
b、請(qǐng)求全任務(wù)(job-wide)資源:格式為 –l  keyword=value[,keyword=value ...]如:qsub -l ncpus=4,mem=123mb,arch=linux

任務(wù)(程序或命令):可以是用戶程序(如C程序),也可以是系統(tǒng)命令
下面是一個(gè)完整的任務(wù)腳本例子,腳本名為 mytask:

       1. #!/bin/sh                 //指明所用的 shell
       2. #PBS –N mytask     //設(shè)置任務(wù)名稱
       3. #PBS -l walltime=1:00:00       //請(qǐng)求任務(wù)執(zhí)行時(shí)間
       4. #PBS -l select=ncpus=4:mem=400mb    //請(qǐng)求任務(wù)執(zhí)行所需資源
       5. #PBS -j oe                       //設(shè)置相關(guān)屬性(文件合并)
       6. date /t                           //系統(tǒng)命令(打印日期時(shí)間)
       7. .\my_application                 //所要執(zhí)行的任務(wù)(當(dāng)前目錄名為 my_application的任務(wù))
       8. date /t       //  系統(tǒng)命令

第 1 行說明所用的 shell;第 2 至5 行是 pbs 指示語句,設(shè)置了任務(wù)的一些屬性,并請(qǐng)求了資源;第 6 至8行是要執(zhí)行的命令及任務(wù)。
編寫完腳本后,使用 qsub 命令提交腳本,在 shell下輸入:

    qsub mytask

后敲回車。
系統(tǒng)會(huì)輸出一個(gè)任務(wù)標(biāo)識(shí)符:sequence-number.servername,如 220.cnode01。sequence-number是任務(wù)編號(hào),后面需要用這個(gè)號(hào)查看任務(wù)的執(zhí)行狀態(tài),ervername
是 pbs server的名稱。

命令行方式提交
命令行方式提交不用寫腳本,用戶可以直接從命令行輸入。輸入的內(nèi)容基本上和在腳本中輸入的相同。其基本格式如下:
qsub <return>         //輸入qsub命令后回車
[directives]     //pbs指示語句(以#PBS為前綴)
[tasks]       //任務(wù)或命令
ctrl-D        //結(jié)束輸入,提交任務(wù)
對(duì)于上面用腳本方式提交的任務(wù),用命令行方式提交的格式如下:

       1. qsub
       2. #PBS –N mytask
       3. #PBS –l walltime=1:00:00
       4. #PBS –l select=ncpus=4:mem=400mb
       5. #PBS -j oe
       6. date /t
       7. ./my_application
       8. date /t

注:以命令行方式提交任務(wù)時(shí),這些命令選項(xiàng)都要以 pbs 指示語句的格式給出,即選項(xiàng)之前要加前綴#PBS。
任務(wù)提交后,用戶如果要知道任務(wù)的當(dāng)前運(yùn)行狀態(tài),可以通過 qstat 命令查詢。qstat 命令的常用選項(xiàng)有:
無選項(xiàng):當(dāng) qstat 命令不帶任何選項(xiàng)時(shí),以默認(rèn)方式顯示任務(wù)信息,例如

    [soofree@node32]$ qstat
    Job id           Name             User        Time Use   S               Queue
    —————-   —————-      —————-    ————   ——
    569.node32    test             soofree          0             R               small

其中,Job id 是任務(wù)的標(biāo)識(shí)符,Name 是任務(wù)名稱,User是任務(wù)所有者,Time Use 是CPU使用時(shí)間,S 是任務(wù)當(dāng)前狀態(tài)(本例中 R表示正在運(yùn)行),Queue表示任務(wù)所在隊(duì)列。任務(wù)的狀態(tài)如下:

        * B  只用于任務(wù)向量,表示任務(wù)向量已經(jīng)開始執(zhí)行
        * E  任務(wù)在運(yùn)行后退出
        * H  任務(wù)被服務(wù)器或用戶或者管理員阻塞
        * Q  任務(wù)正在排隊(duì)中,等待被調(diào)度運(yùn)行
        * R  任務(wù)正在運(yùn)行
        * S  任務(wù)被服務(wù)器掛起,由于一個(gè)更高優(yōu)先級(jí)的任務(wù)需要當(dāng)前任務(wù)的資源
        * T  任務(wù)被轉(zhuǎn)移到其它執(zhí)行節(jié)點(diǎn)了
        * U  由于服務(wù)器繁忙,任務(wù)被掛起
        * W  任務(wù)在等待它所請(qǐng)求的執(zhí)行時(shí)間的到來(qsub -a)
        * X  只用于子任務(wù),表示子任務(wù)完成

再舉一例,使用-a 選項(xiàng)指定任務(wù)開始執(zhí)行時(shí)間:

    [soofree@nod32]$ qsub -a 2102 test
    571.node32
    [soofree@node32]$ qstat

    Job id           Name     User    Time Use S  Queue
    —————- —————- —————- ———– — ——–
    570.cnode01      test       soofree     0    W    default

此時(shí)任務(wù)狀態(tài)(S)顯示 W,表示任務(wù)正在等待執(zhí)行時(shí)間的到來

PBS 命令與使用

PBS(Portable Batch System)是由NASA開發(fā)的靈活的批處理系統(tǒng)。它被用于集群系統(tǒng)、超級(jí)計(jì)算機(jī)和大規(guī)模并行系統(tǒng)。PBS主要有如下特征:
  • 易用性:為所有的資源提供統(tǒng)一的接口,易于配置以滿足不同系統(tǒng)的需求,靈活的作業(yè)調(diào)度器允許不同系統(tǒng)采用自己的調(diào)度策略。
  • 移植性:符合POSIX 1003.2標(biāo)準(zhǔn),可以用于shell和批處理等各種環(huán)境。
  • 適配性:可以適配與各種管理策略,并提供可擴(kuò)展的認(rèn)證和安全模型。支持廣域網(wǎng)上的負(fù)載的動(dòng)態(tài)分發(fā)和建立在多個(gè)物理位置不同的實(shí)體上的虛擬組織。
  • 靈活性:支持交互和批處理作業(yè)。
OpenPBS( http://www.OpenPBS.org/)是PBS的Open Source的實(shí)現(xiàn)。商業(yè)版本的PBS可以參照: http://www./。
1、PBS命令
   PBS提供4條命令用于作業(yè)管理。
(1)     qsub 命令用于提交作業(yè)腳本
命令格式:
qsub  [-a date_time] [-c interval] [-C directive_prefix]
[-e path] [-I] [-j join] [-k keep] [-l resource_list]  [-m mail_options]
[-M user_list][-N name] [-o path] [-p priority] [-q destination] [-r c]
[-S path_list] [-u user_list][-v variable_list] [-V]
[-W additional_attributes] [-z]
[script]
參數(shù)說明:因?yàn)樗捎玫倪x項(xiàng)一般放在pbs腳本中提交,所以具體見PBS腳本選項(xiàng)。
例:# qsub  aaa.pbs         提交某作業(yè),系統(tǒng)將產(chǎn)生一個(gè)作業(yè)號(hào)
(2)     qstat 命令用于查詢作業(yè)狀態(tài)信息
命令格式:qatat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]
參數(shù)說明:
-f  jobid  列出指定作業(yè)的信息
-a        列出系統(tǒng)所有作業(yè)
-i         列出不在運(yùn)行的作業(yè)
-n        列出分配給此作業(yè)的結(jié)點(diǎn)
-s        列出隊(duì)列管理員與scheduler所提供的建議
-R       列出磁盤預(yù)留信息
-Q       操作符是destination id,指明請(qǐng)求的是隊(duì)列狀態(tài)     
-q        列出隊(duì)列狀態(tài),并以alternative形式顯示
-au userid  列出指定用戶的所有作業(yè)
-B       列出PBS Server信息
-r        列出所有正在運(yùn)行的作業(yè)
-Qf queue 列出指定隊(duì)列的信息
-u        若操作符為作業(yè)號(hào),則列出其狀態(tài)。
若操作符為destination id,則列出運(yùn)行在其上的屬于user_list中用戶的作業(yè)狀態(tài)。
例:# qstat -f 211      查詢作業(yè)號(hào)為211的作業(yè)的具體信息。
(3) qdel 命令用于刪除已提交的作業(yè)
命令格式:qdel  [-W 間隔時(shí)間] 作業(yè)號(hào)
命令行參數(shù):
例:# qdel -W 15 211            15秒后刪除作業(yè)號(hào)為211的作業(yè)
(4)     qmgr 命令用于隊(duì)列管理
  qmgr -c "create queue batch queue_type=execution"
  qmgr -c "set queue batch started=true"
  qmgr -c "set queue batch enabled=true"
  qmgr -c "set queue batch resources_default.nodes=1"
  qmgr -c "set queue batch resources_default.walltime=3600"
  qmgr -c "set server default_queue=batch"
2、PBS腳本文件
PBS腳本文件由腳本選項(xiàng)和運(yùn)行腳本兩部分組成。
(1) PBS作業(yè)腳本選項(xiàng) (若無-C選項(xiàng),則每項(xiàng)前面加‘#PBS’
            -a  date_time : date_time格式為:[[[[CC]YY]MM]DD]hhmm[.SS]
                                                 表示經(jīng)過date_time時(shí)間后作業(yè)才可以運(yùn)行。
-c  interval   : 定義作業(yè)的檢查點(diǎn)間隔,如果機(jī)器不支持檢查點(diǎn),則忽略此選項(xiàng)。
-C  directive_prefix :在腳本文件中以directive_prefix開頭的行解釋為qsub的命
令選項(xiàng)。(若無此選項(xiàng),則默認(rèn)為’#PBS’ )
-e  path     :將標(biāo)準(zhǔn)錯(cuò)誤信息重定向到path
-I           :以交互方式運(yùn)行
-j  join      :將標(biāo)準(zhǔn)輸出信息與標(biāo)準(zhǔn)錯(cuò)誤信息合并到一個(gè)文件join中去。
-k  keep     :定義在執(zhí)行結(jié)點(diǎn)上保留標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息中的哪個(gè)文件。
                          keepo 表示保留前者,e表示后者,oeeo表示二者都保留,
                          n表示皆不保留。若忽略此選項(xiàng),二者都不保留。
-l  resource_list  : 定義資源列表。以下為幾個(gè)常用的資源種類。
 cput=N            : 請(qǐng)求N秒的CPU時(shí)間; N也可以是hh:mm:ss的形式。
          mem=N[K|M|G][B|W]:請(qǐng)求N {kilo|mega|giga}{bytes|words} 大小的內(nèi)存。
          nodes=N:ppn=M     :請(qǐng)求N個(gè)結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)M個(gè)處理器。
-m  mail_options :mail_optiona:作業(yè)abort時(shí)給用戶發(fā)信;為b:作業(yè)開始運(yùn)行發(fā)信;為e:作業(yè)結(jié)束運(yùn)行時(shí)發(fā)信。若無此選項(xiàng),默認(rèn)為a
-M  user_list   : 定義有關(guān)此作業(yè)的mail發(fā)給哪些用戶。
-N  name      : 作業(yè)名,限15個(gè)字符,首字符為字母,無空格。
-o  path       : 重定向標(biāo)準(zhǔn)輸出到path
-p  priority     : 任務(wù)優(yōu)先級(jí),整數(shù),[-10241023],若無定義則為0.
-q  destination  : destination有三種形式: queue , @server,queue@server
-r  y|n         : 指明作業(yè)是否可運(yùn)行,y為可運(yùn)行,n為不可運(yùn)行。
-S  shell       : 指明執(zhí)行運(yùn)行腳本所用的shell,須包含全路徑。
-u  user_list    : 定義作業(yè)將在運(yùn)行結(jié)點(diǎn)上以哪個(gè)用戶名來運(yùn)行。
-v  variable_list : 定義export到本作業(yè)的環(huán)境變量的擴(kuò)展列表。
-V             : 表明qsub命令的所有環(huán)境變量都export到此作業(yè)。
-W  additional_attributes  : 作業(yè)的其它屬性。
-z             : 指明qsub命令提交作業(yè)后,不在終端顯示作業(yè)號(hào)。
(2)     運(yùn)行腳本同LINUX下一般的運(yùn)行腳本文件。
[]:腳本文件中的mpirun_rsh命令行中的節(jié)點(diǎn)列表文件要用環(huán)境變量表示
$PBS_NODEFILE,這個(gè)環(huán)境變量表示由pbs自動(dòng)分配給作業(yè)的節(jié)點(diǎn)列表;
節(jié)點(diǎn)數(shù)為命令行中指定的進(jìn)程數(shù)。
格式如下:
mpirun_rsh –np 進(jìn)程數(shù) –hostfile $PBS_NODEFILE 可執(zhí)行程序名
 
命令詳解如下:
 
Getting Status on the System, Queues, and Jobs
CommandShort DescriptionTutorialManual Page
qstatlist information about queues and jobsUsing qstatqstat man page
qstat -qlist all queues on systemHTML and PSqstat man page
qstat -Qlist queue limits for all queuesHTML and PSqstat man page
qstat -alist all jobs on systemUsing qstatqstat man page
qstat -au useridlist all jobs owned by user useridUsing qstatqstat man page
qstat -slist all jobs with status commentsHTML and PSqstat man page
qstat -rlist all running jobsHTML and PSqstat man page
qstat -f jobidlist all information known about specified jobUsing qstatqstat man page
qstat -Qf queuelist all information known about specified queueUsing qstatqstat man page
qstat -BList summary information about the PBS serverHTML and PSqstat man page
Submitting a Job
qsub jobscriptsubmit jobscript to PBSUsing qsubqsub man page
qsub -Isubmit an interactive-batch jobUsing qsubqsub man page
qsub -q queuesubmit job directly to a specified queueUsing qsubqsub man page
Using the Graphical User Interface (GUI)
xpbsGraphical User Interface to PBS commandsUsing xpbsxpbs man page 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多