具有资源限制的多处理

时间:2021-04-07 10:35:30

标签: python python-3.x multiprocessing python-multiprocessing

我有 4 个 GPU,假设我将生成 100 个进程,每个进程将消耗 1 个 GPU< /强>。如果有一个空的 GPU,该进程将能够运行。完成的进程将释放 GPU 以供另一个进程使用。这是部分尝试:

def worker(procnum,gpus):
    #how to only allow the process to come in when there is available gpus?
    print(procnum)
manager = multiprocessing.Manager()
gpus = manager.list(range(4))
manager = multiprocessing.Manager()
jobs = []
for i in range(100):
    p = multiprocessing.Process(target=worker, args=(i,gpus))
    jobs.append(p)
    p.start()

for proc in jobs:
    proc.join()

print(gpus)

实现我提到的目标的好方法是什么? (不限于以上代码,仅供参考)

0 个答案:

没有答案