並列処理でPythonの処理速度を上げる方法

lockdefです

Pythonでの高速化テクニックはいくつかありますが、今回は並列処理について紹介します

並列処理とは

同時に複数の処理を行うことです。
同時に多くのタスクをこなすことで処理時間を短くすることができます。

前準備

必要ライブラリをインストールします

pip install joblib

コード

検証用の関数を用意します

def f(x):
    x = [i*x for i in range(2000)]
    x = [i**2 for i in x]
    x = sum(x)
    return x

普通の処理です

[f(x) for x in range(1000)]

並列処理です 普通の処理と比べてみてください

from joblib import Parallel, delayed

Parallel(n_jobs=-1)([delayed(f)(x) for x in range(1000)])

結果

f:id:lockdef:20190507235244p:plain
処理時間の比較(ms)

並列処理のほうが早いです。 Pythonを使っていて高速化をしたいときはぜひ使ってみてください