from joblib import Parallel, delayed
from time import sleep def worker(i, n): sleep(n) return i
x = [5,2,6] results = Parallel(n_jobs = 4, verbose = 10)([delayed(worker)(i, n) for i, n in enumerate(x)]) print(results)
n_jobs
: 並列実行数 (今回は 4
)。-1
ですべてのコアを使う。verbose
: 実行状況を表示する。数字は出力頻度。worker
: 前に定義した並列処理したい関数の名前(i, n)
: 関数に与える引数[0, 1, 2]
Can't pickle …
というエラーが現れる。