回到术语表

钨项目是什么?

Tungsten是对Apache Spark执行引擎进行更改的伞形项目的代号,该项目专注于大幅提高Spark应用程序的内存和CPU效率,将性能推向现代硬件的极限。

钨项目包括以下举措:

  • 内存管理和二进制处理:利用应用程序语义显式地管理内存,并消除JVM对象模型和垃圾收集的开销
  • 支持缓存计算:利用内存层次结构的算法和数据结构
  • 代码生成:使用代码生成来开发现代编译器和cpu
  • 没有虚函数分派:这减少了多次CPU调用,当调度数十亿次时,这会对性能产生深远的影响。
  • 内存和CPU寄存器中的中间数据:Tungsten Phase 2将中间数据放入CPU寄存器。从CPU寄存器而不是从内存中获取数据的周期数减少了一个数量级
  • 环路展开和SIMD:优化Apache Spark的执行引擎,以利用现代编译器和cpu的能力,有效地编译和执行简单的for循环(而不是复杂的函数调用图)。
对CPU效率的关注是由于Spark工作负载越来越多地受到CPU和内存使用的瓶颈,而不是IO和网络通信的瓶颈。最近对大数据工作负载性能的研究表明了这一趋势。

额外的资源


回到术语表