\

PythonはGIL(グローバルインタプリタロック)というものがかかっており、基本的にただコードを書いただけでは複数のCPUコアがある場合にそのリソースを全て使い切ることが出来ません。しかし、大量のデータを処理する時などにはマシンのCPUリソースを全て使って出来るだけ高速に計算させたい時があります。

Pythonで並列処理を行うためには、Joblibというライブラリを使用します。Joblibは、Pythonの並列処理を容易に行うためのライブラリです。Joblibを使用すると、複数のプロセスを同時に実行することができます。

from joblib import Parallel, delayed

def process(n):
    return sum([i*n for i in range(100000)])

# 繰り返し計算 (並列化)
r = Parallel(n_jobs=-1)([delayed(process)(i) for i in range(10000)])
print(sum(r))

上記のコードは、process関数を10000回呼び出す並列処理を行います。Paralleldelayedを組み合わせることによってマルチプロセスの並列化を実現することが出来ます。

Joblibで並列処理を行う場合のデフォルトは「マルチプロセス」のようです。これにより、プログラムを効率的に実行することができ、処理時間を短縮することができます。

Joblibは、Pythonでの並列処理を容易に行うためのライブラリで、その使用は非常に簡単です。この記事を通じて、PythonとJoblibを用いた並列処理の基本的な知識を得ることができたことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です