Codice motore SQL BlazingSQL aperto, utilizzando GPU per l'accelerazione

Annunciato sull'apertura dei sorgenti del motore SQL BlazingSQL, che utilizza la GPU per accelerare l'elaborazione dei dati. BlazingSQL non è un DBMS a tutti gli effetti, ma si posiziona come un motore per l'analisi e l'elaborazione di grandi set di dati, paragonabile nei suoi compiti a Apache Spark. Il codice è scritto in Python e è aperto concesso in licenza con Apache 2.0.

BlazingSQL è adatto per eseguire singole query analitiche su set di dati di grandi dimensioni (decine di gigabyte) archiviati in formati tabulari (ad esempio log, statistiche NetFlow, ecc.). BlazingSQL può eseguire query da file non elaborati nei formati CSV e Apache Parquet ospitati su file system di rete e cloud come HDSF e AWS S3, trasferendo direttamente il risultato alla memoria della GPU. Grazie alla parallelizzazione delle operazioni nella GPU e all'utilizzo di una memoria video più veloce, le query BlazingSQL vengono eseguite in meno di 20 volte più veloce di Apache Spark.

Codice motore SQL BlazingSQL aperto, utilizzando GPU per l'accelerazione

Per lavorare con le GPU, viene utilizzato un set sviluppato con la partecipazione di NVIDIA aperto biblioteche RAPIDE, che consente di creare applicazioni di elaborazione e analisi dei dati eseguite interamente sul lato GPU (fornite da Interfaccia Python per utilizzare primitive CUDA di basso livello e parallelizzare i calcoli).

BlazingSQL offre la possibilità di utilizzare SQL invece delle API di elaborazione dati cuUDF (sulla base Freccia di Apache) utilizzato in RAPIDS. BlazingSQL è un livello aggiuntivo che viene eseguito su cuDF e utilizza la libreria cuIO per leggere i dati dal disco. Le query SQL vengono tradotte in chiamate alle funzioni cuUDF, che consentono di caricare i dati nella GPU ed eseguire su di essa operazioni di fusione, aggregazione e filtraggio. È supportata la creazione di configurazioni distribuite che coprono migliaia di GPU.

BlazingSQL semplifica notevolmente il lavoro con i dati: invece di centinaia di chiamate alle funzioni cuDF, puoi utilizzare una query SQL. L'utilizzo di SQL consente di integrare RAPIDS con i sistemi di analisi esistenti, senza scrivere processori specifici e senza ricorrere al caricamento intermedio dei dati in un DBMS aggiuntivo, ma
pur mantenendo la piena compatibilità con tutte le parti di RAPIDS, traducendo le funzionalità esistenti in SQL e fornendo prestazioni a livello cuDF. Ciò include il supporto per l'integrazione con le biblioteche XGBoost и cuML per risolvere problemi di analisi e machine learning.

Fonte: opennet.ru

Aggiungi un commento