使用多处理池时,在Docker中运行python卡住了

时间:2020-06-09 14:43:15

标签: python docker python-multiprocessing scipy-optimize

我正在Docker容器内使用scipy.optimize.differential_evolution函数,并将参数worker = -1传递给它。这可以使用Python的多处理库(它使用池)以最大数量的可用CPU进行并行处理。查看Scipy源代码,当提供参数worker = -1时,将在没有任何参数的情况下调用multiprocessing.Pool()。从而使用最大数量的可用CPU内核。

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

请注意,当我删除或将worker参数更改为4时,一切都会按预期进行,并且执行不会卡住。 (我的计算机有8个核心。)

我曾尝试增加分配给Docker的内存,但不幸的是,这并没有帮助。

请让我知道是否有需要扩展的内容。谢谢

0 个答案:

没有答案