电竞比分网-中国电竞赛事及体育赛事平台

分享

(2)【轉】qsub命令

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

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

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

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

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

 資源請求的兩種方式:

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

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

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

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

    qsub mytask

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

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

       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

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

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

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

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

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

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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多