JoblibはPythonのライブラリで、並列処理、メモ化、直列化などの便利な機能を提供します。これらの機能はPythonコードの高速化に役立ちます。
並列処理
Joblibを使うと、関数を並列化することができます。以下にその例を示します。
from joblib import Parallel, delayed
from math import sqrt
out = Parallel(n_jobs=2)(delayed(sqrt)(i) for i in range(100))
print(out)
この例では、平方根を返す関数(math.sqrt
)を並列化しています。n_jobs=2
でコア数を指定しています。
メモ化
Joblibを使うと、関数をメモ化することができます。以下にその例を示します。
from joblib import Memory
import math
cachedir = "./memory_cache"
memory = Memory(cachedir, verbose=0)
@memory.cache
def calc(x):
print("RUNNING......")
return math.sqrt(x)
print(calc(2))
print(calc(2))
print(calc(5))
この例では、平方根を返す関数(math.sqrt
)をメモ化しています。
直列化
Joblibを使うと、関数が返したリストを直列化することができます。以下にその例を示します。
import joblib
import numpy as np
out = np.sqrt(np.arange(1024))
filename = "./pydata"
with open(filename, "wb") as f:
joblib.dump(out, f, compress=3)
with open(filename, "rb") as f:
loaded = joblib.load(f)
print(loaded)
この例では、平方根を返す関数(numpy.sqrt
)が返したリストを直列化しています。
以上、Joblibの基本的な使い方について説明しました。これらの機能を活用することで、Pythonコードの高速化を実現できます。