Utiliser des GPU pour accélérer les bases de données

OmniSci combine une base de données SQL in-memory avec Immerse, un moteur d'analyse visuelle basée sur des GPU, nous a expliqué Todd Mostak, CEO de la jeune société. (Crédit S.L.)

OmniSci combine une base de données SQL in-memory avec Immerse, un moteur d'analyse visuelle basée sur des GPU, nous a expliqué Todd Mostak, CEO de la jeune société. (Crédit S.L.)

Des start-ups commencent à utiliser la puissance de traitement parallèle des GPU pour traiter les tâches d'analyse big data en temps réel, avec des gains de performance qui s'annoncent prometteurs.

La base de données SQL date des années 1970 et elle est devenue une norme ANSI depuis les années 1980. Mais cela ne veut pas dire que la technologie a cessé d'évoluer. Elle continue à changer, et l'une de ces évolutions se situe dans les bases de données accélérées par GPU. La taille des bases de données relationnelles a beaucoup augmenté : aujourd'hui, les sets de données se mesurent en pétaoctets et au-delà. Même avec l'avènement de l'informatique 64 bits et avec les téraoctets de mémoire pour répondre à ces besoins en calcul, les volumes de données sont très élevés - et les CPU ne sont pas capables de les traiter. C'est là qu'entrent en jeu les GPU. Le rôle des puces graphiques a évolué : de l'accélération 2D/3D, elles sont maintenant impliquées dans l'accélération tout court.  

Nvidia a su prendre un virage magistral en faisant de ses puces une référence dans les tâches d'intelligence artificielle. Ces processus nécessitent de traiter de grandes quantités de données en parallèle et d'autres tâches pouvant profiter du traitement parallèle. Et si AMD commence, un peu, à rattraper son retard, Nvidia a pris une bonne longueur d'avance. Sauf que, pour ce qui est des noyaux, AMD reste encore très loin derrière. À titre de comparaison, les puces Xeon sont limités à un maximum de 22 coeurs, la puce Epyc d'AMD atteint 32 coeurs, et l'architecture de Volta de Nvidia compte 5120 noyaux. Quand on imagine plus de 5000 noyaux fonctionnant en parallèle sur des données, on comprend pourquoi les GPU ont eu un tel succès dans les projets de calcul massif. Le potentiel des GPU a aussi suscité l'émergence d'une nouvelle génération de bases de données, écrites à partir de zéro, capables d'exploiter la puissance des GPU et leurs énormes capacités de traitement parallèle. Ces bases de données ouvrent sur de nouveaux niveaux de traitement des données, d'analyse en temps réel et d'analyse big data, car elles peuvent permettre de traiter des ensembles de données que les bases de données classiques animées par CPU ne peuvent tout simplement pas prendre en charge.

Qu'est-ce qu'une base de données GPU ?

Le concept de base de données GPU est assez simple : il met à profit le parallélisme des GPU pour accélérer le traitement des quantités massives de données. Le GPU est idéal pour accélérer le traitement des requêtes SQL, car le SQL effectue la même opération - généralement une requête - sur chaque ligne du set de données. Cependant, il ne s'agit pas simplement d'entasser des 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 à partir de zéro pour effectuer un traitement parallèle, à commencer par les opérations SQL JOIN. Les JOIN établissent une relation entre les colonnes de plusieurs tables d'une base de données et sont essentiels pour effectuer des analyses pertinentes. Les approches JOIN traditionnelles sur les anciens systèmes SGBDR ont été conçues il y a des années pour les CPU mono-core et ne sont même pas parfaitement adaptées au traitement CPU, et encore moins au traitement GPU.

Mis à part les JOIN, les bases de données GPU bénéficient d'un niveau de support conséquent, notamment :

- Des connecteurs pour les frameworks open source populaires, comme Hadoop, Kafka, HBase, Spark, et Storm.

- Des Pilotes ODBC et JDBC pour l'intégration avec les outils de visualisation et de BI existants comme Tableau, Power BI et Spotfire.

- Des API pour communiquer avec les langages de programmation populaires comme C++, SQL, Java, Node.js, et Python.

Pour lire la suite de cet article, rendez-vous sur Le Monde informatique.

s'abonner
aux newsletters

suivez-nous

Publicité

Derniers Dossiers

Cybersécurité : Faire face aux dernières menaces

Cybersécurité : Faire face aux dernières menaces

« Alertés par une consommation énergétique très élevée d'un fournisseur d'énergie, de nombreux policiers sont intervenus croyant à une ferme de culture du cannabis, il s'agissait...

Publicité