1、后臺提交作業(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ù)被省略時,該命令可以從標準輸入獲得腳本文件名。 -a 間。格式為[[[[CC]YY]MM]DD]hhmm[.SS]。CC表示世紀,YY表示年(后兩位數(shù)字),MM表示月(兩位數(shù)字),DD表示天(兩位數(shù) 字),hh表示小時(兩位數(shù)字),mm表示分(兩位數(shù)字),SS表示秒(兩位數(shù)字)。如果DD指定的是未來日子,而未指定MM,則MM缺省值為當前月,否 則,MM的缺省值為下個月。如果hhmm指定的未來時間,而未指定DD,則DD的缺省值為當天,否則,DD的缺省值為明天。如果提交作業(yè)時使用該選項,當 指定時間還沒到時,作業(yè)狀態(tài)顯示為”W”。 -e 指定錯誤輸出文件名,格式為[hostname:]path_home。Hostname是返回錯誤輸出文件的主機名,path_home是錯誤輸出文件 的絕對路徑,如果指定了相對路徑,則相對用戶的主目錄。不使用該選項時,缺省值是在用戶主目錄下,以“作業(yè)名.e作業(yè)ID”命名的文件 -o 指定輸出文件名,格式為[hostname:]path_home。缺省值是在用戶主目錄下,以“作業(yè)名.e作業(yè)ID”命名的文件 -h 指定在提交作業(yè)時,設(shè)置用戶級’u’掛起。如果不指定,則設(shè)置掛起類型為’n’,即不掛起。 -I 指定作業(yè)以交互方式運行。 -j 指定合并錯誤輸出和實際輸出。如果指定’oe’,則合并到標準輸出文件中;如果指定’eo’,則合并到標準錯誤輸出文件中. -k 指定執(zhí)行主機是否保留錯誤輸出和實際輸出。如果指定‘o’,則僅保留標準輸出;如果指定’e’,則僅保留標準錯誤輸出;如果指定’oe’或‘eo’,則保留標準輸出和標準錯誤輸出;如果指定’n’,則不保留任何輸出。 -l 指定作業(yè)所需要的資源,設(shè)定對可消耗資源的限制。如果不設(shè)置,則無限制。例如: resource_name[=[value]][,resource_name[=[value]],…] LINUX系統(tǒng)可以設(shè)置的資源有cput, file, pcput, pmem, pvmem, vmem, walltime, arch, nodes, ncpus等; Cput指作業(yè)的所有進程使用cpu最長時間; File指作業(yè)可以建立單個文件大小的最大限制; Pcput指作業(yè)的單個進程可以使用CPU的最長時間; vmem指作業(yè)可以使用的物理內(nèi)存的最大值; Pmem指作業(yè)的單個進程可以使用的物理內(nèi)存的最大值; Pvmem指作業(yè)的單個進程可以使用的虛擬內(nèi)存的最大值; walltime指作業(yè)處于運行狀態(tài)的最長時間; arch 指定系統(tǒng)管理員所定義的系統(tǒng)結(jié)構(gòu)類型; host指定作業(yè)運行的主機名; nodes指定作業(yè)獨占使用的結(jié)點數(shù)目和屬性,使用“+”可以連接多種結(jié)點的定義。 結(jié)點的屬性和主機名或數(shù)目之間通過“:”分隔。如果不指定結(jié)點數(shù),則缺省為1。結(jié)點的屬性包括ppn(每個結(jié)點上的進程數(shù),缺省為1)和系統(tǒng)管理員設(shè)置的屬性(如batch、bigmem) 例如:請求12個結(jié)點,不管其屬性 -l nodes=12 請求12個屬性為batch的結(jié)點和14個屬性為bigmem的結(jié)點 -l nodes=12:batch+14:bigmem 請求4個結(jié)點,每個結(jié)點上使用2個CPU -l nodes=4:ppn=2 software 指作業(yè)要求的軟件包 -m 定義何時給用戶發(fā)送有關(guān)作業(yè)的郵件??稍O(shè)定的選項有: n 不發(fā)送郵件 a 當作業(yè)被批處理系統(tǒng)中斷時,發(fā)送郵件 b 當作業(yè)開始執(zhí)行時,發(fā)送郵件 e 當作業(yè)執(zhí)行結(jié)束時,發(fā)送郵件 -M 指定發(fā)送有關(guān)作業(yè)信息的郵件用戶列表。格式為user[@host][,user@[host],…]缺省值為提交作業(yè)的用戶。 -N 指定作業(yè)的名字。缺省值為腳本的名字,如果沒有指定腳本,則為STDIN。 -p 指定作業(yè)的優(yōu)先級,優(yōu)先級的范圍是[-1024, +1023]。缺省值是沒有優(yōu)先級。 -q 指定作業(yè)的目的地(結(jié)點池),目的地可有三種格式: pool @server pool@server -r y|n 指定作業(yè)是否可重新運行。指定‘y’時,作業(yè)可以重新運行;指定’n’時,作業(yè)不能重新運行。缺省值為’n’。 -v 格式為variable1,variable2,…或variable1=value,variable2=value,…這些變量和其值可以傳遞到作業(yè)中。 -V 指定qsub命令的所有的環(huán)境變量都傳遞到批處理作業(yè)中。 作用: 以腳本文件的形式向批處理服務(wù)器提交作業(yè)。 舉例: 運行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é)點池dque中運行。 $ 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é)點池long中運行,并且當作業(yè)開始運行時,給用戶發(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個結(jié)點運行cpi.ljrs,運行時間不能大于2小時,作業(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選項在指定的結(jié)點上交互式運行作業(yè) $ qsub –I -l nodes=c0101 運行該命令后,系統(tǒng)將自動切換到c0101的虛擬終端,所有的標準輸入和標準輸出和標準錯誤輸出均都顯示在該終端上. 在系統(tǒng)出現(xiàn)”waiting to jobid to start”時,用戶若按^C鍵,即可中斷該交互作業(yè).當該交互作業(yè)已經(jīng)啟動后,用戶除了交互式運行作業(yè)外,還可進行以下操作: ~. 該命令將使qsub退出,且終止作業(yè)。 ~^Z掛起qsub,作業(yè)依然保持運行狀態(tài),無任何輸入輸出。用戶可以在本地shell上提交命令。 ~^Y部分掛起qsub,因為還可以給作業(yè)發(fā)送輸入,而且接受作業(yè)的輸出的同時,還可以在本地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é)點池和批處理服務(wù)器的狀態(tài)。命令格式一可以輸出所指定作業(yè)ID或者結(jié)點池中所有作業(yè)的狀態(tài),命令格式二可以輸出每個結(jié)點池的狀態(tài)信息,命令格式三可以輸出服務(wù)器的狀態(tài)。 舉例: 1. 顯示已經(jīng)配置的所有結(jié)點池狀態(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表示某一個作業(yè)屬性值和選項參數(shù)值之間的關(guān)系。如 .eq. (等于) .ne. (不等于) .ge. (大于或等于) .gt. (大于) .le. (小于) 其它參數(shù)含義見qsub命令。 作用:列出符合選項要求的作業(yè)ID。這些作業(yè)來自于單個服務(wù)器。如果沒有任何選項,該命令則列出該用戶被授權(quán)的服務(wù)器上的所有作業(yè)。對那些普通用戶來說,該命令只顯示該用戶所提交的作業(yè)。 舉例: 1. 查詢用戶所提交的作業(yè) $ qsub -q long cpi.ljrs 28.console $ qselect 25.console 28.console 2. 查詢指定結(jié)點池中的作業(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. 查詢指定主機上的作業(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è)。掛起有三種類型:普通用戶級‘u’、管理員級(操作員級)‘o’、系統(tǒng)級‘s’,缺省值為不掛起‘n’。用戶只能在用戶級別掛起自己提交的作業(yè),操作員可以在用戶級和操作員級掛起任何作業(yè),系統(tǒng)管理員可以在任何級別上掛起任何作業(yè)。 在執(zhí)行該命令時,如果作業(yè)在運行結(jié)點池里排隊,那么作業(yè)將直接被掛起;如果作業(yè)處于運行狀態(tài),為了中斷作業(yè)的執(zhí)行,必須采取其他辦法。如果被掛起作業(yè)的主 機系統(tǒng)支持一致點檢查或者重新啟動,則掛起正在運行作業(yè)將引發(fā)以下操作:首先檢查作業(yè)的一致性,然后釋放該作業(yè)所占用的資源,最后該作業(yè)位于執(zhí)行結(jié)點池 中,處于掛起狀態(tài);如果被掛起作業(yè)的主機系統(tǒng)不支持一致點檢查或者重新啟動,則僅設(shè)置指定的掛起作業(yè)類型,而實際上并不能掛起,除非調(diào)用qrerun命令 重新運行該作業(yè)時,該掛起請求才生效。 舉例: 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級 舉例:釋放在普通用戶和操作員級被掛起的作業(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è)qrerun 語法:qrerun job_identifier ... 作用:重新運行所指定的作業(yè)。 舉例:如果作業(yè)允許別重新執(zhí)行(缺省值是可以重新運行)。ROOT用戶運行該命令,可以終止本次運行,把該作業(yè)放入其原來所在的結(jié)點池中,重新運行。 $ 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)屬性(選項表中所列出的屬性)。 舉例:1. 更改批處理作業(yè)的運行時間屬性。 $ qalter -a 0309251000 23.console 2. 更改給用戶發(fā)送郵件的時間為作業(yè)中止和運行結(jié)束時 $ qalter –m ae 23.console
8、刪除作業(yè)qdel 語法:qdel [-W delay|force] job_identifier ... 參數(shù):-W 當指定delay 時,表示在刪除作業(yè)前需要等待的時間(秒) 當指定force時,強制刪除該作業(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 將消息串寫入錯誤輸出文件 -O將消息串寫入輸出文件 作用:給批處理作業(yè)發(fā)送消息。該命令通過給作業(yè)的所有者(批處理服務(wù)器)發(fā)送消息,從而把消息寫入作業(yè)的輸出文件,也就是說,該命令并不是直接把消息寫入作業(yè)的輸出文件。 舉例:給正在運行的作業(yè)發(fā)送消息,該消息被寫入所指定作業(yè)的錯誤輸出文件中。 $ 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é)點池之間移動作業(yè)qmove 語法:qmove destination job_identifier ... 參數(shù):destination可以為結(jié)點池名 作用:把批處理作業(yè)移到其他結(jié)點池中去運行。即把作業(yè)從所在的結(jié)點池中刪除,并放在其他結(jié)點池中。 舉例: $ 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ā)送信號qsig 語法:qsig [-s signal] job_identifier ... 參數(shù):參數(shù)signal可以為信號名稱,如SIGKILL,KILL,SIGNULL或者無符號整數(shù),如9、0。 作用:給正在運行的批處理作業(yè)發(fā)送信號。如果不指定-S選項,則發(fā)送“SIGTERM”信號。如果有下列原因之一,如用戶無權(quán)給作業(yè)發(fā)送信號、作業(yè)未處于運行狀態(tài)和該信號請求對作業(yè)所運行的系統(tǒng)無效,則拒絕執(zhí)行該命令請求。
12、查看和管理結(jié)點ljrsnodes 語法:ljrsnodes [- {c|o|r}] [nodename …] ljrsnodes - {a|l }] 參數(shù):-a 列出所有結(jié)點及其屬性,屬性包括“state”和“properties” -c 清除結(jié)點列表中的“offline”或“down”狀態(tài)設(shè)置,使結(jié)點可以被分配給作業(yè)。 -l 以行的方式列出被標記的結(jié)點的狀態(tài) -o 將指定結(jié)點的狀態(tài)標記為“offline”。這將幫助管理員暫時停止某些結(jié)點的服務(wù)。 -r 清除指定結(jié)點的“offline”狀態(tài) 作用:該命令可以標記結(jié)點的狀態(tài)為“offline”、“down”或“free”,也可以幫助用戶查看結(jié)點信息。除了”-a” 和“-l”選項外,使用其他選項需要擁有操作員和管理員權(quán)限。 舉例:1、查看所有結(jié)點信息 ljrsnodes -a 2、將結(jié)點標記為“offline”狀態(tài) ljrsnodes –o c0108 3、清除結(jié)點的“offline”狀態(tài)設(shè)置 ljrsnodes –c c0108 或 ljrsnodes –r c0108
13、查看所有計算結(jié)點的狀態(tài)shownodes 語法:shownodes [-h] 作用:按照結(jié)點池分類顯示各結(jié)點池中結(jié)點的狀態(tài),結(jié)點狀態(tài)以不同顏色顯示。并在結(jié)點名后以數(shù)字代表可用CPU數(shù)和總共CPU數(shù)。例如c0101-2/2, 表示c0101結(jié)點可用2CPU總共2CPU,c0102-1/2表示C0102可用1CPU總共2CPU。 舉例:$shownodes –h 用戶通過qsub命令來向系統(tǒng)提交任務(wù),有兩種方式提交:腳本方式和命令行方式。(一般情況下,不允許root用戶使用qsub命令提交作業(yè))。下面先講一下用這兩種方式提交作業(yè)的過程。 PBS 命令與使用
|
|