Apache Nemo: A Framework for Optimizing Distributed Data Processing——论文泛读

TOCS 2021 Paper 论文阅读笔记整理

问题

针对资源和数据特性优化分布式数据处理的调度和通信,对于实现高性能至关重要。在最近的研究中广泛讨论的例子是:地理分布的资源[14,30,47,48]、廉价的瞬时资源[34,35,39,52,54]、基于磁盘的大数据混洗[32,33,57]和偏斜数据[17,20,21,31]。现有的调度和通信方法在没有意识到这些特征的情况下,往往会导致性能大幅下降。

现有方法局限性

现有的优化方法主要分为两类。

  • 分布式运行时提供了低级别的策略接口来应用优化,但不能确保维护正确的应用程序语义,通常需要花费大量精力才能使用。

  • 扩展高级应用程序编程模型的策略接口确保了正确性,但不能提供足够的精细控制。

本文方法

本文提出了Apache Nemo,用于分布式数据流处理的优化框架,为高性能提供了精细的控制,并确保了正确性以便于使用。

  • 中间表示(IR)有向无环图(DAG)。IR DAG表示数据处理应用,顶点表示逻辑运算,边表示表示数据依赖性。为了确保转换后的IR DAG与原始IR DAG产生相同的输出,本文提供了两种类型转换方法:重塑和注释。重塑方法可以插入一组Nemo所知的语义,例如对数据进行采样的顶点。注释方法设置每个顶点和边的执行属性,以配置细粒度的调度和通信,例如推测性克隆和数据持久性策略。Nemo使用关于边的通信模式(例如,混洗)的信息以及关于配置的效用顶点和执行属性的信息来确保正确性。

  • 编译器优化过程。将IR DAG作为输入并调用其转换方法,可以组合并应用于不同的应用程序。

  • 运行时扩展。与底层运行时集成以应用IR DAG转换。当通过运行时DAG调度IR DAG的IR顶点时,调度器扩展应用了各种调度策略。还在作业执行期间重写运行时DAG,以应用运行时优化。

开源代码:Nemo | A Data Processing System for Flexible Employment With Different Deployment Characteristics.

评估结果表明,Nemo实现了可组合和可重复使用的优化,与为特定部署场景量身定制的现有专用运行时相比,这些优化带来了性能改进。

总结

分布式数据处理的调度和通信优化问题,如何利用资源和数据特性,进行细粒度优化并保证正确性。本文提出了 Nemo,用于分布式数据流处理的优化框架,包括三个关键技术:(1)将应用转变为中间表示(IR)的有向无环图(DAG),其中顶点表示逻辑运算,边表示表示数据依赖性。提供了两种类型转换方法:重塑方法可以插入一组Nemo所知的语义;注释方法设置每个顶点和边的执行属性,以配置细粒度的调度和通信。(2)编译器优化过程,将IR DAG作为输入并调用其转换方法,可以组合并应用于不同的应用程序。(3)运行时扩展,与底层运行时集成以应用IR DAG转换。当通过运行时DAG调度IR DAG的IR顶点时,调度器扩展应用了各种调度策略。在作业执行期间重写运行时DAG,以应用运行时优化。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值