强调texti尝试在我的MacBook Pro 15上的两个分区上执行一个简单的Python程序:MacOS Mojave和Windows 10。
我使用spsolve函数来求解某些矩阵上的稀疏线性系统,我发现与Macos相比,具有相同矩阵的相同代码在Windows上慢得多。
例如:
- 矩阵 1 -> MacOs:29 秒/Windows:377 秒
在 MacOS 上,当我执行这些计算时,处理器会全速,并且我感觉到风扇转动强劲。 在 Windows 上,这种情况不会发生,处理器保持在 20%。
我在两个系统上都使用 Python 3 64 位。
from scipy import array, linalg, dot
import scipy.io as sio
import numpy as np
import time
from scipy.sparse.linalg import spsolve
matrix_names = ['cfd1']
for matrice in matrix_names:
mat = sio.loadmat('/matrix_path/%s' %matrice)
A = mat['Problem']['A']
A=A[0][0]
matrix_size = np.shape(A)[0]
xe = np.ones(matrix_size)
b = A * xe
start = time.time()
X = spsolve(A, b)
end = time.time()
print("Times %.6f sec" %(end-start))
慢函数是
X = spsolve(A, b)
最佳答案
我发现问题了。
MKL默认情况下,Windows 上未实现库。 我不确定它在 MacOS 上是否已集成,但是在 Windows 上使用 Anaconda(它使用 MKL 库实现 Scipy),Python 文件的执行速度与在 MacOS 上一样快。
关于Python:与 MacOS 相比,Scipy 在 Windows10 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55903507/