Ssh

在集群上送出作業的程式碼

  • March 9, 2019

我使用以下程式碼在集群上送出作業,但我不知道這些程式碼是什麼意思。如果可能的話,有人可以逐行解釋以下程式碼的含義。

#!/bin/bash
#PBS -N NAME_OF_JOB
#PBS -l nodes=1:ppn=20
#PBS -l matlab_user=1
#PBS -l matlab_lic=20
#PBS -l min_walltime=1:00
#PBS -q small
#PBS -S /bin/bash
##PBS -V
##PBS -m abe
#PBS -j oe
#
cd $PBS_O_WORKDIR
cat $PBS_NODEFILE
export PATH=/opt/software/matlabr2014a/mdcs/bin:$PATH
matlab -nodisplay -r "code1" -logfile code1.log

謝謝

這些命令用於任務調度程序。有幾種不同的,但這看起來像是我非常熟悉的扭矩格式。

扭矩 - http://docs.adaptivecomputing.com/torque/5-1-0/help.htm

這是扭矩 5 文件。您可能正在執行 2.x、4.x 或 5.x http://docs.adaptivecomputing.com/torque/5-1-0/help.htm#topics/torque/commands/qsub.htm?Highlight=- m%20abe

#PBS -N NAME_OF_JOB => Sets a name that can be identified in `qstat` or `checkjob`
#PBS -l nodes=1:ppn=20 => Requests 20 tasks, (1 node with 20 processors, 2 nodes with 10 processors ect...)
#PBS -l matlab_user=1 
#PBS -l matlab_lic=20 
#PBS -l min_walltime=1:00 => The job should run for at least 1 minute
#PBS -q small => => queue or class you administrator has configured
#PBS -S /bin/bash => Shell to use
##PBS -V => Commented out, exports environment variables to batch job
##PBS -m abe => Commented out, specifies when mail should be sent (abort, begin, end)
#PBS -j oe => Combine stdout and stderror into one directory

cd $PBS_O_WORKDIR => Environment variable of where the job runs
cat $PBS_NODEFILE => prints out the output of the spool. 

如果可能的話,有人可以逐行解釋以下程式碼的含義。

以“#PBS”開頭的命令是批處理作業高峰資源管理器的指令。您的集群應該有一個管理員可以指導您查看 PBS 文件。或者,這是我在網際網路上找到的一些:https ://rcc.its.psu.edu/user_guides/system_utilities/pbs/#overview

其他行是:

cd $PBS_O_WORKDIR

切換到環境變數 $PBS_O_WORKDIR 中定義的目錄

cat $PBS_NODEFILE

將名稱在環境變數 $PSB_NODEFILE 中定義的文件列印到螢幕上

export PATH=/opt/software/matlabr2014a/mdcs/bin:$PATH

更新 $PATH 變數(系統在其中查找執行檔)以包含目錄 /opt/software/matlabr2014a/mdcs/bin(可能是 matlab 執行檔所在的位置)

matlab -nodisplay -r "code1" -logfile code1.log

執行 MATLAB 以執行函式或子程序“code1”並將輸出發送到日誌文件“code1.log”

引用自:https://unix.stackexchange.com/questions/195591