小编phy*_*pho的帖子

来自 joblib 的多处理不会并行化?

由于我从 python3.5 移动到 3.6,使用 joblib 的并行计算并没有减少计算时间。以下是安装的库版本:-python:3.6.3-joblib:0.11-numpy:1.14.0

基于一个非常著名的例子,我在下面给出了一个示例代码来重现这个问题:

import time
import numpy as np
from joblib import Parallel, delayed

def square_int(i):
    return i * i

ndata = 1000000 
ti = time.time()
results = []    
for i in range(ndata):
    results.append(square_int(i))

duration = np.round(time.time() - ti,4)
print(f"standard computation: {duration} s" )

for njobs in [1,2,3,4] :
    ti = time.time()  
    results = []
    results = Parallel(n_jobs=njobs, backend="multiprocessing")\
        (delayed(square_int)(i) for i in range(ndata))
    duration = np.round(time.time() - ti,4)
    print(f"{njobs} jobs computation: {duration} s" )
Run Code Online (Sandbox Code Playgroud)

我得到以下输出: …

python scikit-learn joblib python-3.6

3
推荐指数
1
解决办法
4533
查看次数

标签 统计

joblib ×1

python ×1

python-3.6 ×1

scikit-learn ×1