如何解决当我们发布一个dask数据集时会发生什么?
我有一个关于dask如何在内部管理发布数据集的问题。
例如,我有3个客户端,其中2个发布2个数据集(包含在客户端RAM中的数据),第3个使用这两个数据集创建一个dask数组并在其上启动一些计算。
# The first client that does the compuations
c = Client()
while (len(c.list_datasets()) != 2):
pass
listds = list(c.list_datasets())
arr = da.asarray([c.get_dataset(k) for k in listds ])
res = arr.sum().compute()
这是另外两个客户端的代码
# The second and third client that publish the datasets
client = Client()
data = np.random.random((10000,10000))
data = da.asarray(data)
client.publish_dataset(dsn2 = data)
- 我的第一个问题是,它是如何工作的,哪些数据已移至调度程序?
- 如果仅将名称和客户标识符移至调度程序,那么客户与工作人员如何通信以移动数据并开始计算?
- 如果客户端侦听工作人员发送数据的请求,那么该客户端是否被视为服务器?
- 如何描述Dask中发生的事情和数据移动?
- 如果我在数据集上使用cleint.persist,数据在发送给工作人员之前是否已序列化并通过调度程序传递?
- 如果否,那么当客户端上存在数据时如何进行。我知道这不是普通案件,但这是我感兴趣的事情?
- 如果在此之后我取消发布其他两个客户端中的数据集,则在第一个客户端中(从已发布的数据集中)创建一个Dask数组,何时移动数据以及将数据移动到何处?
- 在哪里可以找到有关该文件的详细文档?
打扰一下,请多谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。