实操教程|我的实验要跑很久,你们忍一下
共 2060字,需浏览 5分钟
·
2021-08-05 15:16
极市导读
实验室的显卡整天都是被占满了,严重影响进度。要是能够写一个脚本,自动检测空闲的显卡,然后发消息通知我就好了。于是本文项目“GPU Notice”应运而生。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
背景
一般来说,出于成本以及实用性的考量,实验室购买的显卡通常都是8卡或4卡的服务器,大家平时用的时候都是“抢占式”,也就是谁先来的显卡就是谁的。随着AAAI/CVPR的投稿日期越来越近,最近实验室的显卡整天都是被占满了(又不能把其他同学的程序kill掉),严重影响了实验的进度。再不想想办法,下周的组会都不知道汇报个啥了。但是,自己也不能总盯着电脑看GPU啥时候有空闲,经常就是一不留神,又被其他同学占用掉了(太卷了)。要是能够写一个脚本,自动检测空闲的显卡,然后发消息通知我就好了。于是乎,就有了本文的项目:GPU Notice。
技术路线选择
为了达到实时的提醒,最好的方式无非是短信、邮件。短信的话可以接入一些云平台,每个月都能够有免费的短信发送额度。优点是实时性可能比邮件要更好些,毕竟平时并没有比较高频率查看邮件的习惯,缺点就是,大多数靠谱的云平台目前都不支持个人申请。因此,本项目采用的还是使用邮件发送的实现方式。
脚本的运行流程比较简单,就是查找符合条件的GPU,然后根据触发方式的不同进行邮件的发送。水平触发(level trigger)和边缘触发(edge trigger)其实是IO多路复用里面的一个概念,在我们这里的具体区别如下:
水平触发:不断查询是否有可用的GPU,有的话就根据发送的冷却时间进行邮件发送 边缘触发:只有可用GPU列表发生改变时,才触发邮件发送事件
如何使用
申请邮箱并开启SMTP
因为本项目需要使用邮箱进行邮件的发送操作,因此需要先申请一个邮箱(你也可以用自己现有的,但是不建议)。我是直接申请了一个163的邮箱,然后开启SMTP服务。具体操作可以参考这篇文章[1]。申请完邮箱之后,可以在邮箱的设置里面找到下图的设置:
点击开启之后,根据提示继续走下去就可以拿到一个授权码(妥善保存),如下图所示:
下载项目源码
项目地址:https://github.com/CVHuber/GPU_Notice
下载完之后,所有的配置可以在config.yml
文件中进行设置。
为了方便大家阅读和继续改造,代码里注释还是比较多的,使用之前把一些必要的库装上就好了(应该只有yaml一个第三方库)。为了让这个脚本后台运行的话,大家使用以下命令就好了:
nohup python -u main.py > gpunotice.log 2>&1 &
# 2 输出错误信息到提示符窗口
# 1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件
# 最后会把日志文件输出到gpunotice.log文件
nohop
也算是一个比较常用的命令,能够让程序在后台运行。相比如ctrl+z
来说,这个命令即使在断开了ssh连接之后,仍然可以继续后台保持运行。
还有一件事
本人代码能力比较菜,代码也仅仅是“能用”的程度,如果有什么不合理的地方还是希望大家多多包涵(溜了溜了)。
References
[1]https://www.runoob.com/python/python-email.html
如果觉得有用,就请分享到朋友圈吧!
公众号后台回复“CVPR21检测”获取CVPR2021目标检测论文下载~
# CV技术社群邀请函 #
备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)
即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群
每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~