Python multiprocessing ValueError

2020-06-28 14:47:26 +08:00
 zckun

机器配置: Windows 10 企业版 64 位 Intel(R) Xeon(R) Platinum 8173M 内核:56 逻辑处理器:112

用 python multiprocessing 中的进程池会出现 ValueError: need at most 63 handles, got a sequence of length 114

这是 windows 才会有的异常么,很少用 windows,也第一次用这种 U,google 也找不到什么答案

2711 次点击
所在节点    Python
3 条回复
UN2758
2020-06-28 17:13:34 +08:00
可能和 numa 有关?win10 设计是 64 个核心一个 numa 调度,可能是这方面的问题
hareandlion
2020-06-28 18:01:24 +08:00
貌似有人提过类似的 bug
https://bugs.python.org/issue26903

CPython 底层源码里 max_workers 加了限制
https://github.com/python/cpython/commit/39889864c09741909da4ec489459d0197ea8f1fc

看 issue 的状态是已经在 3.7 和 3.8 版本里修复了,更新一下 Python 版本试试?
这种硬件超过软件设计的情况也算难得了吧
volvo007
2020-06-28 21:36:23 +08:00
win10 有个 workstation 版本,这个能解决核心的调度问题吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX