在python中进行多重处理之前限制cpu内核

问题描述 投票:0回答:1

我有一个需要多处理的程序。它调用的函数将自动使用每个可用的内核。但是,这在某种程度上会引起问题,因为每个内核都用于每个进程,这意味着每个内核都有100 * x%的负载,其中x是生成的进程数。因此,对于6个流程,每个疮的使用率为600%。

该代码非常简单,并使用通常的代码:

pool = Pool(processes=6)
for i in pool.imap_unordered(main_program, range(100)):
    print('Task in pool has finished')

但是,这将使每个内核处于600%的负载,并且比单独执行每个进程都要慢。我以为我使用mp模块是错误的,但是我似乎无法弄清楚哪里。

注:我的理想解决方案是将主要功能限制为仅使用1个内核,但是该功能不是我的,而是我调用的应用程序,并且我不知道在源代码中将其限制在哪里。

有什么建议吗?

非常感谢

python process multiprocessing python-multiprocessing pool
1个回答
0
投票

我找到了答案here

© www.soinside.com 2019 - 2024. All rights reserved.