我想用Python测试并行代码,所以我编写了以下代码。
__author__ = 'Zir'
import numpy as np
from joblib import Parallel, delayed
import time
def f(x):
h = np.random.rand()
return x + h
if __name__ == '__main__':
s1 = time.time()
y = Parallel(n_jobs=3)(delayed(f)(x) for x in range(100000))
e1 = time.time() - s1
s2 = time.time()
y = []
for x in range(100000):
y.append(f(x))
e2 = time.time() - s2
print e1, e2
输出为:4.08599996567 0.0699999332428
表示for循环要快得多。为什么呢?