毕竟不是计算机科班出身,很多计算机概念我其实并不清楚,很多时候对一个任务的解决只是凭着自己的悟性来模仿接触到的做法,大多数情况下并无可厚非,能完成任务即可,但是碰到多人协作的环境,往往就出了问题。
我一直都知道可以 cat /proc/cpuinfo 来查看cpu数量,用free -g 来查看内存的总量及消耗,用top来查看当前运行的任务情况。
以前都是三到五人的环境公用一个服务器,一般都有几十个cpu和几百G的内存,而且服务器还经常空闲着,所以不会面临资源的问题。
而最近接触的项目是多个小组公用服务器,所以面临计算资源的分配,接触了qsub和condor两种不同的任务提交模式。
qsub和condor其实都是用来运行一个脚本的,它与我们用bash或者sh来运行一个脚本的区别在于是否立即执行我们的脚本。
比如我写了一个脚本myscript.sh
我可以 bash myscript.sh 然后里面看到这个脚本被运行了
但是用 qsub myscript.sh, 就只是向我们的集群提交了一个任务而已,这个脚本什么时候运行,占用多少内存和cpu来运行,需要特定的设置好。
这里有个并行计算的ppt:http://www.marquette.edu/mugrid/bootcamp/2010Summer/Parallel.pdf 从计算机专业的角度来讲解了两者的区别。
其实只要看了这个https://wikis.nyu.edu/display/NYUHPC/Tutorial+-+Submitting+a+job+using+qsub 就能很容易明白qsub的用法,毕竟它只是一个命令而已,但是我们需要记住的是下面几个命令,因为经常用
PBS commands covered in this section
qsub
submit a job for execution
qstat
examine the status of a job (we have discussed what this status may be)
qhold
put a job on hold
qrls
release a job
qsig
send a signal to a job
qdel
delete a job
而condor其实很少见的。
An example Condor submission file is shown below:
Executable = ./myexecutable
Universe = vanilla
Log = condor.log
Output = out.log
Error = err.log
should_transfer_files = YES
when_to_transfer_output = ON_EXIT
transfer_input_files = mydata.txt
Save your script to a file with a name such as mysubmitfile.condor.
Once you have saved your submission script you can submit using the following command:
/dcs/condor/condor/bin/condor_submit mysubmitfile.condor
condor_q 可以用来查看任务提交情况
condor_rm 可以用来杀掉提交的任务。
任务提交模式还是挺有用的