在我们跑深度模型程序的时候,常常会碰到半夜两三点刚刚跑的情况。然后会浪费服务器几个小时的空闲时间(除非自己定闹钟起床跑脚本,熬夜就很伤身体,还掉头发T_T#)
最近学到一个小脚本,每10微秒监听一次服务器,当服务器为空时,执行脚本。话不多说,代码如下:
#! /usr/bin/bash
lim=100
while :
do
#监听间隔时间
sleep 10
a=`nvidia-smi --query-gpu=memory.used --format=csv|cut -f 1 -d ' ' | tail -n 8`
g0=`echo $a |cut -f 1 -d ' '`
g1=`echo $a |cut -f 2 -d ' '`
g2=`echo $a |cut -f 3 -d ' '`
g3=`echo $a |cut -f 4 -d ' '`
g4=`echo $a |cut -f 5 -d ' '`
g5=`echo $a |cut -f 6 -d ' '`
g6=`echo $a |cut -f 7 -d ' '`
g7=`echo $a |cut -f 8 -d ' '`
if [ $g0 -lt $lim ] && [ $g1 -lt $lim ] && [ $g2 -lt $lim ] && [ $g3 -lt $lim ] && [ $g4 -lt $lim ] && [ $g5 -lt $lim ] && [ $g6 -lt $lim ] && [ $g7 -lt $lim ]; then
#你想执行的程序
sh train.sh
exit
fi
done
可以根据服务器显卡数量自行灵活调整,祝大家实验顺利,多多发paper~