私が持っているものは、1秒で10,000回ループすることができる関数です。しかし、私はこの機能を何千億〜何百万回も実行する必要があります。 CPUを使用するオーバーヘッドのために予想通り、ネイティブのmultiprocessing
パッケージを4コアで使用すると、10kループが1.5秒遅くなります。 multiprocessing
のchunkksizeパラメータを使用することは簡単でした。複数のプロセスがオーバーヘッドよりも高速化された状態でこの関数を呼び出す方法はありますか?Pythonの非常に高速な関数に複数のCPUを使用する
機能の切り捨てられたバージョン:
rands = np.random.random((200, 1000000))
def randfunc(i):
Q = np.concatenate([rands[:,[i]], rands[:,[i]] * rands[:,[i+1]]],axis=1)
Q2 = np.dot(np.transpose(Q),Q)
Q3 = np.linalg.inv(Q2) * Q2[1,1]
return Q3
WindowsまたはUnix OSをお使いですか? – Dunes
私はWindowsとUbuntuの両方にアクセスできます – evoclue