by shigemk2

当面は技術的なことしか書かない

joblibことはじめ

まだPython2.7で消耗している

from time import sleep
import timeit
import joblib
from joblib import Parallel, delayed

def heavy_square_task(x, y, z):
    sleep(3)
    return x**2p

# print ([heavy_square_task(x, y, z) for x, y, z in [(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3)]]) # almost 12s
print (joblib.Parallel(n_jobs=4)([delayed(heavy_square_task)(x, y, z) for x, y, z in [(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3)]])) # almost 3s

https://joblib.readthedocs.io/en/latest/parallel.html

この記事のプログラムを再構築したけど、delayedは明示的によびださないといけないぽ Python: Joblibで並列処理プログラミング - け日記