如何根据CPU利用率增加进程数?

时间:2019-03-29 15:10:22

标签: python-3.x python-multiprocessing

我正在Python多处理中运行许多不同大小的作业。仅当CPU利用率低于80%时才如何添加新作业(进程)? 有些作业可能需要几纳秒的时间,而另一些作业可能要花几分钟才能提高CPU利用率。 我想在Python中使用 Process 而不是 Pool ,因为 Pool 不允许生成子进程。 目前,我正在使用类似于Baedsch建议的here中的这段代码:

import multiprocessing
def chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i + n]

numberOfThreads = 4


if __name__ == '__main__':
    jobs = []
    for i, param in enumerate(params):
        p = multiprocessing.Process(target=f, args=(i,param))
        jobs.append(p)
    for i in chunks(jobs,numberOfThreads):
        for j in i:
            j.start()
        for j in i:
            j.join()

0 个答案:

没有答案