为什么导入 NumPy 时多处理会在单核上停止
当尝试使用 joblib 并行化 CPU 密集型循环时,您可能会遇到所有工作进程都分配给同一核心的问题,导致没有性能提升。出现这种情况是由于某些 Python 模块(包括 NumPy)在导入时操纵核心关联性。
根本原因:
NumPy 链接到多线程 OpenBLAS 库,这会干扰核心关联性
解决方案:
要解决此问题,请使用以下命令重置任务亲和性:
<code class="python">os.system("taskset -p 0xff %d" % os.getpid())</code>
导入后放置此行出现问题的模块。这会强制进程在所有可用核心上运行。
替代解决方案:
以上是为什么导入 NumPy 后单核上的多处理会停止?的详细内容。更多信息请关注PHP中文网其他相关文章!