首页 > 解决方案 > Dask scatter 广播列表

问题描述

使用Dask分发的散播列表的适当方法是什么?

案例 1 - 包装列表:

[future_list] = client.scatter([my_list], broadcast=True)

案例 2 - 不包装列表:

future_list = client.scatter(my_list, broadcast=True)

在 Dask 文档中,我看到了两个示例:1. wrapping (见底部示例)2. not wrapping。根据我的经验,案例 1 是最好的方法,在案例 2 中构建 Dask 图(在我的用例中很大)需要更长的时间。

什么可以解释图构建时间的差异?这是预期的行为吗?

提前致谢。

托马斯

标签: broadcastdaskdask-distributed

解决方案


如果您使用 a 调用 scatter,list则 Dask 将假定该列表的每个元素都应该独立分散。

a, b, c = client.scatter([1, 2, 3], ...)

如果您不希望这样,如果您实际上只是希望将列表作为单个数据移动,那么您应该将其包装在另一个列表中

[future] = client.scatter([[1, 2, 3]], ...)

推荐阅读