Ces dernières années ont vu l’augmentation de la demande pour l’extraction d’intelligence métier temps réelle, avec l’adoption par les entreprises d’un large éventail d’industries de l’analyse interactive de leurs données afin de prendre des décisions éclairées dans les situations critiques. Comme la quantité de données accumulées par les applications continue de croître plus rapidement que la loi de Moore, l’obtention d’une intelligence en temps réel nécessite une infrastructure de calcul capable de passer au cribles des milliards d’enregistrements en quelques millisecondes. Ces contraintes exigeantes on conduit au développement d’une nouvelle génération de moteurs de base de données analytiques conçues pour exploiter le parallélisme massif et la bande passante mémoire élevée des GPGPUs (General-Purpose Graphics Processing Units) pour une amélioration des performances allant jusqu’à 700x dans certaines situations, comparé à des moteurs analytiques traditionnels ne supportant que les CPUs. Malgré tous les avantages de performance offerts par ces nouveaux moteurs basés sur les GPUs, ceux-ci sont très en retard en ce qui concerne la polyvalence par rapport au moteurs traditionnel, basés sur les CPUs. Tous les moteurs basés sur les GPUs actuels font une ou plusieurs hypothèses simplificatrices sur des aspects comme la taille des données, la partitionnabilité de la charge de travail, les niveaux de concurrences attendus ou la compatibilité SQL, pour n’en nommer que quelques-unes. Par exemple, pour obtenir l’amélioration annoncée des performances de 700x, les moteurs basés sur les GPUs nécessitent généralement que toutes les données soient chargées dans la mémoire, limitée, des GPUs et co-partitionnées de telle sorte que les requête puissent être exécutées sans mouvement de données. Bien que certaines applications de niche, tel que la géo-visualisation interactive, répondent à ces hypothèses, la plupart exigent la performance de ces moteurs basés sur les GPUs, sans sacrifier la polyvalence des moteurs analytiques traditionnels basés sur les CPU. Notre objectif est de créer ce moteur analytique. Pour atteindre cet objectif, nous réévaluerons les trois aspects centraux de l’architecture d’un moteur analytique, à savoir les modèles de disposition et de stockage des données, les modèles d’exécution et de traitement des requêtes, ainsi que les modèles d’optimisation dynamique et d’ordonnancement. Pour chaque aspect, nous étudierons l’applicabilité des techniques CPU actuelles dans le nouveau contexte multi-GPU, ainsi que de nouvelles techniques capables d’exploiter les propriétés spécifiques des GPUs. Nous effectuerons aussi une analyse systématique pour établir des règles empiriques pour la conception de moteurs d’analyse de données polyvalent, basé sur les GPUs.
|