首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:数据流编程模型,其计算时间与在常规VM机器上的计算时间相同?

:数据流编程模型,其计算时间与在常规VM机器上的计算时间相同?
EN

Stack Overflow用户
提问于 2019-05-26 11:58:00
回答 1查看 263关注 0票数 0

我正在尝试google云的数据流服务,这对于高效的计算时间非常有用。我的代码对于数据流管道有以下编程模型:

start=(p =“阅读”>> beam.io.ReadFromText("gcs路径“)) end= start \ "data_generation“>> beam.Pardo(PerfromFunction)

我在做什么:

PerformFunction是一个常规的Python函数,它包含了一系列用于数据生成的函数。我的问题是,当我在单个处理器上运行n1-standard-16的常规VM上时,大约需要1小时才能完成整个过程。

为什么我选择了Dataflow:

然后,我决定使用Dataflow,其中ParDo函数执行给定函数的Multi-Threading,显然将计算时间从1小时减少到less than 1 hour

问题:

在使用上述编程模型运行Dataflow作业之后,我开始意识到,在GCP上,Dataflow仍然需要大约1小时才能完成被称为wall-time的整个过程。然后,我登录到工作机器,并看到使用命令htop的资源利用率,发现机器只使用一个处理器,平均使用率为60%。

预期结果或建议:

  1. 可以在数据流员工集群中进行多处理吗?
  2. 我的编程模型是非常有限和错误的吗?
  3. ParDo函数似乎没有像预期的那样减少计算时间,您认为我在这里做错了什么?

PS-由于一些协议,我无法共享代码。多谢您的理解。另外,如果我在某个时候错误地理解了数据流,请纠正我。

EN

回答 1

Stack Overflow用户

发布于 2019-05-29 21:50:45

Apache和Dataflow能够基于输入并行化计算。

如果您有一个单一的计算应用,而这个计算需要一个小时,那么梁将无法加快您的计算。如果需要对不同的元素(或数据点)多次应用相同的计算,Beam可以帮助您。

您还应该考虑诸如以分布式方式运行计算的开销(数据复制、网络调用等)。

因此,要回答您的问题: GCS文件中的单个“数据点”(多少行)是如何存在的?是否有可能对每一个计算进行并行化?要花多长时间来处理每一件?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56313281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档