Ce qu'une base de données alimentée par GPU peut faire pour vous

La base de données SQL remonte aux années 1970 et est une norme ANSI depuis les années 1980, mais cela ne veut pas dire que la technologie reste immobile. Il est toujours en train de changer, et c'est l'un de ces moyens en tant que bases de données accélérées par GPU.

Les bases de données relationnelles sont devenues des ensembles de données mesurant dans les pétaoctets et au-delà. Même avec l'avènement de l'informatique 64 bits et des téraoctets de mémoire pour un traitement accru, il reste encore beaucoup de données à mâcher et les processeurs ne peuvent gérer qu'une quantité limitée. C'est là que les GPU sont intervenus.

Les GPU sont passés de leur mission initiale d'accélération du jeu à presque tout. Nvidia a pivoté magistralement pour devenir synonyme d'intelligence artificielle, un processus qui nécessite de grandes quantités de données traitées en parallèle et d'autres tâches qui peuvent être bien parallélisées. AMD commence à rattraper son retard, mais Nvidia a une longue avance.

En ce qui concerne les cœurs, ce n'est même pas proche. Les processeurs Xeon ont un maximum de 22 cœurs. AMD Epyc a 32 cœurs. L'architecture Nvidia Volta compte 5 120 cœurs. Imaginez maintenant plus de 5000 cœurs fonctionnant en parallèle sur des données et il est clair pourquoi les GPU sont devenus si populaires pour les projets de calcul massifs.

Ainsi, une nouvelle classe de bases de données a émergé, écrite de A à Z pour prendre en charge et intégrer les GPU et leurs énormes capacités de traitement parallèle. Ces bases de données permettent de nouveaux niveaux de traitement des données, d'analyse et de Big Data en temps réel, car elles peuvent gérer des ensembles de données que les bases de données classiques alimentées par le processeur ne peuvent tout simplement pas.

La base de données GPU définie

Le concept de base de données GPU est assez simple: il utilise le parallélisme des GPU pour effectuer une accélération massive du traitement des données. Le GPU est idéal pour accélérer le traitement des requêtes SQL car SQL effectue la même opération - généralement une recherche - sur chaque ligne de l'ensemble.

Cependant, vous ne mettez pas simplement un tas de cartes Nvidia Tesla dans le serveur hébergeant une base de données Oracle. Les bases de données GPU ont été conçues et écrites dès le départ pour effectuer un traitement parallèle, en commençant par les JOINopérations SQL .

JOINs établissent une relation entre les colonnes de plusieurs tables d'une base de données et sont essentielles pour effectuer des analyses significatives. Les approches de conception traditionnelles pour JOINles systèmes SGBDR hérités ont été conçues il y a des années pour les processeurs monocœur et ne se prêtent pas bien même à un processeur, et encore moins à un GPU.

Au-delà de JOINs, les bases de données GPU ont un niveau de support substantiel, notamment:

  • Connecteurs aux frameworks open source populaires, tels que Hadoop, Kafka, HBase, Spark et Storm.
  • Pilotes ODBC et JDBC pour l'intégration avec les outils de visualisation et de BI existants tels que Tableau, Power BI et Spotfire
  • API pour les liaisons avec les langages de programmation populaires tels que C ++, SQL, Java, Node.js et Python.

Où utiliser une base de données GPU

À cet égard, les bases de données GPU ne sont pas vraiment en concurrence avec Oracle, SQL Server ou DB2. Les bases de données GPU sont orientées vers la prise de décisions en matière d'analyse de données, où les entreprises essaient de prendre une décision en temps réel à partir de grandes quantités de données mais se trouvent incapables de le faire parce qu'il y a trop de données ou parce que les outils d'analyse visuelle sont trop lents.

Les fournisseurs de bases de données GPU ne se considèrent pas comme un remplaçant d'Oracle ou d'une base de données OLTP comme Teradata. Au lieu de cibler les charges de travail SGBDR traditionnelles, les bases de données GPU visent le monde OLAP / OLTP et le Big Data, où les ensembles de données sont massifs et les besoins en temps réel. Au lieu de processus par lots s'exécutant sur des heures ou pendant la nuit, les bases de données GPU permettent de présenter les données en temps réel ou toutes les heures.

La base de données GPU devrait résoudre de nombreux problèmes que NoSQL tente de résoudre, mais vous permet d'utiliser vos outils de requête structurés existants. Utiliser NoSQL signifie réécrire tous vos outils SQL, mais les bases de données GPU utilisent les outils SQL existants.

«Ce que nous pensons voir, c'est que les gens se rendent compte qu'ils peuvent faire des systèmes multidimensionnels et prendre des données de plusieurs scénarios et les combiner», déclare Steve Worthington, architecte de solutions de technologies émergentes pour Datatrend Technologies, une société de conseil informatique qui utilise la base de données GPU SQream. «Les entreprises médicales veulent prendre [les données] de plusieurs systèmes et effectuer des analyses dans les bases de données, car auparavant, elles ne pouvaient pas faire de références croisées et n'avaient aucun moyen de rejoindre les bases de données.

