中文

Flare:面向 Apache Spark 中异构工作负载的原生编译

数据库 2017-03-27 v1 分布式、并行与集群计算 性能 编程语言

摘要

现代数据分析需要结合关系型、过程式以及 Map-Reduce 风格的函数式处理,这一需求已得到广泛认可。像 Spark 这样的最先进系统已经添加了 SQL 前端和关系查询优化,有望提高表达性和性能。但是,这些扩展在从现代硬件平台提取高性能方面表现如何?虽然 Spark 取得了令人瞩目的进展,但我们表明,对于关系型工作负载,与最好的查询引擎相比仍存在显著差距。而当超出关系型领域时,如果计算的大部分必须被视为用户定义函数 (UDF),则查询优化技术将失效。我们提出了 Flare:Spark 的一个新后端,它在不放弃 Spark 额外表达性的同时,将性能提升至接近最佳 SQL 引擎的水平。我们展示了在 TPC-H 等关系型工作负载以及结合关系型和迭代函数式处理的多种机器学习内核上,均实现了数量级的加速。Flare 通过以下途径实现这些结果:(1) 编译为原生代码,(2) 替换部分 Spark 运行时系统,以及 (3) 将优化和代码生成的范围扩展到大类 UDF。

关键词

引用

@article{arxiv.1703.08219,
  title  = {Flare: Native Compilation for Heterogeneous Workloads in Apache Spark},
  author = {Grégory M. Essertel and Ruby Y. Tahboub and James M. Decker and Kevin J. Brown and Kunle Olukotun and Tiark Rompf},
  journal= {arXiv preprint arXiv:1703.08219},
  year   = {2017}
}