理解为什么numpy每次导入时都会生成一个fork

e0bqpujr  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(71)

每当我创建import numpy时,即使不使用numpy,也会创建11个子进程(我的CPU有6/12个核心/线程)。这种情况只会发生一会儿,但每个子进程都会收到内存中分配的对象的副本。这不是一个大问题,因为它发生在一开始,但我担心任何可能的副作用。有人能解释一下为什么会这样吗?
这里很简单的一段代码来重现这个问题:

import time
import numpy

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

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

字符串

7dl7o3gd

7dl7o3gd1#

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

相关问题