BSCandDatabricksSin duda la velocidad de crucero que lleva Databricks es difícil de seguir. Hace unos días, mientras estábamos dando una conferencia con la gente de Databricks y explicándoles que  teníamos totalmente operativa la versión 1.4 de Spark en el supercomputador Marenostrum, ellos va y hacen pública la versión 1.5 de Spark!

Desde esta semana Databricks permite probar en su Cloud Databricks la nueva versión de Spark, la 1.5.0. Si les interesa pueden pedir una cuenta de prueba para 30 días en esta página. La versión oficial será liberada dentro de unas semanas. Si están interesados en saber más detalles les recomiendo la presentación que realizará Patrick Wendell, este jueves a las 7 de la tarde (hora española) que pueden seguir por internet.

En esta nueva versión de Spark, con aportaciones de más de 220 contribuidores, podemos encontrar nuevos algoritmos de aprendizaje en MLlib o un nuevo control dinámico de llegada de los datos a Spark Streaming (muy importante para permitir a las aplicaciones streaming adaptarse a la variación imprevisible en la carga del procesado) entre muchas otras cosas.

Pero una parte importante de los esfuerzos se han concentrado en mejorar el rendimiento de Spark. Sin duda este es uno de los temas clave para los usuarios de Spark. Concretamente en esta versión se presenta por primera vez un nuevo backend de ejecución como primera fase del proyecto Tungsten, que representa el mayor cambio hasta el momento del backend de Spark. Sobretodo se centra en mejorar la eficiencia de la CPU y la memoria. Podríamos resumir los cambios propuestos en estas tres cosas:

  • Hacer un aprovechamiento de la semántica de aplicación para la gestión de la memoria explícita y eliminar el overhead que representa el modelo de objetos de la JVM y el Garbage Collection.
  • Hacer la computación consciente de la cache con algoritmos y estructuras de datos para explotar jerarquía de memoria (L1/ L2/L3 CPU caches).
  • Hacer una generación de código que permita explotar los nuevos compiladores y CPUs disponibles actualmente.

Es interesante ver como cada vez queda más claro que la complejidad de las aplicaciones big data analytics recae en el cálculo y no tanto en los datos. Databricks argumenta que en los workloads de Spark que ellos manejan se constata que el cuello de botella se encuentra en la CPU y la memoria en lugar de las entrada/salidas o la comunicación por la red del cluster. Según ellos que el cuello de botella sea cada vez más la CPU se debe entre otras razones a que las configuraciones de hardware actuales ofrecen cada vez mayor ancho de banda agregado, tales como enlaces de 10 Gbps en redes y gran ancho de banda de SSD o arrays de HDD para el almacenamiento. Si están interesados en más detalle del proyecto Tungsten pueden visitar esta página.  Si prueban la nueva versión de Spark 1.5 en Databricks ya me contarán.

(*) Matei, el padre de la criatura!

 

 

2017-08-09T12:16:01+00:00 August 26th, 2015|