第二章 服务器
一、任务提交的两种方法
1.qsub
不能实时监控,只能等运行结束了看最终结果,当然或者是error中断了。所以自从知道了nohup几乎不再用qsub了,当然可能有优点,但是我暂且还没有发现(仅和nohup相比)
使用qsub需要写个bash脚本
例1
# gpu_resnet.sh
source activate
conda deactivate
cd /share2/pub/yangjy/yangjy/image/ResNet/
/share2/pub/yangjy/yangjy/conda3/bin/python /share2/pub/yangjy/yangjy/image/ResNet/code/train.py
如果需要将任务提交到gpu02节点,申请的cpu数为5,内存为30GB
qsub gpu_resnet.sh -q gpu02 -l ncpus=5 -l mem=30gb
例2
# cpu_resnet.sh
#!/bin/sh
#PBS -N resnet_cpu
#PBS -l nodes=fat03
#PBS -q fat
#PBS -l walltime=1000:00:00
#PBS -j oe
source activate
conda deactivate
cd /share2/pub/yangjy/yangjy/image/ResNet/
/share2/pub/yangjy/yangjy/conda3/bin/python /share2/pub/yangjy/yangjy/image/ResNet/code/train.py
将任务提交到fat队列(-q fat)的fat03节点(-l nodes=fat03),没有指定cpu个数和内存使用量,自动分配内存,默认cpu使用1个
- 提交
qsub 脚本名 *
注: *表示其他参数,可加可不加,如果在脚本中没有写明了在哪一个队列和哪一个节点或者更多信息,可以在提交任务的时候显式写出,如例1。如果在脚本中注明了,则可以直接提交
qsub gpu_resnet.sh -q gpu02 -l ncpus=5 -l mem=30gb
# 或
qsub cpu_resnet.sh
- 查看运行情况
qstat
- 中断任务
qdel taskid
qdel 756793
qsub 最终回生成一个.e文件是error的文本,还有一个.o文件是日志文本
2.nohup
提交后可以在后台查看运行的状况(实时监控)nohup 操作 文件名 &>log文件名&
- 提交
nohup python train_v2.py &> ./swin.out&
- 查看提交的任务情况
ps -ef
中断任务 kill -9 taskid
如果是上面的任务id是229140
kill -9 229140
如果不记得当时的id,使用ps -ef
查看运行状况,第二例就是