Cosa può fare per te un database basato su GPU

Il database SQL risale agli anni '70 ed è stato uno standard ANSI dagli anni '80, ma ciò non significa che la tecnologia sia ferma. Sta ancora cambiando e uno di quei modi come database accelerati dalla GPU.

Le dimensioni dei database relazionali sono aumentate fino a diventare set di dati che misurano i petabyte e oltre. Anche con l'avvento dell'elaborazione a 64 bit e dei terabyte di memoria per una maggiore elaborazione, sono ancora molti i dati da esaminare e le CPU possono gestire solo così tanto. È qui che entrano in gioco le GPU.

Le GPU si sono trasformate dalla loro missione originale di accelerare i giochi ad accelerare quasi tutto. Nvidia ha fatto perno magistralmente per diventare sinonimo di intelligenza artificiale, un processo che richiede grandi quantità di dati elaborati in parallelo e altre attività che possono essere parallelizzate bene. AMD sta iniziando a recuperare il ritardo, ma Nvidia ha un lungo vantaggio.

Quando si tratta di core, non è nemmeno vicino. Le CPU Xeon hanno un massimo di 22 core. AMD Epyc ha 32 core. L'architettura Nvidia Volta ha 5.120 core. Ora immagina più di 5.000 core in esecuzione in parallelo sui dati ed è chiaro perché le GPU sono diventate così popolari per enormi progetti di elaborazione.

Quindi è emersa una nuova classe di database, scritta da zero per supportare e abbracciare le GPU e le loro enormi capacità di elaborazione parallela. Questi database stanno abilitando nuovi livelli di elaborazione dei dati, analisi e Big Data in tempo reale in quanto possono gestire set di dati che i normali database basati su CPU semplicemente non possono.

Il database GPU definito

Il concetto di database GPU è abbastanza semplice: utilizza il parallelismo delle GPU per eseguire una massiccia accelerazione dell'elaborazione dei dati. La GPU è ideale per accelerare l'elaborazione delle query SQL perché SQL esegue la stessa operazione, di solito una ricerca, su ogni riga del set.

Tuttavia, non metti semplicemente un mucchio di schede Nvidia Tesla nel server che ospita un database Oracle. I database GPU sono stati progettati e scritti da zero per eseguire l'elaborazione parallela, a partire dalle JOINoperazioni SQL .

JOINstabiliscono una relazione tra le colonne di più tabelle in un database e sono fondamentali per eseguire analisi significative. Gli approcci di progettazione tradizionali per JOINi messaggi di posta elettronica su sistemi RDBMS legacy sono stati progettati anni fa per CPU single-core e non si prestano bene nemmeno a una CPU, tanto meno a una GPU.

Oltre a JOINs, i database GPU hanno un livello sostanziale di supporto, tra cui:

  • Connettori a framework open source più diffusi, come Hadoop, Kafka, HBase, Spark e Storm.
  • Driver ODBC e JDBC per l'integrazione con la visualizzazione esistente e gli strumenti di BI come Tableau, Power BI e Spotfire
  • API per collegamenti con linguaggi di programmazione popolari come C ++, SQL, Java, Node.js e Python.

Dove utilizzare un database GPU

A questo proposito, i database GPU non competono realmente con Oracle, SQL Server o DB2. I database GPU sono orientati a prendere decisioni di analisi dei dati, in cui le aziende cercano di prendere una decisione in tempo reale da grandi quantità di dati ma si trovano incapaci di farlo perché ci sono troppi dati o perché gli strumenti di analisi visiva sono troppo lenti.

I fornitori di database GPU non si vedono come un sostituto di Oracle o di un database OLTP come Teradata. Invece di prendere di mira i carichi di lavoro RDBMS tradizionali, i database GPU mirano al mondo OLAP / OLTP e ai big data, dove i set di dati sono enormi e la necessità è in tempo reale. Invece di processi batch eseguiti per ore o durante la notte, i database GPU sono dove i dati possono essere presentati in tempo reale o su base oraria.

Il database GPU dovrebbe risolvere molti problemi che NoSQL sta cercando di risolvere ma ti consente di utilizzare gli strumenti di query strutturati esistenti. Usare NoSQL significa riscrivere tutti i tuoi strumenti SQL, ma i database GPU utilizzano strumenti SQL esistenti.

"Quello che pensiamo di vedere è che le persone si renderanno conto di poter realizzare sistemi multidimensionali e prendere dati da più scenari e combinarli", afferma Steve Worthington, architetto di soluzioni per tecnologie emergenti per Datatrend Technologies, una società di consulenza IT che utilizza il database GPU SQream. "Le aziende mediche vogliono prendere [dati] da più sistemi e fare analisi su database perché prima non potevano fare riferimenti incrociati e non avevano alcun modo per unire i database".

