Project

Back to overview

Efficient Real-time Analytics on General-Purpose GPUs

English title Efficient Real-time Analytics on General-Purpose GPUs
Applicant Ailamaki Anastasia
Number 178894
Funding scheme Project funding
Research institution Laboratoire de systèmes d'exploitation EPFL - IC - IIF - LABOS
Institution of higher education EPF Lausanne - EPFL
Main discipline Information Technology
Start/End 01.05.2019 - 30.04.2023
Approved amount 593'928.00
Show all

Keywords (6)

real-time analytics; code generation; GPU; data management; Big Data; NUMA

Lay Summary (French)

Lead
Ce projet va construire un moteur analytique en mémoire vive qui va permettre l’extraction d’intelligence métier en temps réel, supportant l’exécution simultanée de plusieurs requêtes SQL ad-hoc, sur des bases de données de plusieurs téraoctets, grâce à l’utilisation de plusieurs GPUs.
Lay summary

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.

Direct link to Lay Summary Last update: 08.06.2018

Lay Summary (English)

Lead
This project will build an in-memory, analytical engine that enables real-time business intelligence bysupporting concurrent execution of ad-hoc SQL queries over Terabyte-sized databases using multiple GPUs.
Lay summary

The past few years have witnessed a rise in demand for real-time intelligence, as businesses from a wide-range of application domains increasingly require interactive data analytics for making insightful decisions in fast-breaking situations. As the amount of data accumulated by applications continues to grow faster than Moore's law, achieving real-time intelligence requires a computational infrastructure that can sift through billions of rows in milliseconds. These demanding requirements have led to the development of a new breed of analytical database engines that are designed to exploit the massive parallelism and high memory bandwidth of General-Purpose Graphics Processing Units (GPU) to provide as much as 700x performance improvement over traditional CPU-based analytical engines in some situations.For all the performance benefit provided by these new GPU-based engines, they significantly lag behind CPU-based engines with respect to versatility. All current GPU-based engines make one or more simplifying assumptions about several aspects like data size, workload partitionability, expected concurrency levels, or SQL compatibility, to name a few. For instance, in order to achieve the advertised 700x improvement in performance, GPU-based engines typically require all data to be loaded in the limited device memory of GPUs and co-partitioned in such a way that queries can  be executed without any data movement. While certain niche applications, like interactive geo-visualization,  fit these assumptions, most others require the performance of these GPU-based engines without sacrificing the versatility of traditional CPU-based analytical engines.
Our goal is to build an in-memory, analytical engine that enables real-time business intelligence by supporting concurrent execution of ad-hoc SQL queries over Terabyte-sized databases using multiple GPUs. To achieve this goal, we will revisit the three central design aspects that govern the functioning of an analytical engine, namely, data layout and storage models, query execution and processing models, run-time optimization and scheduling models. For each aspect, we will investigate the applicability of current CPU-based techniques in the new multi-GPU context, research new techniques that can exploit GPU-specific properties, and perform a systematic analysis to establish rules of thumb for designing versatile, GPU-based data analytics engines.

Direct link to Lay Summary Last update: 08.06.2018

Responsible applicant and co-applicants

Employees

Abstract

The past few years have witnessed a rise in demand for real-time intelligence, as businesses from a wide-range of application domains increasingly require interactive data analytics for making insightful decisions in fast-breaking situations. As the amount of data accumulated by applications continues to grow faster than Moore's law, achieving real-time intelligence requires a computational infrastructure that can sift through billions of rows in milliseconds. These demanding requirements have led to the development of a new breed of analytical database engines that are designed to exploit the massive parallelism and high memory bandwidth of General-Purpose Graphics Processing Units(GPU) to provide as much as 700x performance improvement over traditional CPU-based analytical engines in some situations.For all the performance benefit provided by these new GPU-based engines, they significantly lag behind CPU-based engines with respect to versatility. All current GPU-based engines make one or more simplifying assumptions about several aspects like data size, workload partitionability, expected concurrency levels, or SQL compatibility, to name a few. For instance, in order to achieve the advertised 700x improvement in performance, GPU-based engines typically require all data to be loaded in the limited device memory of GPUs and copartitioned in such a way that queries can be executed without any data movement. While certain niche applications, like interactive geo-visualization, fit these assumptions, most others require the performance of these GPU-based engines without sacrificing the versatility of traditional CPU-based analytical engines.Our goal is to generalize GPU-based data analytics by building an in-memory, analytical engine that enables real-time business intelligence by supporting concurrent execution of ad-hoc SQL queries over Terabyte-sized datasets using multiple GPUs. To achieve this goal, we will revisit the three central design aspects that govern the functioning of an analytical engine, namely, data layout and storage models, query execution and processing models, run-time optimization and scheduling models. For each aspect, we will investigate the applicability of current CPU-based techniques in the new multi-GPU context, research new techniques that can exploit GPU-specific properties, and perform a systematic analysis to establish rules of thumb for designing versatile, GPU-based data analytics engines.The DIAS lab has a legacy of developing open-source database engines, like Shore-MT, that have been used as a platform by several researchers from both academia and industry for advancing state-of-the-art in database research. Our intention is to continue this tradition by developing an open-source GPU-based analytics engine that can used by the data management community as a foundational platform for building more advanced analytics applications. Given the growing popularity of data analytics in the Swiss industrial sector, we also expect the results from on our research to directly impact society by transforming several application domains like finance, security, and e-commerce.
-