Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation > Programmation parallèle > Calcul sur processeurs graphiques (GPGPU)
Calcul sur processeurs graphiques (GPGPU) Forum d'entraide pour les calculs sur processeurs graphiques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 24/09/2009, 21h00   #1
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 582
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 18 582
Points : 72 519
Points : 72 519
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Par défaut Le GPGPU peut-il aider les bases de données ?

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 ?
__________________
Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2009, 23h51   #2
PixHell
Candidat au titre de Membre du Club
 
Inscription : septembre 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 25
Points : 12
Points : 12
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/
PixHell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 15h50   #3
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 453
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2006
Messages : 4 453
Points : 5 874
Points : 5 874
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...
Citation:
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 ?
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2009, 10h20   #4
Emmanuel Lecoester
Responsable WinDev
 
Avatar de Emmanuel Lecoester
 
Emmanuel Lecoester
Inscription : février 2003
Messages : 1 468
Détails du profil
Informations personnelles :
Nom : Emmanuel Lecoester
Âge : 37
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2003
Messages : 1 468
Points : 3 455
Points : 3 455
Envoyer un message via MSN à Emmanuel Lecoester Envoyer un message via Skype™ à Emmanuel Lecoester
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 .
__________________
Emmanuel Lecoester
=> On recrute des rédacteurs WinDev
Emmanuel Lecoester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2009, 02h34   #5
ezmac
Nouveau Membre du Club
 
Homme
Inscription : avril 2008
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2008
Messages : 25
Points : 28
Points : 28
Envoyer un message via AIM à ezmac
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
ezmac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2009, 02h45   #6
ezmac
Nouveau Membre du Club
 
Homme
Inscription : avril 2008
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2008
Messages : 25
Points : 28
Points : 28
Envoyer un message via AIM à ezmac
Par défaut GPU et BD

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 !!!
ezmac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2009, 16h00   #7
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 453
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2006
Messages : 4 453
Points : 5 874
Points : 5 874
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...
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2009, 11h28   #8
Emmanuel Deloget
Expert Confirmé Sénior
 
Homme Emmanuel Deloget
Développeur informatique
Inscription : septembre 2007
Messages : 1 827
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Deloget
Âge : 37
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : septembre 2007
Messages : 1 827
Points : 4 395
Points : 4 395
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.
__________________
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Emmanuel Deloget est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2010, 22h16   #9
ezmac
Nouveau Membre du Club
 
Homme
Inscription : avril 2008
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2008
Messages : 25
Points : 28
Points : 28
Envoyer un message via AIM à ezmac
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.
ezmac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2010, 22h19   #10
ezmac
Nouveau Membre du Club
 
Homme
Inscription : avril 2008
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2008
Messages : 25
Points : 28
Points : 28
Envoyer un message via AIM à ezmac
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....
ezmac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2010, 07h45   #11
ezmac
Nouveau Membre du Club
 
Homme
Inscription : avril 2008
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2008
Messages : 25
Points : 28
Points : 28
Envoyer un message via AIM à ezmac
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.
ezmac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2010, 15h53   #12
TNT89
Membre éclairé
 
Avatar de TNT89
 
Inscription : juillet 2007
Messages : 321
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2007
Messages : 321
Points : 386
Points : 386
La GTX 285, une carte grand public??? euhhhh...
TNT89 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2010, 06h47   #13
TanEk
Membre Expert
 
Homme Julian Ibarz
Ingénieur développement logiciels
Inscription : avril 2006
Messages : 450
Détails du profil
Informations personnelles :
Nom : Homme Julian Ibarz
Âge : 27
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2006
Messages : 450
Points : 1 663
Points : 1 663
Ouais enfin si tu compares a une carte pro quadro fx 5600 a... 2000$ et qui est l'equivalent d'une... geforce 8800 GT avec plus de memoire vive... hum
__________________
Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
Profils : G+ - LinkedIn
TanEk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 13h05   #14
Gouyon
Membre chevronné
 
Avatar de Gouyon
 
Homme Rémi Gouyon
Développeur informatique
Inscription : novembre 2003
Messages : 595
Détails du profil
Informations personnelles :
Nom : Homme Rémi Gouyon
Âge : 49
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2003
Messages : 595
Points : 600
Points : 600
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 ?
Oui sans être un expert ça fait un moment que je suis dedans.

Citation:
Envoyé par Mat.M Voir le message
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...
Bien sur mais ça dépend de plein d'autres facteurs comme la structure de la base, la complexité de la requête etc etc

