3

我正在尝试使用 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'>)我做错了什么吗?

相关问题:get当​​没有指定任何内容时,dask 中的默认值是什么?

4

1 回答 1

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,)
于 2016-05-31T01:05:36.587 回答