BlazingSQL ha liberado su código fuente para el uso de GPUS para acelerar el procesamiento de datos
Un nuevo proyecto de código abierto quiere llevar la analítica al siguiente nivel y es que la gente detrás de BlazingSQL anunció recientemente que ha liberado el codigo fuente de su motor SQL, el cual es usado en las GPU para acelerar el procesamiento de datos. BlazingSQL no es un DBMS completo, pero se posiciona como un motor para analizar y procesar grandes conjuntos de datos, comparable en sus tareas a Apache Spark.
Para quienes desconocen de BlazingSQL deben saber que este es un motor SQL acelerado por GPU construido en el ecosistema RAPIDS el cual es un conjunto de bibliotecas de software de código abierto para ejecutar canalizaciones de ciencia de datos y análisis de extremo a extremo en GPU.
Según el equipo, BlazingSQL se creó para abordar los gastos, la complejidad y el ritmo lento con el que se enfrentan los usuarios cuando trabajan en grandes conjuntos de datos. BlazingSQL es adecuado para realizar consultas analíticas individuales en grandes conjuntos de datos (decenas de gigabytes) almacenados en formatos tabulares (por ejemplo, registros, estadísticas de NetFlow, etc.).
Para trabajar con la GPU, se utiliza un conjunto de bibliotecas RAPIDS abiertas desarrolladas con la participación de NVIDIA, que le permite crear aplicaciones de análisis y procesamiento de datos que se ejecutan completamente en el lado de la GPU ( se proporciona una interfaz Python para usar primitivas CUDA de bajo nivel y cálculos paralelos).
BlazingSQL proporciona la capacidad de usar SQL en lugar de la API de procesamiento de datos cuUDF (basada en Apache Arrow ) utilizada por RAPIDS. BlazingSQL es una capa adicional que se ejecuta sobre cuDF y usa la biblioteca cuIO para leer datos del disco.
Las consultas SQL se traducen en llamadas de función cuUDF, que permiten cargar datos en la GPU y realizar operaciones de fusión, agregación y filtrado en ellas. Admite la creación de configuraciones distribuidas que abarcan miles de GPU.
El uso de SQL permite integrar RAPIDS con los sistemas analíticos existentes sin escribir procesadores específicos y sin recurrir a la carga intermedia de datos en un DBMS adicional, al tiempo que mantiene la compatibilidad total con todas las partes de RAPIDS, traduciendo la funcionalidad existente en SQL y asegurando el rendimiento a nivel cuDF. Incluye soporte para la integración con las bibliotecas XGBoost y cuML para resolver tareas de análisis y aprendizaje automático.
BlazingSQL puede ejecutar consultas desde archivos sin formato en formatos CSV y Apache Parquet ubicados en sistemas de red y en la nube como HDSF y AWS S3, transfiriendo directamente el resultado a la memoria de la GPU.
Gracias a las operaciones de paralelización en la GPU y al uso de una memoria de video más rápida, la ejecución de consultas en BlazingSQL es hasta 20 veces más rápida que en Apache Spark.
BlazingSQL simplifica enormemente el trabajo con datos: en lugar de cientos de llamadas a funciones cuDF, puede hacerlo con una sola consulta SQL.
“BlazingSQL se ocupa de estas preocupaciones de los clientes no sólo con un motor de GPU SQL increíblemente rápido, distribuido, sino también un foco celo en la simplicidad,” Rodrigo Aramburu, director general de BlazingSQL, escribió en un blog posterior . “Con unas pocas líneas de código, BlazingSQL puede consultar sus datos sin procesar, donde sea que residan e interoperar con su pila de análisis y RAPIDS existentes”.
BlazingSQL permite a los usuarios consultar conjuntos de datos de lagos de datos empresariales directamente en la memoria de la GPU como un GPU DataFrame (GDF). GDF es un proyecto que ofrece soporte para la interoperabilidad entre aplicaciones de GPU. También define una capa de datos en memoria común de GPU.
“Al aprovechar Apache Arrow en las GPU e integrarse con Dask, BlazingSQL ampliará la funcionalidad de código abierto e impulsará la próxima ola de interoperabilidad en el ecosistema acelerado de ciencia de datos”.
Para los que estén interesados deben saber que el código está escrito en Python y que el código abierto está bajo la licencia Apache 2.0.