Lo que puede hacer una base de datos impulsada por GPU por usted

La base de datos SQL se remonta a la década de 1970 y ha sido un estándar ANSI desde la década de 1980, pero eso no significa que la tecnología se quede quieta. Todavía está cambiando, y es una de esas formas como bases de datos aceleradas por GPU.

Las bases de datos relacionales han aumentado de tamaño a conjuntos de datos que miden en petabytes y más. Incluso con el advenimiento de la computación de 64 bits y los terabytes de memoria para un mayor procesamiento, todavía hay muchos datos para procesar, y las CPU solo pueden administrar una cantidad limitada. Ahí es donde han entrado las GPU.

Las GPU se han transformado de su misión original de acelerar los juegos a acelerar casi todo. Nvidia ha pivotado magistralmente para convertirse en sinónimo de inteligencia artificial, un proceso que requiere grandes cantidades de datos procesados ​​en paralelo y otras tareas que se pueden paralelizar bien. AMD está empezando a ponerse al día, pero Nvidia tiene una larga ventaja.

Cuando se trata de núcleos, ni siquiera se acerca. Las CPU Xeon tienen un máximo de 22 núcleos. AMD Epyc tiene 32 núcleos. La arquitectura de Nvidia Volta tiene 5.120 núcleos. Ahora imagine más de 5000 núcleos ejecutándose en paralelo con datos y está claro por qué las GPU se han vuelto tan populares para proyectos de computación masivos.

Así que ha surgido una nueva clase de bases de datos, escritas desde cero para admitir y adoptar las GPU y sus enormes capacidades de procesamiento paralelo. Estas bases de datos están permitiendo nuevos niveles de procesamiento de datos, análisis y Big Data en tiempo real, ya que pueden manejar conjuntos de datos que las bases de datos con CPU normales simplemente no pueden.

La base de datos de GPU definida

El concepto de una base de datos de GPU es bastante simple: utiliza el paralelismo de las GPU para realizar una aceleración masiva del procesamiento de datos. La GPU es ideal para acelerar el procesamiento de consultas SQL porque SQL realiza la misma operación, generalmente una búsqueda, en cada fila del conjunto.

Sin embargo, no coloca simplemente un montón de tarjetas Nvidia Tesla en el servidor que aloja una base de datos Oracle. Las bases de datos de GPU se han diseñado y escrito desde cero para realizar un procesamiento paralelo, comenzando con JOINoperaciones SQL .

JOINs establecen una relación entre columnas de varias tablas en una base de datos y son fundamentales para realizar análisis significativos. Los enfoques de diseño tradicionales para JOINs en sistemas RDBMS heredados se diseñaron hace años para CPU de un solo núcleo y no se prestan bien incluso a una CPU, y mucho menos a una GPU.

Más allá de JOINs, las bases de datos de GPU tienen un nivel sustancial de soporte, que incluye:

  • Conectores a marcos de código abierto populares, como Hadoop, Kafka, HBase, Spark y Storm.
  • Controladores ODBC y JDBC para la integración con herramientas de BI y visualización existentes, como Tableau, Power BI y Spotfire
  • API para enlaces con lenguajes de programación populares como C ++, SQL, Java, Node.js y Python.

Dónde usar una base de datos de GPU

En ese sentido, las bases de datos de GPU no compiten realmente con Oracle, SQL Server o DB2. Las bases de datos de GPU están orientadas a tomar decisiones de análisis de datos, en las que las empresas intentan tomar una decisión en tiempo real a partir de grandes cantidades de datos, pero no pueden hacerlo porque hay demasiados datos o porque las herramientas de análisis visual son demasiado lentas.

Los proveedores de bases de datos de GPU no se ven a sí mismos como un reemplazo para Oracle o una base de datos OLTP como Teradata. En lugar de apuntar a las cargas de trabajo RDBMS tradicionales, las bases de datos de GPU apuntan al mundo OLAP / OLTP y al big data, donde los conjuntos de datos son masivos y la necesidad es en tiempo real. En lugar de que los procesos por lotes se ejecuten durante horas o durante la noche, las bases de datos de GPU son donde los datos se pueden presentar en tiempo real o por horas.

La base de datos de la GPU debería resolver muchos problemas que NoSQL está tratando de resolver, pero le permite usar sus herramientas de consulta estructuradas existentes. Usar NoSQL significa reescribir todas sus herramientas SQL, pero las bases de datos de GPU usan herramientas SQL existentes.

