を増加させない私は、関数numpy.linalg.matrix_powerをparalizeする必要があると私は、私が試してみましたどのくらい速く並列バージョンParalizeのnumpy.linalg.matrix_powerがパフォーマンス
def aux_matrix_arg3(A):
aaa=np.linalg.matrix_power(np.random.randn(199,199),100)
return 1
N=10000
processes=4
chunksize=N/processes
poolWorkers=mp.Pool(processes=processes)
ti=t.time()
A=poolWorkers.map(aux_matrix_arg3,range(N),chunksize=chunksize)
print 't_iteration 3',t.time()-ti
ことができるテストするには、次のコードを使用します私のラップトップには1と4のプロセスがあります。 t_iteration 3つの40.7985408306 1工程:t_iteration 3 40.6538720131
私はparalleプロセスとすべてのimprovmentを得ることはありません、なぜ任意の手掛かり私は非常に類似した性能 4のプロセスを得ましたか。
1プロセス対4プロセスのCPU負荷を確認する必要があります。たぶん 'np.linalg.matrix_power'は既にマルチプロセスであるか、内部的にマルチスレッド化されています。 – MSeifert
あなたは正しいです!すでにマルチスレッド化されています。 – user2157396