理解为什么每次导入numpy时都会创建一个分支

5
无论何时我执行import numpy,都会创建11个子进程(我的CPU有6/12个核心/线程),即使numpy未被使用。这只发生一瞬间,但每个子进程都会接收内存中分配的对象的副本。虽然这发生在非常早期,但我担心可能存在任何副作用。有人能解释一下为什么会发生这种情况吗?
以下是代码示例:
import time
import numpy

def hello_world():
    print("Hello world")
    time.sleep(10)

if __name__ == '__main__':
    print("Running")
    time.sleep(30)
    hello_world()

最简单的获取答案的方法可能是阅读源代码(链接)。 - Nearoo
1
原来之前的评论是错误的。这个分叉可能不是发生在numpy本身,而是发生在numpy使用的线性代数库中,很可能是MKL。请参考此评论 - heiner
1个回答

0
这是由OpenBLAS引起的。您可以通过调用OPENBLAS_NUM_THREADS=1 python myscript.py来解决这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接