Ssh
在集群上送出作業的程式碼
我使用以下程式碼在集群上送出作業,但我不知道這些程式碼是什麼意思。如果可能的話,有人可以逐行解釋以下程式碼的含義。
#!/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”