我正在尝试使用dask的多线程模块。这段代码
def foo(arg):
return arg*2
jobs = []
t = delayed(foo)(100)
jobs.append(t)
j = delayed(jobs, pure=True)
#j = j.compute()
j = j.compute(get=dask.multiprocessing.get)
print("class:", type(j[0]))
在执行时打印('class:', <type 'tuple'>)
,但如果我改为运行注释行(即不使用multiprocessing.get
),那么我实际上得到了正确的结果100 ('class:', <type 'int'>)
我做错了什么?< / p>
相关问题:当没有指定任何内容时,dask中的默认get
是什么?
答案 0 :(得分:0)
如果您的目标是计算延迟对象列表,那么我建议使用dask的计算函数而不是计算方法。
from dask import delayed, compute
import dask.multiprocessing
def foo(arg):
return arg*2
jobs = [delayed(foo)(100)]
>>> compute(*jobs, get=dask.multiprocessing.get)
(200,)