简体   繁体   English

使用joblib进行python简单并行计算

[英]python simple parallel computation with joblib

I took example from joblib tutorial . 我以joblib教程为例。 Here is how my code looks like: 这是我的代码的样子:

from math import sqrt
from joblib import Parallel, delayed
import multiprocessing

test = Parallel(n_jobs=2)(delayed(sqrt)(i ** 2) for i in range(10))
print(test)

It produces the following error message: 它产生以下错误信息:

Attempting to do parallel computing without protecting your import
on a system that does not support forking. To use parallel-computing 
in a script, you must protect you main loop using 
"if __name__ == '__main__'". Please see the joblib documentation on 
Parallel for more information

And it runs for too long. 而且它运行时间太长。 What am I missing? 我想念什么?

What the error message and BrenBran are telling you is that a) you should read the error message, and b) you should organise your code something like: 错误消息和BrenBran告诉您的是,a)您应该阅读错误消息,b)您应该组织代码,例如:

from math import sqrt
from joblib import Parallel, delayed
import multiprocessing

if __name__ == '__main__':
    test = Parallel(n_jobs=2)(delayed(sqrt)(i ** 2) for i in range(10))
    print(test)

HTH barny HTH兔子

I had to add backend="threading" to barny's code to run without error: 我必须在barny的代码中添加backend =“ threading”才能正确运行:

from math import sqrt
from joblib import Parallel, delayed
import multiprocessing

if __name__ == '__main__':
    test = Parallel(n_jobs=2, backend="threading")(delayed(sqrt)(i ** 2) for i in range(10))
print(test)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM