• ubuntu 服务器显示 计算显卡的剩余 显存空间 并执行计划任务


    在Ubuntu服务器上需要运行gpu计算任务,由于需要无人值守的在显存空间满足条件的时候运行程序,于是有了自动显示显存的程序及自动运行任务的程序:

    自动显示显存:

    import os
    import re
    import time
    
    memory_need = 10800  # 需求显存大小
    sec = 10  # 每几秒检查一次显卡空余
    
    flag = False
    
    
    while True:
        #print(time.asctime(time.localtime(time.time())))
        output = os.popen('gpustat')
        text = output.read()
        list = text.split('
    ')
        #res = re.compile(r'd+')
        for i, m in enumerate(list[1:-1]):
            #memory = re.findall(res, m)
            #m1 = int(memory[5])
            #m2 = int(memory[4])
            m1 = m.split('|')[2].split('/')[0].strip()
            m2 = m.split('|')[2].split('/')[1].strip().split()[0]
            m1 = int(m1)
            m2 = int(m2)
    
            print('显卡 %d 剩余内存空间 %d (MB)'%(i, m2-m1))
    
        break

    运行计划中的任务:

    import os
    import time
    
    
    cmds = ["python x.py",
            "python y.py",
            ]
    
    
    #############################################
    
    
    memory_need = 10800  # 需求显存大小
    sec = 10  # 每几秒检查一次显卡空余
    
    
    while True:
        output = os.popen('gpustat')
    import os
    import time
    
    
    cmds = ["python x.py",
            "python y.py",
            ]
    
    
    #############################################
    
    
    memory_need = 10800  # 需求显存大小
    sec = 10  # 每几秒检查一次显卡空余
    
    
    while True:
        output = os.popen('gpustat')
        text = output.read()
        list = text.split('
    ')
        for i, m in enumerate(list[1:-1]):
            m1 = m.split('|')[2].split('/')[0].strip()
            m2 = m.split('|')[2].split('/')[1].strip().split()[0]
            m1 = int(m1)
            m2 = int(m2)
            #print('显卡 %d 剩余内存空间 %d (MB)'%(i, m2-m1))
    
    
            if (len(cmds) != 0)  and ((m2 - m1) > memory_need):
                response = os.system('CUDA_VISIBLE_DEVICES=%d %s' % (i, cmds[0]))
                if response == 0:
                    response.pop(0)
    
        if (len(cmds) != 0):
            time.sleep(sec)
        else:
            break

    ================================================

    本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注者,如有侵权请与博主联系。
  • 相关阅读:
    Java判断字符串是否包含数字
    char 与 String 之间的转换
    hive与hbase整合方式和优劣
    曾经的你-许巍
    Hbase表重命名 表改名
    Eclipse 快键键(持续更新)
    Linux 查看一个端口的连接数
    hbase性能调优(转载)
    Hbase优化记录
    记录下Linux难记实用的命令
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/14677796.html
Copyright © 2020-2023  润新知