我的python脚本基本上与下面的示例代码类似,无法使用两个处理器通过multiprocessing
模块创建两个独立的进程。
创建,执行和联合两个进程,但所有进程都在一个核心上发生。
我无法理解问题是什么,因为在另一台机器上的一切都符合预期。 multiprocessing.cpu_count()
会在任一台计算机上返回4
。
所以我的问题有点模糊:原因可能是流程没有使用所有可用的处理器。
示例代码:
import numpy as np
import multiprocessing
n = 10
mat = np.random.randn(n, n)
vec = np.ones((n, 1))
def compprod():
print np.dot(mat, vec)
return
def compsum(times):
print times*vec
return
p1 = multiprocessing.Process(target=compprod)
p2 = multiprocessing.Process(target=compsum, args=(n, ))
p1.start()
p2.start()
p1.join()
p2.join()
print 'done'