“Lo que creemos que veremos es que las personas se darán cuenta de que pueden hacer sistemas multidimensionales y tomar datos de múltiples escenarios y combinarlos”, dice Steve Worthington, arquitecto de soluciones de tecnologías emergentes para Datatrend Technologies, una consultora de TI que utiliza la base de datos de GPU SQream. “Las empresas médicas quieren tomar [datos] de múltiples sistemas y realizar análisis en bases de datos porque antes no podían hacer referencias cruzadas y no tenían forma de unirse a las bases de datos”.

También cita a las instituciones financieras que realizan análisis de fraude y riesgo que podrían estar haciendo solo verificaciones de tarjetas de crédito ahora, pero quieren hacer verificaciones en varias cuentas. Con el poder de la GPU, pueden hacer referencias cruzadas entre todas esas fuentes de información a la vez.

Para Rich Sutton, vicepresidente de datos geoespaciales de Skyhook, un proveedor de servicios de ubicación, el uso de la base de datos de la GPU OmniSci le brinda una visualización de conjuntos de datos geográficos mucho más grande de lo que podría hacer con una base de datos basada en CPU. “Puedo cargar mil millones de filas en OmniSci y con poca o ninguna latencia en lugar de tener que mirar un conjunto de datos de 10,000 líneas en un espacio de CPU tradicional”, dice. "Me beneficia en varios órdenes de magnitud reducir el consumo de datos con una latencia enormemente reducida".

Todd Mostak, director ejecutivo de OmniSci, dice que un cliente le dijo que la velocidad de OmniSci “reduce el costo de la curiosidad. Hacen preguntas que antes retenían ". Un cliente de servicios financieros le dijo que una consulta de procesamiento de 18 horas en una base de datos tradicional se redujo a un segundo, mientras que una empresa de telecomunicaciones le dijo que las consultas que tardaban horas en ejecutarse ahora responden en menos de un segundo.

Otro lugar para las bases de datos de GPU es el big data en tiempo real, donde Hadoop se ha quedado corto. Ami Gal, director ejecutivo del proveedor de bases de datos de GPU SQream, dice que gran parte de la promesa del big data (encontrar todas las oportunidades que residen en decenas de petabytes de datos de fila) no se logró en Hadoop porque era demasiado lento.

“Spark es bastante bueno para el movimiento y la transformación de datos, pero una vez que necesitas procesar grandes cantidades de datos y moverlos, comienzas a lidiar con cientos de miles de nodos [computacionales] y eso se considera demasiado para procesar grandes conjuntos de datos. Pero si puedes hacerlo con diez o 15 nodos, eso es mucho más eficiente ”, dice.

Worthington dice que los servidores basados ​​en GPU pueden hacer en un gabinete lo que requiere muchos gabinetes de nodos de procesamiento en paralelo múltiple (MPP) alimentados por CPU. “Podemos reemplazar los racks de nodos MPP con media docena de nodos, cada uno con dos a cuatro GPU. Con eso podemos reemplazar una inversión de $ 10 millones por menos de $ 1 millón ”, dice.

La GPU también es importante para Skyhook, que visualiza grandes conjuntos de datos geográficos. “Si tiene un millón de dispositivos en el campo y hace ping a la ubicación un par de veces por minuto, está hablando de 2 mil millones de filas de datos al día. Eso es imposible de consumir en una base de datos tradicional. Simplemente no es posible. Así que [una] [base de datos] GPU te lleva hasta donde puedes consumir esos datos ”, dice Sutton.

Antes de adoptar OmniSci, Skyhook tendría que "piramidizar" los datos, tomando solo segmentos para la visualización. Ahora, dice Sutton, puede ver la imagen completa de los datos. "Nunca he visto otra forma realista de poner los datos en forma para mi tipo de uso".

Bases de datos de GPU: qué hay disponible

Las bases de datos de GPU son un fenómeno totalmente nuevo, con empresas como Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom y Blazegraph.

Todos varían ligeramente en su funcionamiento. Por ejemplo, OmniSci realiza la visualización de datos, mientras que SQream usa conectores para herramientas de visualización como Tableau, por lo que cada uno debe ser evaluado individualmente para determinar cuál se adapta mejor a sus necesidades.

Los grandes nombres en RDBMS aún no se han incorporado, a excepción de IBM, que admite cierto procesamiento de GPU en DB2 Blu, una versión especial de DB2 para cargas de trabajo analíticas. Oracle y TeraData han dicho que están trabajando con Nvidia, pero todavía no ha salido nada. Microsoft no admite la aceleración de GPU en SQL Server. Gal de SQream dijo que ha escuchado que todos los proveedores de RDBMS están trabajando para agregar algún tipo de soporte de GPU a sus productos, pero no tenían más información.