我有一个需要多重处理的程序。它调用的函数将自动使用每个可用的内核。然而,这在某种程度上导致了一个问题,因为每个核心都用于每个进程,这意味着每个核心都有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个核心,但是该函数不是我的,而是我调用的应用程序,我不知道在源代码中限制在哪里
有什么建议吗
非常感谢
我找到了答案here
基本上,(我怀疑numpy的)BLAS特性干扰了我的多处理。这修正了它:
相关问题 更多 >
编程相关推荐