|
用戶通過qsub命令來向系統(tǒng)提交任務,有兩種方式提交:腳本方式和命令行方式。(一般情況下,不允許root用戶使用qsub命令提交作業(yè))。下面先講一下用這兩種方式提交作業(yè)的過程。 腳本方式提交 用戶將需要執(zhí)行的程序或命令寫入腳本中,再加入一些必要或者可選的語句,就可以通腳本方式提交。腳本提交比較方便,用戶可以用最簡單的文字編輯器(例如 vi)編寫一個腳本,然后使用 qsub 命令提交該腳本,pbs 會按照腳本內容執(zhí)行相應的任務。腳本提交的不足之處就是需要用戶執(zhí)行任務前編寫腳本。 腳本方式提交任務的一般格式為:qsub [script_name],script_name 是任務腳本的名稱。 下面介紹 pbs 任務腳本的編寫方法。 pbs 任務腳本包括三部分: 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 任務(程序或命令):可以是用戶程序(如C程序),也可以是系統(tǒng)命令 下面是一個完整的任務腳本例子,腳本名為 mytask: 第 1 行說明所用的 shell;第 2 至5 行是 pbs 指示語句,設置了任務的一些屬性,并請求了資源;第 6 至8行是要執(zhí)行的命令及任務。 編寫完腳本后,使用 qsub 命令提交腳本,在 shell下輸入: 后敲回車。 系統(tǒng)會輸出一個任務標識符:sequence-number.servername,如 220.cnode01。sequence-number是任務編號,后面需要用這個號查看任務的執(zhí)行狀態(tài),ervername 是 pbs server的名稱。 命令行方式提交 命令行方式提交不用寫腳本,用戶可以直接從命令行輸入。輸入的內容基本上和在腳本中輸入的相同。其基本格式如下: qsub [directives] [tasks] ctrl-D 對于上面用腳本方式提交的任務,用命令行方式提交的格式如下: |