Pythonjoblib
の組み込みモジュールの代替としてモジュールを学習しようとしています。multiprocessing
私はmultiprocessing.imap
iterable に対して関数を実行し、結果を返すことに慣れています。この最小限の作業例では、joblib でそれを行う方法がわかりません。
import joblib, time
def hello(n):
time.sleep(1)
print "Inside function", n
return n
with joblib.Parallel(n_jobs=1) as MP:
func = joblib.delayed(hello)
for x in MP(func(x) for x in range(3)):
print "Outside function", x
どちらが印刷されますか:
Inside function 0
Inside function 1
Inside function 2
Outside function 0
Outside function 1
Outside function 2
出力を見たい:
Inside function 0
Outside function 0
Inside function 1
Outside function 1
Inside function 2
Outside function 2
または同様のもので、イテラブルMP(...)
がすべての結果が完了するのを待っていないことを示します。より長いデモの変更n_jobs=-1
とrange(100)
.