我有 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)
实现我提到的目标的好方法是什么? (不限于以上代码,仅供参考)