当活动作业的数量少于N时添加新任务

时间:2019-07-08 18:51:05

标签: python multiprocessing python-multiprocessing

我正在尝试在一定数量的内核上并行执行一些非常耗时的任务。我的目标是尽可能利用服务器资源。 CPU总数为20,但是要执行的任务数量却更多(例如100)。

每个任务的运行时间不同,因此下面的代码为一定数量的内核闲置而没有工作提供了机会。

import multiprocessing as mp


def some_task(*args):
    # Something happening here
    pass


cpu_count = mp.cpu_count()
p = mp.Pool(cpu_count)

n_thread = 1
for something in somethings:

    p.apply_async(some_task, args=(something, ))

    if n_thread == cpu_count:
        p.close()
        p.join()
        p = mp.Pool(cpu_count)
        n_thread = 1
        continue
    n_thread += 1

p.close()
if n_thread != 1:
    p.join()

当活动作业的数量少于CPU的数量时,如何编程将启动新任务的代码?

0 个答案:

没有答案