Итак, у меня есть этот действительно простой код:
import numpy as np
import scipy as sp
mat = np.identity(4)
for i in range (100000):
np.linalg.inv(mat)
for i in range (100000):
sp.linalg.inv(mat)
Теперь, первый бит, где инверсия выполняется через numpy, по какой-то причине запускает 3 дополнительных потока (итого 4 всего, включая основной)и в совокупности они потребляют примерно 3 или мои доступные ядра, что приводит к сбою вентиляторов на моем компьютере.
Второй бит, в котором я использую Scipy, не оказывает заметного влияния на использование процессора, и есть только один поток, основной поток,Это работает примерно на 20% медленнее, чем простой цикл.
Кто-нибудь знает, что происходит?Numpy выполняет потоки на заднем плане?Почему это так неэффективно?