简介:
Multiprocessing,一个用于并行化任务的 Python 库,旨在跨多个核心分配工作。然而,用户遇到了 Numpy 的导入干扰这种分布的问题,导致所有工作进程都被分配到单个核心。
说明:
导入 Numpy 时,Numpy 中的某些 CPU 密集型模块(例如 OpenBLAS)可以修改核心关联性。这种干扰将所有工作进程分配给同一核心,从而消除了多处理的并行化优势。
解决方法:
要解决此问题,请使用代码重置任务关联性代码片段: os.system("taskset -p 0xff %d" % os.getpid())。此命令强制操作系统在所有可用核心之间均匀分配工作进程。
其他注意事项:
替代解决方案:
通过应用这些解决方案,多处理可以有效地将工作进程分布在多个核心上,解决了核心集群的初始问题,增强了并行化性能。
以上是为什么导入 Numpy 会将多处理限制为单核?的详细内容。更多信息请关注PHP中文网其他相关文章!