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è)的過程。 PBS 命令與使用
|
|