QA@IT

マルチプロセスでの処理速度打ち止めについて

461 PV

pythonでmultiprocessing(プロセスベースの並列処理)を実装しましたが、processes数をある一定数を超えると処理速度が上がらないようです。私のLINUX環境のCPU数は32なのですが、processesは10程度で打ち止めになり、それ以上増やしても速度は上がりませんでした。
処理速度が打ち止めになる理由はなんでしょうか?

$ lscpu
Architecture: x86_64
CPU 操作モード: 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
・・・

回答

投稿者です。
dat0 = np.array(list(map(lambda x, y: np.dot(x, y), cvec.T, d_vec)))

の部分を以下のようにeinsumで書くことにより2倍程度高速化しましたので、クローズといたします。

dat0 = np.einsum("ij,ijk->ik", cvec.T, d_vec)

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。