Cita anche le istituzioni finanziarie che fanno frodi e analisi dei rischi che potrebbero semplicemente fare solo controlli con carte di credito ora ma vogliono fare controlli su più account. Con la potenza della GPU, possono fare riferimenti incrociati tra tutte quelle fonti di informazioni contemporaneamente.

Per Rich Sutton, vicepresidente dei dati geospaziali di Skyhook, un fornitore di servizi di localizzazione, l'utilizzo del database GPU OmniSci gli offre una visualizzazione dei set di dati geografici molto più ampia di quanto potrebbe fare con un database basato su CPU. "Posso caricare un miliardo di righe in OmniSci e con poca o nessuna latenza invece di dover guardare un set di dati di 10.000 linee in uno spazio CPU tradizionale", afferma. "Ridurre il consumo di dati con una latenza notevolmente ridotta è vantaggioso per diversi ordini di grandezza."

Todd Mostak, CEO di OmniSci, afferma che un cliente gli ha detto che la velocità di OmniSci "riduce il costo della curiosità. Fanno domande che prima avrebbero trattenuto. " Un cliente di servizi finanziari gli ha detto che una query di elaborazione di 18 ore su un database tradizionale è scesa a un secondo, mentre una società di telecomunicazioni gli ha detto che le query che richiedevano ore per essere eseguite ora rispondono in meno di un secondo.

Un altro posto per i database GPU è nei big data in tempo reale, dove Hadoop non è stato all'altezza. Ami Gal, CEO del provider di database GPU SQream, afferma che gran parte della promessa dei big data, ovvero trovare tutte le opportunità che risiedono in decine di petabyte di dati di riga, non è stata raggiunta su Hadoop perché era troppo lento.

"Spark è abbastanza buono per lo spostamento e la trasformazione dei dati, ma una volta che hai bisogno di sgranocchiare enormi quantità di dati e spostarli, inizi a gestire centinaia di migliaia di nodi [di elaborazione] e questo è visto come troppo da crunch in set di dati di grandi dimensioni. Ma se puoi farlo con dieci o 15 nodi, è molto più efficiente ", dice.

Worthington afferma che i server basati su GPU possono fare in un unico cabinet ciò che richiede molti cabinet di nodi di elaborazione parallela multipla (MPP) alimentati dalla CPU. “Possiamo sostituire i rack di nodi MPP con una mezza dozzina di nodi, ciascuno contenente da due a quattro GPU. Con ciò possiamo sostituire un investimento di $ 10 milioni con un investimento inferiore a $ 1 milione ", afferma.

La GPU è importante anche per Skyhook, che visualizza grandi set di dati geografici. "Se hai un milione di dispositivi sul campo e il ping della posizione un paio di volte al minuto, stai parlando di 2 miliardi di righe di dati al giorno. È impossibile consumarlo in un database tradizionale. Semplicemente non è possibile. Quindi [un] [database] GPU ti porta dove puoi consumare quei dati ", dice Sutton.

Prima di adottare OmniSci, Skyhook avrebbe dovuto "piramidizzare" i dati, prendendone solo alcuni segmenti per la visualizzazione. Ora, dice Sutton, può guardare l'intera immagine dei dati. "Non ho mai visto un altro modo realistico per dare forma ai dati per il mio tipo di utilizzo."

Database GPU: cosa è disponibile

I database GPU sono completamente un fenomeno di avvio, con aziende come Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom e Blazegraph.

Tutti variano leggermente nel modo in cui funzionano. Ad esempio, OmniSci esegue la visualizzazione dei dati, mentre SQream utilizza connettori per strumenti di visualizzazione come Tableau, quindi ciascuno deve essere valutato individualmente per determinare la soluzione migliore per le tue esigenze.

I grandi nomi di RDBMS devono ancora salire a bordo, ad eccezione di IBM, che supporta alcune elaborazioni GPU in DB2 Blu, una versione speciale di DB2 per i carichi di lavoro di analisi. Oracle e TeraData hanno entrambi affermato di lavorare con Nvidia ma non ne è ancora uscito nulla. Microsoft non supporta l'accelerazione GPU su SQL Server. SQream's Gal ha detto di aver sentito che tutti i fornitori di RDBMS stanno lavorando per aggiungere un qualche tipo di supporto GPU ai loro prodotti, ma non ha avuto ulteriori informazioni.