Ir al contenido principal

¿Qué es el tungsteno?

Cómo el proyecto Tungsten optimiza el motor de ejecución de Spark con un uso más inteligente de la memoria, algoritmos que reconocen la caché y generación de código para llevar el rendimiento más cerca del hardware

10 Personas Artificial Intelligence

Summary

  • Descubra cómo Tungsten se centra en mejorar la eficiencia de la memoria y la CPU en el motor de ejecución de Spark para acercarse a los límites del hardware moderno para las aplicaciones Spark.
  • Descubra las iniciativas clave de Tungsten, como la gestión explícita de memoria, la computación con capacidad de caché, la generación de código y la reducción de los envíos de funciones virtuales.
  • Comprenda cómo técnicas como el almacenamiento de datos intermedios en los registros de la CPU, el desenrollado de bucles y la compatibilidad con SIMD ofrecen importantes mejoras de velocidad para las cargas de trabajo de Spark SQL y DataFrame.

¿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.

LÍDER 5X

Gartner®: Databricks, líder en bases de datos en la nube

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

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.