如果我有一系列 CPU 密集型操作,多线程我的程序是否必然会减少它的运行时间?这样做的权衡是什么?在这种情况下,我试图计算一个非常大的矩阵的零空间。我正在使用 Python,特别是 numpy 包:
def nullspace(A, eps=1e-15):
"""Computes the null space of the real matrix A."""
n, m = shape(A)
if n > m :
return nullspace(transpose(A), eps)
_, s, vh = linalg.svd(A)
s = append(s, zeros(m))[0:m]
null_mask = (s <= eps)
null_space = compress(null_mask, vh, axis=0)
return null_space.tolist()
另外,我很想知道如何对这样的功能进行多线程处理。提前致谢。