Citation:
Envoyé par Mat.M Voir le message
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.
Les moteurs de base de données sont des logiciels comme les autres et donc susceptible d'être optimisé. Les recherches peuvent être parallélisé par exemple. On commence chez nous à utiliser ces cartes pour optimiser des logiciels de calcul.
La première chose qu'on découvre c'est que ce n'est pas simple, notamment au niveau de la gestion de la mémoire. Ensuite c'est encore très couteux en temps de développement. On ne peut pas l'appliquer ça à tout. On obtient dans certains cas des gains élevé et dans d'autres cas ce n'est pas flagrant. Il faut tester. Autre inconvénient majeur le logiciel devient difficilement distribuable car il est lié à du hardware.
__________________
Il y a des jours où j'éprouve une haine profonde envers microsoft
Venez vous défouler ici ou c'est amusant
Mon modeste site et mes modestes oeuvres sont
Rémi
Gouyon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 16h24   #15
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 453
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2006
Messages : 4 453
Points : 5 874
Points : 5 874
Citation:
Envoyé par Gouyon Voir le message
Les moteurs de base de données sont des logiciels comme les autres et donc susceptible d'être optimisé. Les recherches peuvent être parallélisé par exemple. On commence chez nous à utiliser ces cartes pour optimiser des logiciels de calcul.
Je crois qu'il y a erreur ; une base de donnée n'utilise pas de calculs sauf si tu utilises implicitement des calculs dans les requêtes SQL par exemple si tu fais SELECT SUM [colonne] .
Est-ce que tu sais comment fonctionne un moteur de base de donnée ?
Un moteur de BDD quand tu fais des requêtes SQL construit des arbres de recherches donc je doute fortement que l'utilisation d'un GPU apporte quelque chose de vraiment pertinent.
Surtout que quand tu fais des traitemens SQL que cela soit sous SQL-Server, Access , Oracle ou les autres le moteur a tendance à "swapper' sur disque dur...

Pour un jeu vidéo utiliser le processeur de la carte graphique pour calculer des matrices sur des polygones là je dis ce n'est que mieux...
pour faire des requêtes SQL avec Oracle là je suis vraiment sceptique de l'intérêt du processeur d'une carte graphique...
c'est vraiment de la tartufferie..


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).
Attention ce ne sont que des expérimentations effectuées par un institut de recherche.
Or on est très loin du milieu de l'entreprise !
Je dis encore une fois que c'est pas très crédible.
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2010, 21h29   #16
Gouyon
Membre chevronné
 
Avatar de Gouyon
 
Homme Rémi Gouyon
Développeur informatique
Inscription : novembre 2003
Messages : 595
Détails du profil
Informations personnelles :
Nom : Homme Rémi Gouyon
Âge : 49
Localisation : France, Loiret (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : novembre 2003
Messages : 595
Points : 600
Points : 600
Citation:
Envoyé par Mat.M Voir le message
Je crois qu'il y a erreur ; une base de donnée n'utilise pas de calculs sauf si tu utilises implicitement des calculs dans les requêtes SQL par exemple si tu fais SELECT SUM [colonne] .
Tout à fait mais je ne parlais pas de base de donnée mais de l'utilisation qu'on fait de ses cartes chez nous.

Citation:
Envoyé par Mat.M Voir le message
Est-ce que tu sais comment fonctionne un moteur de base de donnée ?
Un moteur de BDD quand tu fais des requêtes SQL construit des arbres de recherches donc je doute fortement que l'utilisation d'un GPU apporte quelque chose de vraiment pertinent.
N'étant pas un spécialiste des moteurs de BDD je ne peux pas dire. Maintenant si des gens sont en train d'y réfléchir laissons les pousser leur réflexion jusqu'au bout et on verra.

Citation:
Envoyé par Mat.M Voir le message
Surtout que quand tu fais des traitemens SQL que cela soit sous SQL-Server, Access , Oracle ou les autres le moteur a tendance à "swapper' sur disque dur...
Ben oui window 32bit est limité en mémoire donc il faut bien utiliser le disque dur. Personnellement j'ai une base de donnée d'images qui est de l'ordre du To. Les images sont stockées sur disque et la base quant à elle tient largement en mémoire vive.
__________________
Il y a des jours où j'éprouve une haine profonde envers microsoft
Venez vous défouler ici ou c'est amusant
Mon modeste site et mes modestes oeuvres sont
Rémi
Gouyon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h17.


 
 
 
 
Partenaires

Hébergement Web