当使用多处理池时,在Docker中运行python会陷入困境

2024-05-29 02:48:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Docker容器中使用scipy.optimize.differential_evolution函数,并将paramater workers=-1传递给它。这可以使用Python的多处理库(它使用一个池)以最大数量的可用CPU实现并行处理。查看Scipy源代码,当提供参数workers=-1时,调用multiprocessing.Pool()时,幕后没有任何参数。这样就可以使用最大数量的CPU核

每次迭代都会打印一条消息。运行容器时,前几个迭代似乎正常工作。然而,在某些时候,python脚本似乎被卡住了,因为没有打印新的输出(并且我的计算机上的风扇关闭了…)。这种情况发生时不会打印任何错误

请注意,当我删除或更改workers参数为4时,一切都按预期工作,执行不会停滞。(我的电脑有8个核心。)

我曾尝试增加分配给Docker的内存,但不幸的是,这并没有起到任何作用

请让我知道,如果有什么我应该扩大。谢谢


Tags: 函数docker参数数量源代码scipycpumultiprocessing

热门问题