GPU排队脚本实现空闲触发python脚本实现示例

 更新时间:2021年11月01日 16:33:15   作者:木盏  
有的服务器是多用户使用,GPU的资源常常被占据着,很可能在夜间GPU空闲了,但来不及运行自己的脚本。如果没有和别人共享服务器的话,自己的多个程序想排队使用GPU,也可以用这个脚本

今天写了一个GPU排队脚本,事实上还是挺实用的。有的服务器是多用户使用,GPU的资源常常被占据着,很可能在夜间GPU空闲了,但来不及运行自己的脚本。如果没有和别人共享服务器的话,自己的多个程序想排队使用GPU,也可以用这个脚本。环境非常简单,有python就行了:

python3.7

ubuntu16.04

先创建脚本:

vim narrow_setup.py

 cmd = 'python xxx.py'这句可以设置你要运行的python脚本

# author: muzhan
# contact: levio.pku@gmail.com
import os
import sys
import time 
cmd = 'python ~/hehe.py' 
def gpu_info():
    gpu_status = os.popen('nvidia-smi | grep %').read().split('|')
    gpu_memory = int(gpu_status[2].split('/')[0].split('M')[0].strip())
    gpu_power = int(gpu_status[1].split('   ')[-1].split('/')[0].split('W')[0].strip())
    return gpu_power, gpu_memory 
def narrow_setup(interval=2):
    gpu_power, gpu_memory = gpu_info()
    i = 0
    while gpu_memory > 1000 or gpu_power > 20:  # set waiting condition
        gpu_power, gpu_memory = gpu_info()
        i = i % 5
        symbol = 'monitoring: ' + '>' * i + ' ' * (10 - i - 1) + '|'
        gpu_power_str = 'gpu power:%d W |' % gpu_power
        gpu_memory_str = 'gpu memory:%d MiB |' % gpu_memory
        sys.stdout.write('\r' + gpu_memory_str + ' ' + gpu_power_str + ' ' + symbol)
        sys.stdout.flush()
        time.sleep(interval)
        i += 1
    print('\n' + cmd)
    os.system(cmd) 
if __name__ == '__main__':
    narrow_setup()

直接运行脚本:

python narrow_setup.py

就可以监听nvidia-smi中的信息,以伺机触发python脚本~

运行结果如下:

等待机会中... 如果gpu显存和功耗低于某个值时,就会触发python脚本。

以上就是GPU排队脚本实现一旦空闲就触发python脚本实现示例的详细内容,更多关于GPU排队脚本实现空闲触发python脚本的资料请关注脚本之家其它相关文章!

相关文章

  • Python下使用Psyco模块优化运行速度

    Python下使用Psyco模块优化运行速度

    这篇文章主要介绍了Python下使用Psyco模块优化运行速度,Psyco模块可以使你的Python程序运行的像C语言一样快,本文给出了多个代码示例,并讲解了Psyco的安装和使用方法,需要的朋友可以参考下
    2015-04-04
  • python 包实现JSON 轻量数据操作

    python 包实现JSON 轻量数据操作

    这篇文章主要介绍了python 包实现JSON 轻量数据操作,文章介绍内容首先将对象转为json字符串展开主题详细内容需要的小伙伴可以参考一下
    2022-04-04
  • Python中np.argmax()函数用法示例

    Python中np.argmax()函数用法示例

    np.argmax是用于取得数组中每一行或者每一列的的最大值,常用于机器学习中获取分类结果、计算精确度等,下面这篇文章主要给大家介绍了关于Python中np.argmax()函数用法的相关资料,需要的朋友可以参考下
    2022-12-12
  • 利用标准库fractions模块让Python支持分数类型的方法详解

    利用标准库fractions模块让Python支持分数类型的方法详解

    最近在工作中遇到了分数处理,查找相关的资料发现可以利用Fraction类来实现,所以下面这篇文章主要给大家介绍了关于利用标准库fractions模块让Python支持分数类型的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-08-08
  • 使用Requests库来进行爬虫的方式

    使用Requests库来进行爬虫的方式

    这篇文章主要介绍了使用Requests库来进行爬虫的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python打包文件执行报错:ModuleNotFoundError: No module named ‘pymssql‘的解决方法

    Python打包文件执行报错:ModuleNotFoundError: No module 

    这篇文章给大家介绍了Python打包文件执行报错:ModuleNotFoundError: No module named ‘pymssql‘的解决方法,如果有遇到相同问题的朋友可以参考阅读一下本文
    2023-10-10
  • 利用Python实现模拟登录知乎

    利用Python实现模拟登录知乎

    这篇文章主要为大家介绍了如何利用Python实现模拟登陆知乎功能,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • Python用SSH连接到网络设备

    Python用SSH连接到网络设备

    这篇文章主要介绍了Python用SSH连接到网络设备,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • python反转单链表算法题

    python反转单链表算法题

    这篇文章主要为大家详细介绍了python反转单链表算法题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python搭建HTTP服务器和FTP服务器

    Python搭建HTTP服务器和FTP服务器

    这篇文章主要为大家详细介绍了Python搭建HTTP服务器和FTP服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论