Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le GPGPU peut-il aider les bases de données ?
La technologie sera-t-elle bientôt utilisée généralement ?

Le , par dourouc05

26PARTAGES

0  0 
Bonjour,

Il y a peu, l'IDAV (Institute for Data Analysis and Visualization), a publié un article sur l'utilisation des cartes graphiques pour accélérer le traitement des bases de données (http://www.idav.ucdavis.edu/publicat...pub?pub_id=960).

En effet, les GPU possèdent de nombreuses unités de calcul, 240 coeurs pour la GeForce GTX 285, carte graphique grand-public. Ces unités de calcul sont donc beaucoup plus nombreuses que celles d'un CPU, qui n'en comporte encore que 4 dans le meilleur des cas pour le grand-public.

Cependant, les SGBD actuels sont prévus pour utiliser des CPU, avec donc très peu d'unités de calcul : il faut repenser l'intégralité des algorithmes actuels pour pouvoir tirer parti d'une architecture aussi parallèle.

Ce document propose une nouvelle structure d'indexation, parallèle, complètement pensée pour ces nouveaux processeurs aux multiples unités de calcul. De plus, elle permet d'éviter de consommer trop de mémoire, ce qui est crucial sur les GPU, où il n'est pas aussi facile d'ajouter de la mémoire.

L'implémentation pour GPU reste beaucoup plus efficace que celle pour CPU, mais faut-il rappeler qu'elle est prévue pour un grand nombre d'unités de calcul, que les CPU ne peuvent pas encore fournir.

Le GPGPU semble donc promis à un grand avenir dans le domaine des bases de données.

Cette structure sera-t-elle utilisée dans des SGBD répandus et opensource, comme MySQL ou PostgreSQL, ou bien sera-t-elle plutôt réservée au marché du propriétaire, comme SQL Server ou Oracle ?

Serait-il envisageable de l'utiliser à grande échelle, pour des services comme Google ?

Qu'en est-il à plus petite échelle ? Serait-ce vraiment utile pour un petit forum ou un CMS, ou bien cela risque-t-il de plutôt en abaisser les performances ?

Les gains espérés pourraient-ils arriver à un remplacement complet du parc de serveurs ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de PixHell
Nouveau membre du Club https://www.developpez.com
Le 24/09/2009 à 23:51
Je suis content de voir qu'on trouve de plus en plus d'application avec les Processeurs Graphiques.
En tout cas, je trouve que ça fait un peu "opposition" avec cet article:
http://www.developpez.net/forums/d80...s-disparaitre/
0  0 
Avatar de Mat.M
Expert éminent sénior https://www.developpez.com
Le 25/09/2009 à 15:50
Je n'y crois pas une minute encore une fois c'est du vapourware...
est-ce que quelqu'un ici a travaillé avec des bases de données ?
Parfois il y a des requêtes SQL qui mettent du temps à s'exécuter et puis le disque dur est très sollicité.
Donc utiliser les possibilités d'une carte graphique c'est peanuts...
j'avais bossé sur un projet appli VB + bases de données sous SAGE ou SAARI je ne sais plus trop la moindre requête ça pédalait pendant des minutes...

En effet, les GPU possèdent de nombreuses unités de calcul, 240 coeurs pour la GeForce GTX 285, carte graphique grand-public. Ces unités de calcul sont donc beaucoup plus nombreuses que celles d'un CPU, qui n'en comporte encore que 4 dans le meilleur des cas pour le grand-public.

Cependant, les SGBD actuels sont prévus pour utiliser des CPU, avec donc très peu d'unités de calcul : il faut repenser l'intégralité des algorithmes actuels pour pouvoir tirer parti d'une architecture aussi parallèle.
La problèmatique est la suivante : que se passe-t-il si on fait une requêtes SQL sur plusieurs tables avec des jointures ?
Je crois que des bdd comme MySQL utilisent des arbres binaires de recherches..
et même si tu passes avec du code de traitement natif comme avec PL-SQL le code PL-SQL est interprété donc que le CPU n coeur ne change pas grand chose.

Et puis surtout est-ce que cela peut-il améliorer les performances quand on a une base de données de plusieurs Teraoctets avec architecture disque RAID ?
0  0 
Avatar de Emmanuel Lecoester
Membre expert https://www.developpez.com
Le 27/09/2009 à 10:20
Lecture très intéressante !

L'exploitation optimale de cartes graphiques est liée directement à une nouvelle représentation des données en base ainsi que des indexes associés. Reste à savoir commet exploiter cela sur un environnement Unix dépourvu des 150 cartes graphiques .
0  0 
Avatar de ezmac
Nouveau membre du Club https://www.developpez.com
Le 26/11/2009 à 2:34
Citation Envoyé par Mat.M Voir le message
Je n'y crois pas une minute encore une fois c'est du vapourware...
est-ce que quelqu'un ici a travaillé avec des bases de données ?
Parfois il y a des requêtes SQL qui mettent du temps à s'exécuter et puis le disque dur est très sollicité.
Donc utiliser les possibilités d'une carte graphique c'est peanuts...
j'avais bossé sur un projet appli VB + bases de données sous SAGE ou SAARI je ne sais plus trop la moindre requête ça pédalait pendant des minutes...

La problèmatique est la suivante : que se passe-t-il si on fait une requêtes SQL sur plusieurs tables avec des jointures ?
Je crois que des bdd comme MySQL utilisent des arbres binaires de recherches..
et même si tu passes avec du code de traitement natif comme avec PL-SQL le code PL-SQL est interprété donc que le CPU n coeur ne change pas grand chose.

Et puis surtout est-ce que cela peut-il améliorer les performances quand on a une base de données de plusieurs Teraoctets avec architecture disque RAID ?
ben, si freeBSD tire profit des cartes fermi pour acceler l'OS.... la balle est dans le camp des developèurs
0  0 
Avatar de ezmac
Nouveau membre du Club https://www.developpez.com
Le 26/11/2009 à 2:45
notre big blue de 80 power7, n'est plus le même on a rajouter des cartes nvidia sur chaque lame..... et freeBSD 8.1..... ya pas foto, même sans base de données optimisée pour ça avec openCL ça lui donne un coup de fouet !!!
car les telsa ne sont pas encore disponibles, pas de drivers optimisés openCL encore !!!
0  0 
Avatar de Mat.M
Expert éminent sénior https://www.developpez.com
Le 26/11/2009 à 16:00
Citation Envoyé par ezmac Voir le message
ya pas foto, même sans base de données optimisée pour ça avec openCL ça lui donne un coup de fouet !!!
car les telsa ne sont pas encore disponibles, pas de drivers optimisés openCL encore !!!
D'accord mais le Big Blue dont tu parles est-ce qu'il gère des bases de données "en production"
Je serais curieux de voir ces performances dont tu parles je fais preuve de scepticisme...
0  0 
Avatar de Emmanuel Deloget
Expert confirmé https://www.developpez.com
Le 03/12/2009 à 11:28
Pour information : il semblerait que le domaine sur lequel la question originale porte soit en pleine effervescence, notamment dans le cas ou le système d'indexation mis en œuvre est complexe (exemple: indexation des pages web pour un moteur de recherche, requêtes, ...). Cf les papiers récents présentés à la WWW2009 et notamment Using Graphics Processors for High Performance IR Query Processing de Ding, He, Yan et Suel.
0  0 
Avatar de ezmac
Nouveau membre du Club https://www.developpez.com
Le 02/01/2010 à 22:16
Citation Envoyé par Mat.M Voir le message
D'accord mais le Big Blue dont tu parles est-ce qu'il gère des bases de données "en production"
Je serais curieux de voir ces performances dont tu parles je fais preuve de scepticisme...
ben se sont des miliers de données minutes...... come se sont de données qui sont traitées avec la même operation, rien que du SIMD ( single instruction multiple data) ..... donc on revient en arrière au temps des DSP.... mais en trés puissant.
0  0 
Avatar de ezmac
Nouveau membre du Club https://www.developpez.com
Le 02/01/2010 à 22:19
Citation Envoyé par dourouc05 Voir le message
Bonjour,

Il y a peu, l'IDAV (Institute for Data Analysis and Visualization), a publié un article sur l'utilisation des cartes graphiques pour accélérer le traitement des bases de données (http://www.idav.ucdavis.edu/publicat...pub?pub_id=960).

En effet, les GPU possèdent de nombreuses unités de calcul, 240 coeurs pour la GeForce GTX 285, carte graphique grand-public. Ces unités de calcul sont donc beaucoup plus nombreuses que celles d'un CPU, qui n'en comporte encore que 4 dans le meilleur des cas pour le grand-public.

Cependant, les SGBD actuels sont prévus pour utiliser des CPU, avec donc très peu d'unités de calcul : il faut repenser l'intégralité des algorithmes actuels pour pouvoir tirer parti d'une architecture aussi parallèle.

Ce document propose une nouvelle structure d'indexation, parallèle, complètement pensée pour ces nouveaux processeurs aux multiples unités de calcul. De plus, elle permet d'éviter de consommer trop de mémoire, ce qui est crucial sur les GPU, où il n'est pas aussi facile d'ajouter de la mémoire.

L'implémentation pour GPU reste beaucoup plus efficace que celle pour CPU, mais faut-il rappeler qu'elle est prévue pour un grand nombre d'unités de calcul, que les CPU ne peuvent pas encore fournir.

Le GPGPU semble donc promis à un grand avenir dans le domaine des bases de données.

Cette structure sera-t-elle utilisée dans des SGBD répandus et opensource, comme MySQL ou PostgreSQL, ou bien sera-t-elle plutôt réservée au marché du propriétaire, comme SQL Server ou Oracle ?

Serait-il envisageable de l'utiliser à grande échelle, pour des services comme Google ?

Qu'en est-il à plus petite échelle ? Serait-ce vraiment utile pour un petit forum ou un CMS, ou bien cela risque-t-il de plutôt en abaisser les performances ?

Les gains espérés pourraient-ils arriver à un remplacement complet du parc de serveurs ?

rappeles toi qu'il y a openCL, chacun ne deverat pas avoir à reventer la roue....
0  0 
Avatar de ezmac
Nouveau membre du Club https://www.developpez.com
Le 21/01/2010 à 7:45
Citation Envoyé par ezmac Voir le message
rappeles toi qu'il y a openCL, chacun ne deverat pas avoir à reventer la roue....
jette un coup d'oeil sur freeBSD dans sa versin 8.1 (beta)... cet OS tire profit de Grand Central (je ne me rappele pas du nom de la version open source) et d'open CL..

bien qu'il fasse réecrire une partie du code, la vitesse et puisance ça en vaux la chandelle.
0  0