Il cite également des institutions financières qui effectuent des analyses de fraude et de risque qui ne font peut-être que des chèques de carte de crédit maintenant, mais qui souhaitent effectuer des chèques sur plusieurs comptes. Grâce à la puissance du GPU, ils peuvent effectuer des références croisées entre toutes ces sources d'informations à la fois.

Pour Rich Sutton, vice-président des données géospatiales chez Skyhook, un fournisseur de services de localisation, l'utilisation de la base de données GPU OmniSci lui donne une visualisation beaucoup plus grande des ensembles de données géographiques qu'il ne pourrait le faire avec une base de données basée sur le processeur. «Je peux charger un milliard de lignes dans OmniSci et avec peu ou pas de latence au lieu d'avoir à regarder un ensemble de données de 10 000 lignes dans un espace CPU traditionnel», dit-il. «C'est plusieurs ordres de grandeur bénéfiques pour moi de réduire la consommation de données avec une latence massivement réduite.»

Todd Mostak, PDG d'OmniSci, dit qu'un client lui a dit que la vitesse d'OmniSci «réduit le coût de la curiosité. Ils posent des questions sur lesquelles ils se retenaient auparavant. » Un client de services financiers lui a dit qu'une requête de traitement de 18 heures sur une base de données traditionnelle était réduite à une sous-seconde, tandis qu'un opérateur de télécommunications lui a dit que les requêtes qui prenaient des heures à s'exécuter maintenant répondent en moins d'une seconde.

Un autre endroit pour les bases de données GPU est le Big Data en temps réel, où Hadoop a échoué. Ami Gal, PDG du fournisseur de bases de données GPU SQream, affirme qu'une grande partie de la promesse du Big Data - trouver toutes les opportunités qui résident dans des dizaines de pétaoctets de données de ligne - n'a pas été réalisée sur Hadoop car elle était trop lente.

«Spark est assez bon pour le mouvement et la transformation des données, mais une fois que vous avez besoin de traiter d'énormes quantités de données et de les déplacer, vous commencez à traiter des centaines de milliers de nœuds [de calcul] et cela est considéré comme trop difficile à réduire dans de grands ensembles de données. Mais si vous pouvez le faire avec dix ou 15 nœuds, c'est beaucoup plus efficace », dit-il.

Worthington affirme que les serveurs basés sur GPU peuvent faire dans une seule armoire ce qui nécessite de nombreux nœuds de traitement parallèle (MPP) alimentés par le processeur. «Nous pouvons remplacer les racks de nœuds MPP par une demi-douzaine de nœuds contenant chacun deux à quatre GPU. Avec cela, nous pouvons remplacer un investissement de 10 millions de dollars par un investissement inférieur à 1 million de dollars », dit-il.

Le GPU est également important pour Skyhook, qui visualise de grands ensembles de données géographiques. «Si vous avez un million d'appareils sur le terrain et que vous envoyez un ping à l'emplacement quelques fois par minute, vous parlez de 2 milliards de lignes de données par jour. C'est impossible à consommer dans une base de données traditionnelle. Ce n'est tout simplement pas possible. Ainsi, [un] GPU [base de données] vous amène là où vous pouvez consommer ces données », explique Sutton.

Avant d'adopter OmniSci, Skyhook devrait «pyramidiser» les données, n'en prenant que des segments pour la visualisation. Maintenant, dit Sutton, il peut regarder l'ensemble des données. «Je n'ai jamais vu d'autre moyen réaliste de mettre les données en forme pour mon type d'utilisation.»

Bases de données GPU: ce qui est disponible

Les bases de données GPU sont entièrement un phénomène de démarrage, avec des sociétés telles que Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom et Blazegraph.

Tous varient légèrement dans leur fonctionnement. Par exemple, OmniSci visualise les données, tandis que SQream utilise des connecteurs pour des outils de visualisation tels que Tableau, de sorte que chacun doit être évalué individuellement pour déterminer le meilleur ajustement à votre besoin.

Les grands noms du SGBDR n'ont pas encore intégré, à l'exception d'IBM, qui prend en charge certains traitements GPU dans DB2 Blu, une version spéciale de DB2 pour les charges de travail d'analyse. Oracle et TeraData ont tous deux déclaré travailler avec Nvidia mais rien n'en est encore sorti. Microsoft ne prend pas en charge l'accélération GPU sur SQL Server. Gal de SQream a déclaré qu'il avait entendu dire que tous les fournisseurs de SGBDR travaillaient pour ajouter une sorte de support GPU à leurs produits, mais n'avaient aucune information supplémentaire.