gpt4 book ai didi

python - 为什么 dask 不并行化这个工作流程?

转载 作者:行者123 更新时间:2023-12-01 01:36:54 26 4
gpt4 key购买 nike

我有两个非常简单的函数:

import time

def sleepy(a=1):
time.sleep(a)
print(a)

def ending(*args):
print(args)
print('finished')

我还有一个使用这些函数的 dask 工作流程:

workflow = {'task_0': (sleepy, 1), 
'task_1': (sleepy, 2),
'task_2': (sleepy, 3),
'ending': (ending, 'task_0', 'task_1', 'task_2')}

这个工作流程可以这样可视化:

dask.visualize(workflow)

sleepysleepysleepy 应该并行运行,但事实并非如此。

我等待 1 秒,它从 sleepy() 打印 1,然后我等待 2 秒,它打印 2,然后我再等待 3 秒,它打印 3:

1
2
3
(None, None, None)
finished

我做错了什么?

最佳答案

这就是我对您的工作流程进行编码的方式,并且 sleep 操作确实是并行发生的

import dask.delayed
import time

@dask.delayed
def sleepy(a=1):
time.sleep(a)
print(a)

@dask.delayed
def ending(*args):
print(args)
print('finished')

d = ending(*[sleepy(i) for i in [1, 2, 3]])
d.compute()

请注意,@装饰器只是语法上的好处,你也可以做dask.delayed(sleepy)等。

关于python - 为什么 dask 不并行化这个工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52318572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com