Ir al contenido principal

Tungsten

Prueba Databricks gratis

¿Qué es el proyecto Tungsten?

Tungsten es el nombre en clave del proyecto general para realizar cambios en el motor de ejecución de Apache Spark que se enfoca en mejorar sustancialmente la eficiencia de la memoria y la CPU para las aplicaciones de Spark, a fin de llevar el rendimiento más cerca de los límites del hardware moderno.

El proyecto Tungsten incluye estas iniciativas:

  • Administración de la memoria y procesamiento binario: se aprovecha la semántica de la aplicación para administrar la memoria de forma explícita y eliminar la sobrecarga del modelo de objetos de la JVM y de la recolección de elementos no utilizados
  • Cómputo consciente de la memoria caché: algoritmos y estructuras de datos para aprovechar la jerarquía de la memoria
  • Generación de código: se usa la generación de código para explotar los compiladores y las CPU modernas
  • Sin distribuciones de funciones virtuales: esto reduce las múltiples llamadas a la CPU, lo que puede tener un impacto profundo en el rendimiento cuando se distribuyen miles de millones de veces.
  • Datos intermedios en la memoria frente a los registros de la CPU: la fase 2 de Tungsten coloca los datos intermedios en los registros de la CPU. Esto representa una reducción de órdenes de magnitud en el número de ciclos para obtener datos de los registros de la CPU en lugar de la memoria.
  • Desenrollado de bucles y SIMD: optimizar el motor de ejecución de Apache Spark para aprovechar la capacidad de los compiladores y CPU modernos de compilar y ejecutar eficientemente bucles for simples (a diferencia de los grafos complejos de llamadas a funciones).

El enfoque en la eficiencia de la CPU se debe a que las cargas de trabajo de Spark se ven cada vez más limitadas por el uso de la CPU y la memoria, en lugar de por la E/S y la comunicación de red. Esta tendencia se demuestra en investigaciones recientes sobre el rendimiento de las cargas de trabajo de big data.
 

Recursos adicionales

Volver al glosario