1,721,025 research outputs found
Integrating Massive Data Streams
Data Integration has been a long-standing and challenging problem for enterprises and researchers. Data residing in multiple heterogeneous sources must be integrated and prepared such that the valuable information that it carries, can be extracted and analysed. However, the volume and the velocity of the produced data in addition to the modern business needs for real-time results have pushed data analytics, and therefore data integration, towards data streams. While data integration is a hard problem in and of itself, integrating data streams becomes even more challenging. Streams are characterized by their high velocity, infinite nature and predisposition to concept drift.The goal of this doctoral work is to design and provide scalable methods to support data integration tasks on massive data streams, i.e., support streaming data integration. The aim of this work is threefold. First, we aim at developing and proposing streaming methods to compute temporal stream data-profiles and summaries that can describe the dynamic state of a stream in the course of time. Second, we aim at developing methods and metrics of stream similarity. Those methods and metrics can serve as means to detect similar or complementary streams in a streaming data lake. Finally, we aim at optimizing distributed streaming similarity joins - a very important operation that precedes entity linking and resolution. This paper discusses exciting challenges and open problems in the field, and a research plan on tackling them.Web Information SystemsSoftware Technolog
SHACL constraint validation during SPARQL query processing
The importance of knowledge graphs is increasing. Due to their application in more and more real-world use-cases the data quality issue has to be addressed. The Shapes Constraint Language (SHACL) is the W3C recommendation language for defining integrity constraints over knowledge graphs expressed in the Resource Description Framework (RDF). Annotating SPARQL query results with metadata from the SHACL validation provides a better understanding of the knowledge graph and its data quality. We propose a query engine that is able to efficiently evaluate which instances in the knowledge graph fulfill the requirements from the SHACL shape schema and annotate the SPARQL query result with this metadata. Hence, adding the dimension of explainability to SPARQL query processing. Our preliminary analysis shows that the proposed optimizations performed for SHACL validation during SPARQL query processing increase the performance compared to a naive approach. However, in some queries the naive approach outperforms the optimizations. This shows that more work needs to be done in this topic to fully comprehend all impacting factors and to identify the amount of overhead added to the query execution
Exploiting Data-Level-Parallelism for Modern In-Memory OLAP Query Engines
The development of in-memory query engines is constantly adapting to evolving hardware features to maintain high performance for modern data analytics.
To achieve this, parallelizing query processing is crucial for leveraging the full potential of modern hardware.
While traditional parallelization techniques like multi-threading and distributed computing are well-established, the increasing availability and continuous advancements of data-level parallelism, known as Single Instruction Multiple Data (SIMD), have made SIMD a cutting-edge approach for improving single-query performance.
Three general trends can be identified in the evolution of SIMD hardware: (i) continual increase in the available degree of data-level parallelism through wider SIMD registers, (ii) ongoing expansion of functional capabilities, and (iii) notable heterogeneity of the SIMD hardware landscape.
The increasing width of SIMD registers, ranging from 128-bit to 512-bit for Intel and ARM platforms and up to 16 Kb on the NEC SX-Aurora TSUBASA vector engine, provides significant potential for data-level parallelism.
This trend benefits query operators with linear access patterns, such as simple scans or arithmetic operations.
However, it can negatively impact operators that rely on random access patterns or introduce loop-carried dependencies, such as sorting or a Hash-Join.
With the introduction of novel instruction set extensions, like Intel's AVX-512, the functional capabilities of SIMD hardware have been continuously extended, allowing more complex operations to be efficiently executed in parallel.
Consequently, this thesis outlines the opportunities and challenges of wider SIMD registers for in-memory query processing and how novel instruction set extensions can be used to mitigate some challenges.
Additionally, the SIMD hardware landscape has become increasingly heterogeneous, with different architectures available.
This diversity poses a significant challenge for academia and industry, as it requires constant adaptation and re-evaluation of SIMD-based algorithms and data structures.
To address this challenge, we implemented a SIMD hardware abstraction library called Template SIMD Library (TSL), which provides a unified interface to different architectures.
In this thesis, we present the design and implementation of TSL, demonstrating its capabilities by implementing a set of SIMD-based algorithms for in-memory query processing. We also show that even modern FPGAs benefit from the SIMD paradigm and can be programmed using high-level synthesis tools, such as Intel's oneAPI.
Moreover, we demonstrate the potential of SIMD-based FPGA programming by implementing SIMD-based algorithms for in-memory query processing on different FPGA cards and integrating the necessary functionality into the TSL.
Finally, we propose a novel workload-aware SIMD query processing approach called SIMQ.
This approach leverages SIMD registers to share data access and SIMD instructions to share computation across queries.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 SummaryKontinuierlich wachsende Mengen an zu verwaltenden Daten und komplexer werdende analytische Anfragen erfordern eine stetige Weiterentwicklung und Verbesserung von In-Memory Query Engines.
Die effiziente Ausnutzung sich ständig weiterentwickelnder Hardware-Features fällt dabei eine entscheidende Rolle zu.
Ein grundlegender Ansatz zur Beschleunigung von Algorithmen besteht in der Parallelisierung der Verarbeitung.
Neben Scale-up und Scale-out Ansätzen, wie Multi-Thread beziehungsweiße Distributed Computing, existiert die Möglichkeit der Datenlevel parallelen (Single Instruction Multiple Data (SIMD)) Verarbeitung.
Durch die zunehmende Verfügbarkeit und kontinuierliche Weiterentwicklung ist vorallem SIMD eine häufig eingesetzte Technik zur Beschleunigung verschiedenster Algorithmen in Forschung und Industrie geworden.
Drei allgemeine Trends lassen sich im Bezug auf die Entwicklung von SIMD-Hardware identifizieren: (i) eine kontinuierliche Zunahme des verfügbaren Grades an Datenparallelismus durch breitere SIMD-Register, (ii) eine kontinuierliche Erweiterung des Funktionsumfangs und (iii) eine große Heterogenität der SIMD-Hardware-Landschaft.
Die zunehmende Breite der verfügbaren SIMD-Register, die von 128 bit bis 512 bit für Inel und ARM Plattformen und bis zu 16 Kb auf der NEC SX-Aurora TSUBASA reicht, nützt vorallem Algorithmen mit linearem Zugriffsmuster ohne relevante Abhängigkeiten zwischen den einzelnen zu verarbeitenden Daten.
Algorithmen welche auf nicht-lineare Zugriffsmuster angewiesen sind oder deren Verhalten stark von den zu Grunde liegenden Daten abhängig ist, können jedoch häufig nicht von einem höheren Grad an Datenlevel Parallelismus profitieren.
Ein Beispiel für solch einen Algorithmus ist der Hash-Join, dessen Ziel es ist, zwei Relationen über einen gemeinsamen Schlüssel zu verknüpfen.
Durch die Einführung neuer Befehlssatzerweiterungen wie AVX-512 von Intel werden die funktionalen Fähigkeiten der der verfügbaren SIMD-Hardware kontinuierlich erweitert, wodurch bisherige Annahmen neu bewertet werden müssen.
Die vorliegende Arbeit untersucht die Möglichkeiten und Herausforderungen breiterer SIMD-Register für die In-Memory Anfrageverarbeitung und inwiefern neue Befehlssatzerweiterungen genutzt werden können, um wichtige Herausforderungen in der Datenlevel paralleln Verarbeitung zu bewältigen.
Der dritte Trend, die zunehmende Ausdifferenzierung verfügbarer Hardware erschwert den konsistenten Einsatz von SIMD.
Unterschiedliche Funktionen, Datentypen und Konzepte verhindern eine einfache Portierung bereits optimierter Algorithmen.
Neue Funktionalitäten erfordern mitunter eine architekturspezifische Anpassung des gesamten Algorithmus um vorhandene Möglichkeiten bestmöglich auszunutzen.
Um dieser Herausforderung zu begegnen, wird die im Rahmen dieser Dissertation entwickelte SIMD-Hardwareabstraktionsbibliothek namens Template SIMD Library (TSL) vorgestellt, die eine einheitliche Schnittstelle bereitstellt um auf einer Vielzahl von Architekturen mit unterschiedlichen Datentypen Datenlevel parallelität auszunutzen.
Darüber hinaus wird gezeigt, dass selbst moderne FPGAs vom SIMD-Paradigma profitieren und mit Hilfe von high-level synthesis Tools (HLS) wie Intels oneAPI programmiert werden können.
Das Potenzial von SIMD zur Beschleunigung der Verarbeitung auf FPGAs wird durch diverse Benchmarks von Datenbank-spezifischen Algorithmen auf zwei verschiedenen FPGA-Karten aufgezeigt und die erforderliche Funktionalität in die TSL integriert.
Während alle bisherigen Ansätze zum Einsatz von SIMD in der In-Memory Anfrageverarbeitung auf die Beschleunigung einzelner Anfragen abzielten, wird in der vorliegenden Arbeit ein neues Konzept zur Workload-Optimierung namens SIMQ vorgestellt.
Dieser Ansatz nutzt SIMD-Register als von der Hardware bereitgestellte Ressource, um gemeinsame Datenzugriffe unterschiedlicher Anfragen zusammenzuführen.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 Summar
Exploiting Data-Level-Parallelism for Modern In-Memory OLAP Query Engines
The development of in-memory query engines is constantly adapting to evolving hardware features to maintain high performance for modern data analytics.
To achieve this, parallelizing query processing is crucial for leveraging the full potential of modern hardware.
While traditional parallelization techniques like multi-threading and distributed computing are well-established, the increasing availability and continuous advancements of data-level parallelism, known as Single Instruction Multiple Data (SIMD), have made SIMD a cutting-edge approach for improving single-query performance.
Three general trends can be identified in the evolution of SIMD hardware: (i) continual increase in the available degree of data-level parallelism through wider SIMD registers, (ii) ongoing expansion of functional capabilities, and (iii) notable heterogeneity of the SIMD hardware landscape.
The increasing width of SIMD registers, ranging from 128-bit to 512-bit for Intel and ARM platforms and up to 16 Kb on the NEC SX-Aurora TSUBASA vector engine, provides significant potential for data-level parallelism.
This trend benefits query operators with linear access patterns, such as simple scans or arithmetic operations.
However, it can negatively impact operators that rely on random access patterns or introduce loop-carried dependencies, such as sorting or a Hash-Join.
With the introduction of novel instruction set extensions, like Intel's AVX-512, the functional capabilities of SIMD hardware have been continuously extended, allowing more complex operations to be efficiently executed in parallel.
Consequently, this thesis outlines the opportunities and challenges of wider SIMD registers for in-memory query processing and how novel instruction set extensions can be used to mitigate some challenges.
Additionally, the SIMD hardware landscape has become increasingly heterogeneous, with different architectures available.
This diversity poses a significant challenge for academia and industry, as it requires constant adaptation and re-evaluation of SIMD-based algorithms and data structures.
To address this challenge, we implemented a SIMD hardware abstraction library called Template SIMD Library (TSL), which provides a unified interface to different architectures.
In this thesis, we present the design and implementation of TSL, demonstrating its capabilities by implementing a set of SIMD-based algorithms for in-memory query processing. We also show that even modern FPGAs benefit from the SIMD paradigm and can be programmed using high-level synthesis tools, such as Intel's oneAPI.
Moreover, we demonstrate the potential of SIMD-based FPGA programming by implementing SIMD-based algorithms for in-memory query processing on different FPGA cards and integrating the necessary functionality into the TSL.
Finally, we propose a novel workload-aware SIMD query processing approach called SIMQ.
This approach leverages SIMD registers to share data access and SIMD instructions to share computation across queries.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 SummaryKontinuierlich wachsende Mengen an zu verwaltenden Daten und komplexer werdende analytische Anfragen erfordern eine stetige Weiterentwicklung und Verbesserung von In-Memory Query Engines.
Die effiziente Ausnutzung sich ständig weiterentwickelnder Hardware-Features fällt dabei eine entscheidende Rolle zu.
Ein grundlegender Ansatz zur Beschleunigung von Algorithmen besteht in der Parallelisierung der Verarbeitung.
Neben Scale-up und Scale-out Ansätzen, wie Multi-Thread beziehungsweiße Distributed Computing, existiert die Möglichkeit der Datenlevel parallelen (Single Instruction Multiple Data (SIMD)) Verarbeitung.
Durch die zunehmende Verfügbarkeit und kontinuierliche Weiterentwicklung ist vorallem SIMD eine häufig eingesetzte Technik zur Beschleunigung verschiedenster Algorithmen in Forschung und Industrie geworden.
Drei allgemeine Trends lassen sich im Bezug auf die Entwicklung von SIMD-Hardware identifizieren: (i) eine kontinuierliche Zunahme des verfügbaren Grades an Datenparallelismus durch breitere SIMD-Register, (ii) eine kontinuierliche Erweiterung des Funktionsumfangs und (iii) eine große Heterogenität der SIMD-Hardware-Landschaft.
Die zunehmende Breite der verfügbaren SIMD-Register, die von 128 bit bis 512 bit für Inel und ARM Plattformen und bis zu 16 Kb auf der NEC SX-Aurora TSUBASA reicht, nützt vorallem Algorithmen mit linearem Zugriffsmuster ohne relevante Abhängigkeiten zwischen den einzelnen zu verarbeitenden Daten.
Algorithmen welche auf nicht-lineare Zugriffsmuster angewiesen sind oder deren Verhalten stark von den zu Grunde liegenden Daten abhängig ist, können jedoch häufig nicht von einem höheren Grad an Datenlevel Parallelismus profitieren.
Ein Beispiel für solch einen Algorithmus ist der Hash-Join, dessen Ziel es ist, zwei Relationen über einen gemeinsamen Schlüssel zu verknüpfen.
Durch die Einführung neuer Befehlssatzerweiterungen wie AVX-512 von Intel werden die funktionalen Fähigkeiten der der verfügbaren SIMD-Hardware kontinuierlich erweitert, wodurch bisherige Annahmen neu bewertet werden müssen.
Die vorliegende Arbeit untersucht die Möglichkeiten und Herausforderungen breiterer SIMD-Register für die In-Memory Anfrageverarbeitung und inwiefern neue Befehlssatzerweiterungen genutzt werden können, um wichtige Herausforderungen in der Datenlevel paralleln Verarbeitung zu bewältigen.
Der dritte Trend, die zunehmende Ausdifferenzierung verfügbarer Hardware erschwert den konsistenten Einsatz von SIMD.
Unterschiedliche Funktionen, Datentypen und Konzepte verhindern eine einfache Portierung bereits optimierter Algorithmen.
Neue Funktionalitäten erfordern mitunter eine architekturspezifische Anpassung des gesamten Algorithmus um vorhandene Möglichkeiten bestmöglich auszunutzen.
Um dieser Herausforderung zu begegnen, wird die im Rahmen dieser Dissertation entwickelte SIMD-Hardwareabstraktionsbibliothek namens Template SIMD Library (TSL) vorgestellt, die eine einheitliche Schnittstelle bereitstellt um auf einer Vielzahl von Architekturen mit unterschiedlichen Datentypen Datenlevel parallelität auszunutzen.
Darüber hinaus wird gezeigt, dass selbst moderne FPGAs vom SIMD-Paradigma profitieren und mit Hilfe von high-level synthesis Tools (HLS) wie Intels oneAPI programmiert werden können.
Das Potenzial von SIMD zur Beschleunigung der Verarbeitung auf FPGAs wird durch diverse Benchmarks von Datenbank-spezifischen Algorithmen auf zwei verschiedenen FPGA-Karten aufgezeigt und die erforderliche Funktionalität in die TSL integriert.
Während alle bisherigen Ansätze zum Einsatz von SIMD in der In-Memory Anfrageverarbeitung auf die Beschleunigung einzelner Anfragen abzielten, wird in der vorliegenden Arbeit ein neues Konzept zur Workload-Optimierung namens SIMQ vorgestellt.
Dieser Ansatz nutzt SIMD-Register als von der Hardware bereitgestellte Ressource, um gemeinsame Datenzugriffe unterschiedlicher Anfragen zusammenzuführen.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 Summar
Exploiting Data-Level-Parallelism for Modern In-Memory OLAP Query Engines
The development of in-memory query engines is constantly adapting to evolving hardware features to maintain high performance for modern data analytics.
To achieve this, parallelizing query processing is crucial for leveraging the full potential of modern hardware.
While traditional parallelization techniques like multi-threading and distributed computing are well-established, the increasing availability and continuous advancements of data-level parallelism, known as Single Instruction Multiple Data (SIMD), have made SIMD a cutting-edge approach for improving single-query performance.
Three general trends can be identified in the evolution of SIMD hardware: (i) continual increase in the available degree of data-level parallelism through wider SIMD registers, (ii) ongoing expansion of functional capabilities, and (iii) notable heterogeneity of the SIMD hardware landscape.
The increasing width of SIMD registers, ranging from 128-bit to 512-bit for Intel and ARM platforms and up to 16 Kb on the NEC SX-Aurora TSUBASA vector engine, provides significant potential for data-level parallelism.
This trend benefits query operators with linear access patterns, such as simple scans or arithmetic operations.
However, it can negatively impact operators that rely on random access patterns or introduce loop-carried dependencies, such as sorting or a Hash-Join.
With the introduction of novel instruction set extensions, like Intel's AVX-512, the functional capabilities of SIMD hardware have been continuously extended, allowing more complex operations to be efficiently executed in parallel.
Consequently, this thesis outlines the opportunities and challenges of wider SIMD registers for in-memory query processing and how novel instruction set extensions can be used to mitigate some challenges.
Additionally, the SIMD hardware landscape has become increasingly heterogeneous, with different architectures available.
This diversity poses a significant challenge for academia and industry, as it requires constant adaptation and re-evaluation of SIMD-based algorithms and data structures.
To address this challenge, we implemented a SIMD hardware abstraction library called Template SIMD Library (TSL), which provides a unified interface to different architectures.
In this thesis, we present the design and implementation of TSL, demonstrating its capabilities by implementing a set of SIMD-based algorithms for in-memory query processing. We also show that even modern FPGAs benefit from the SIMD paradigm and can be programmed using high-level synthesis tools, such as Intel's oneAPI.
Moreover, we demonstrate the potential of SIMD-based FPGA programming by implementing SIMD-based algorithms for in-memory query processing on different FPGA cards and integrating the necessary functionality into the TSL.
Finally, we propose a novel workload-aware SIMD query processing approach called SIMQ.
This approach leverages SIMD registers to share data access and SIMD instructions to share computation across queries.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 SummaryKontinuierlich wachsende Mengen an zu verwaltenden Daten und komplexer werdende analytische Anfragen erfordern eine stetige Weiterentwicklung und Verbesserung von In-Memory Query Engines.
Die effiziente Ausnutzung sich ständig weiterentwickelnder Hardware-Features fällt dabei eine entscheidende Rolle zu.
Ein grundlegender Ansatz zur Beschleunigung von Algorithmen besteht in der Parallelisierung der Verarbeitung.
Neben Scale-up und Scale-out Ansätzen, wie Multi-Thread beziehungsweiße Distributed Computing, existiert die Möglichkeit der Datenlevel parallelen (Single Instruction Multiple Data (SIMD)) Verarbeitung.
Durch die zunehmende Verfügbarkeit und kontinuierliche Weiterentwicklung ist vorallem SIMD eine häufig eingesetzte Technik zur Beschleunigung verschiedenster Algorithmen in Forschung und Industrie geworden.
Drei allgemeine Trends lassen sich im Bezug auf die Entwicklung von SIMD-Hardware identifizieren: (i) eine kontinuierliche Zunahme des verfügbaren Grades an Datenparallelismus durch breitere SIMD-Register, (ii) eine kontinuierliche Erweiterung des Funktionsumfangs und (iii) eine große Heterogenität der SIMD-Hardware-Landschaft.
Die zunehmende Breite der verfügbaren SIMD-Register, die von 128 bit bis 512 bit für Inel und ARM Plattformen und bis zu 16 Kb auf der NEC SX-Aurora TSUBASA reicht, nützt vorallem Algorithmen mit linearem Zugriffsmuster ohne relevante Abhängigkeiten zwischen den einzelnen zu verarbeitenden Daten.
Algorithmen welche auf nicht-lineare Zugriffsmuster angewiesen sind oder deren Verhalten stark von den zu Grunde liegenden Daten abhängig ist, können jedoch häufig nicht von einem höheren Grad an Datenlevel Parallelismus profitieren.
Ein Beispiel für solch einen Algorithmus ist der Hash-Join, dessen Ziel es ist, zwei Relationen über einen gemeinsamen Schlüssel zu verknüpfen.
Durch die Einführung neuer Befehlssatzerweiterungen wie AVX-512 von Intel werden die funktionalen Fähigkeiten der der verfügbaren SIMD-Hardware kontinuierlich erweitert, wodurch bisherige Annahmen neu bewertet werden müssen.
Die vorliegende Arbeit untersucht die Möglichkeiten und Herausforderungen breiterer SIMD-Register für die In-Memory Anfrageverarbeitung und inwiefern neue Befehlssatzerweiterungen genutzt werden können, um wichtige Herausforderungen in der Datenlevel paralleln Verarbeitung zu bewältigen.
Der dritte Trend, die zunehmende Ausdifferenzierung verfügbarer Hardware erschwert den konsistenten Einsatz von SIMD.
Unterschiedliche Funktionen, Datentypen und Konzepte verhindern eine einfache Portierung bereits optimierter Algorithmen.
Neue Funktionalitäten erfordern mitunter eine architekturspezifische Anpassung des gesamten Algorithmus um vorhandene Möglichkeiten bestmöglich auszunutzen.
Um dieser Herausforderung zu begegnen, wird die im Rahmen dieser Dissertation entwickelte SIMD-Hardwareabstraktionsbibliothek namens Template SIMD Library (TSL) vorgestellt, die eine einheitliche Schnittstelle bereitstellt um auf einer Vielzahl von Architekturen mit unterschiedlichen Datentypen Datenlevel parallelität auszunutzen.
Darüber hinaus wird gezeigt, dass selbst moderne FPGAs vom SIMD-Paradigma profitieren und mit Hilfe von high-level synthesis Tools (HLS) wie Intels oneAPI programmiert werden können.
Das Potenzial von SIMD zur Beschleunigung der Verarbeitung auf FPGAs wird durch diverse Benchmarks von Datenbank-spezifischen Algorithmen auf zwei verschiedenen FPGA-Karten aufgezeigt und die erforderliche Funktionalität in die TSL integriert.
Während alle bisherigen Ansätze zum Einsatz von SIMD in der In-Memory Anfrageverarbeitung auf die Beschleunigung einzelner Anfragen abzielten, wird in der vorliegenden Arbeit ein neues Konzept zur Workload-Optimierung namens SIMQ vorgestellt.
Dieser Ansatz nutzt SIMD-Register als von der Hardware bereitgestellte Ressource, um gemeinsame Datenzugriffe unterschiedlicher Anfragen zusammenzuführen.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 Summar
Exploiting Data-Level-Parallelism for Modern In-Memory OLAP Query Engines
The development of in-memory query engines is constantly adapting to evolving hardware features to maintain high performance for modern data analytics.
To achieve this, parallelizing query processing is crucial for leveraging the full potential of modern hardware.
While traditional parallelization techniques like multi-threading and distributed computing are well-established, the increasing availability and continuous advancements of data-level parallelism, known as Single Instruction Multiple Data (SIMD), have made SIMD a cutting-edge approach for improving single-query performance.
Three general trends can be identified in the evolution of SIMD hardware: (i) continual increase in the available degree of data-level parallelism through wider SIMD registers, (ii) ongoing expansion of functional capabilities, and (iii) notable heterogeneity of the SIMD hardware landscape.
The increasing width of SIMD registers, ranging from 128-bit to 512-bit for Intel and ARM platforms and up to 16 Kb on the NEC SX-Aurora TSUBASA vector engine, provides significant potential for data-level parallelism.
This trend benefits query operators with linear access patterns, such as simple scans or arithmetic operations.
However, it can negatively impact operators that rely on random access patterns or introduce loop-carried dependencies, such as sorting or a Hash-Join.
With the introduction of novel instruction set extensions, like Intel's AVX-512, the functional capabilities of SIMD hardware have been continuously extended, allowing more complex operations to be efficiently executed in parallel.
Consequently, this thesis outlines the opportunities and challenges of wider SIMD registers for in-memory query processing and how novel instruction set extensions can be used to mitigate some challenges.
Additionally, the SIMD hardware landscape has become increasingly heterogeneous, with different architectures available.
This diversity poses a significant challenge for academia and industry, as it requires constant adaptation and re-evaluation of SIMD-based algorithms and data structures.
To address this challenge, we implemented a SIMD hardware abstraction library called Template SIMD Library (TSL), which provides a unified interface to different architectures.
In this thesis, we present the design and implementation of TSL, demonstrating its capabilities by implementing a set of SIMD-based algorithms for in-memory query processing. We also show that even modern FPGAs benefit from the SIMD paradigm and can be programmed using high-level synthesis tools, such as Intel's oneAPI.
Moreover, we demonstrate the potential of SIMD-based FPGA programming by implementing SIMD-based algorithms for in-memory query processing on different FPGA cards and integrating the necessary functionality into the TSL.
Finally, we propose a novel workload-aware SIMD query processing approach called SIMQ.
This approach leverages SIMD registers to share data access and SIMD instructions to share computation across queries.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 SummaryKontinuierlich wachsende Mengen an zu verwaltenden Daten und komplexer werdende analytische Anfragen erfordern eine stetige Weiterentwicklung und Verbesserung von In-Memory Query Engines.
Die effiziente Ausnutzung sich ständig weiterentwickelnder Hardware-Features fällt dabei eine entscheidende Rolle zu.
Ein grundlegender Ansatz zur Beschleunigung von Algorithmen besteht in der Parallelisierung der Verarbeitung.
Neben Scale-up und Scale-out Ansätzen, wie Multi-Thread beziehungsweiße Distributed Computing, existiert die Möglichkeit der Datenlevel parallelen (Single Instruction Multiple Data (SIMD)) Verarbeitung.
Durch die zunehmende Verfügbarkeit und kontinuierliche Weiterentwicklung ist vorallem SIMD eine häufig eingesetzte Technik zur Beschleunigung verschiedenster Algorithmen in Forschung und Industrie geworden.
Drei allgemeine Trends lassen sich im Bezug auf die Entwicklung von SIMD-Hardware identifizieren: (i) eine kontinuierliche Zunahme des verfügbaren Grades an Datenparallelismus durch breitere SIMD-Register, (ii) eine kontinuierliche Erweiterung des Funktionsumfangs und (iii) eine große Heterogenität der SIMD-Hardware-Landschaft.
Die zunehmende Breite der verfügbaren SIMD-Register, die von 128 bit bis 512 bit für Inel und ARM Plattformen und bis zu 16 Kb auf der NEC SX-Aurora TSUBASA reicht, nützt vorallem Algorithmen mit linearem Zugriffsmuster ohne relevante Abhängigkeiten zwischen den einzelnen zu verarbeitenden Daten.
Algorithmen welche auf nicht-lineare Zugriffsmuster angewiesen sind oder deren Verhalten stark von den zu Grunde liegenden Daten abhängig ist, können jedoch häufig nicht von einem höheren Grad an Datenlevel Parallelismus profitieren.
Ein Beispiel für solch einen Algorithmus ist der Hash-Join, dessen Ziel es ist, zwei Relationen über einen gemeinsamen Schlüssel zu verknüpfen.
Durch die Einführung neuer Befehlssatzerweiterungen wie AVX-512 von Intel werden die funktionalen Fähigkeiten der der verfügbaren SIMD-Hardware kontinuierlich erweitert, wodurch bisherige Annahmen neu bewertet werden müssen.
Die vorliegende Arbeit untersucht die Möglichkeiten und Herausforderungen breiterer SIMD-Register für die In-Memory Anfrageverarbeitung und inwiefern neue Befehlssatzerweiterungen genutzt werden können, um wichtige Herausforderungen in der Datenlevel paralleln Verarbeitung zu bewältigen.
Der dritte Trend, die zunehmende Ausdifferenzierung verfügbarer Hardware erschwert den konsistenten Einsatz von SIMD.
Unterschiedliche Funktionen, Datentypen und Konzepte verhindern eine einfache Portierung bereits optimierter Algorithmen.
Neue Funktionalitäten erfordern mitunter eine architekturspezifische Anpassung des gesamten Algorithmus um vorhandene Möglichkeiten bestmöglich auszunutzen.
Um dieser Herausforderung zu begegnen, wird die im Rahmen dieser Dissertation entwickelte SIMD-Hardwareabstraktionsbibliothek namens Template SIMD Library (TSL) vorgestellt, die eine einheitliche Schnittstelle bereitstellt um auf einer Vielzahl von Architekturen mit unterschiedlichen Datentypen Datenlevel parallelität auszunutzen.
Darüber hinaus wird gezeigt, dass selbst moderne FPGAs vom SIMD-Paradigma profitieren und mit Hilfe von high-level synthesis Tools (HLS) wie Intels oneAPI programmiert werden können.
Das Potenzial von SIMD zur Beschleunigung der Verarbeitung auf FPGAs wird durch diverse Benchmarks von Datenbank-spezifischen Algorithmen auf zwei verschiedenen FPGA-Karten aufgezeigt und die erforderliche Funktionalität in die TSL integriert.
Während alle bisherigen Ansätze zum Einsatz von SIMD in der In-Memory Anfrageverarbeitung auf die Beschleunigung einzelner Anfragen abzielten, wird in der vorliegenden Arbeit ein neues Konzept zur Workload-Optimierung namens SIMQ vorgestellt.
Dieser Ansatz nutzt SIMD-Register als von der Hardware bereitgestellte Ressource, um gemeinsame Datenzugriffe unterschiedlicher Anfragen zusammenzuführen.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 Summar
Exploiting Data-Level-Parallelism for Modern In-Memory OLAP Query Engines
The development of in-memory query engines is constantly adapting to evolving hardware features to maintain high performance for modern data analytics.
To achieve this, parallelizing query processing is crucial for leveraging the full potential of modern hardware.
While traditional parallelization techniques like multi-threading and distributed computing are well-established, the increasing availability and continuous advancements of data-level parallelism, known as Single Instruction Multiple Data (SIMD), have made SIMD a cutting-edge approach for improving single-query performance.
Three general trends can be identified in the evolution of SIMD hardware: (i) continual increase in the available degree of data-level parallelism through wider SIMD registers, (ii) ongoing expansion of functional capabilities, and (iii) notable heterogeneity of the SIMD hardware landscape.
The increasing width of SIMD registers, ranging from 128-bit to 512-bit for Intel and ARM platforms and up to 16 Kb on the NEC SX-Aurora TSUBASA vector engine, provides significant potential for data-level parallelism.
This trend benefits query operators with linear access patterns, such as simple scans or arithmetic operations.
However, it can negatively impact operators that rely on random access patterns or introduce loop-carried dependencies, such as sorting or a Hash-Join.
With the introduction of novel instruction set extensions, like Intel's AVX-512, the functional capabilities of SIMD hardware have been continuously extended, allowing more complex operations to be efficiently executed in parallel.
Consequently, this thesis outlines the opportunities and challenges of wider SIMD registers for in-memory query processing and how novel instruction set extensions can be used to mitigate some challenges.
Additionally, the SIMD hardware landscape has become increasingly heterogeneous, with different architectures available.
This diversity poses a significant challenge for academia and industry, as it requires constant adaptation and re-evaluation of SIMD-based algorithms and data structures.
To address this challenge, we implemented a SIMD hardware abstraction library called Template SIMD Library (TSL), which provides a unified interface to different architectures.
In this thesis, we present the design and implementation of TSL, demonstrating its capabilities by implementing a set of SIMD-based algorithms for in-memory query processing. We also show that even modern FPGAs benefit from the SIMD paradigm and can be programmed using high-level synthesis tools, such as Intel's oneAPI.
Moreover, we demonstrate the potential of SIMD-based FPGA programming by implementing SIMD-based algorithms for in-memory query processing on different FPGA cards and integrating the necessary functionality into the TSL.
Finally, we propose a novel workload-aware SIMD query processing approach called SIMQ.
This approach leverages SIMD registers to share data access and SIMD instructions to share computation across queries.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 SummaryKontinuierlich wachsende Mengen an zu verwaltenden Daten und komplexer werdende analytische Anfragen erfordern eine stetige Weiterentwicklung und Verbesserung von In-Memory Query Engines.
Die effiziente Ausnutzung sich ständig weiterentwickelnder Hardware-Features fällt dabei eine entscheidende Rolle zu.
Ein grundlegender Ansatz zur Beschleunigung von Algorithmen besteht in der Parallelisierung der Verarbeitung.
Neben Scale-up und Scale-out Ansätzen, wie Multi-Thread beziehungsweiße Distributed Computing, existiert die Möglichkeit der Datenlevel parallelen (Single Instruction Multiple Data (SIMD)) Verarbeitung.
Durch die zunehmende Verfügbarkeit und kontinuierliche Weiterentwicklung ist vorallem SIMD eine häufig eingesetzte Technik zur Beschleunigung verschiedenster Algorithmen in Forschung und Industrie geworden.
Drei allgemeine Trends lassen sich im Bezug auf die Entwicklung von SIMD-Hardware identifizieren: (i) eine kontinuierliche Zunahme des verfügbaren Grades an Datenparallelismus durch breitere SIMD-Register, (ii) eine kontinuierliche Erweiterung des Funktionsumfangs und (iii) eine große Heterogenität der SIMD-Hardware-Landschaft.
Die zunehmende Breite der verfügbaren SIMD-Register, die von 128 bit bis 512 bit für Inel und ARM Plattformen und bis zu 16 Kb auf der NEC SX-Aurora TSUBASA reicht, nützt vorallem Algorithmen mit linearem Zugriffsmuster ohne relevante Abhängigkeiten zwischen den einzelnen zu verarbeitenden Daten.
Algorithmen welche auf nicht-lineare Zugriffsmuster angewiesen sind oder deren Verhalten stark von den zu Grunde liegenden Daten abhängig ist, können jedoch häufig nicht von einem höheren Grad an Datenlevel Parallelismus profitieren.
Ein Beispiel für solch einen Algorithmus ist der Hash-Join, dessen Ziel es ist, zwei Relationen über einen gemeinsamen Schlüssel zu verknüpfen.
Durch die Einführung neuer Befehlssatzerweiterungen wie AVX-512 von Intel werden die funktionalen Fähigkeiten der der verfügbaren SIMD-Hardware kontinuierlich erweitert, wodurch bisherige Annahmen neu bewertet werden müssen.
Die vorliegende Arbeit untersucht die Möglichkeiten und Herausforderungen breiterer SIMD-Register für die In-Memory Anfrageverarbeitung und inwiefern neue Befehlssatzerweiterungen genutzt werden können, um wichtige Herausforderungen in der Datenlevel paralleln Verarbeitung zu bewältigen.
Der dritte Trend, die zunehmende Ausdifferenzierung verfügbarer Hardware erschwert den konsistenten Einsatz von SIMD.
Unterschiedliche Funktionen, Datentypen und Konzepte verhindern eine einfache Portierung bereits optimierter Algorithmen.
Neue Funktionalitäten erfordern mitunter eine architekturspezifische Anpassung des gesamten Algorithmus um vorhandene Möglichkeiten bestmöglich auszunutzen.
Um dieser Herausforderung zu begegnen, wird die im Rahmen dieser Dissertation entwickelte SIMD-Hardwareabstraktionsbibliothek namens Template SIMD Library (TSL) vorgestellt, die eine einheitliche Schnittstelle bereitstellt um auf einer Vielzahl von Architekturen mit unterschiedlichen Datentypen Datenlevel parallelität auszunutzen.
Darüber hinaus wird gezeigt, dass selbst moderne FPGAs vom SIMD-Paradigma profitieren und mit Hilfe von high-level synthesis Tools (HLS) wie Intels oneAPI programmiert werden können.
Das Potenzial von SIMD zur Beschleunigung der Verarbeitung auf FPGAs wird durch diverse Benchmarks von Datenbank-spezifischen Algorithmen auf zwei verschiedenen FPGA-Karten aufgezeigt und die erforderliche Funktionalität in die TSL integriert.
Während alle bisherigen Ansätze zum Einsatz von SIMD in der In-Memory Anfrageverarbeitung auf die Beschleunigung einzelner Anfragen abzielten, wird in der vorliegenden Arbeit ein neues Konzept zur Workload-Optimierung namens SIMQ vorgestellt.
Dieser Ansatz nutzt SIMD-Register als von der Hardware bereitgestellte Ressource, um gemeinsame Datenzugriffe unterschiedlicher Anfragen zusammenzuführen.:1 Introduction
1.1 Single Instruction Multiple Data (SIMD)
1.1.1 Utilizing SIMD
1.1.2 SIMD in OLAP Query Processing
1.2 Thesis Goals and Contributions
1.2.1 Implications of SIMD Advancements on Analytical Query Processing
1.2.2 Leveraging SIMD to Optimize OLAP Query Throughput
1.2.3 Embracing the Heterogeneity of SIMD-aware Hardware
1.3 Impact of Thesis Contributions
1.3.1 Publications of Thesis Contribution
1.3.2 Open Source Contributions
1.3.3 Further Publications
1.4 Structure of the Thesis
2 Evaluating the Vector Supercomputer SX-Aurora TSUBASA
2.1 Problem Statement
2.2 Hardware System SX-Aurora TSUBASA
2.2.1 Overall Architecture
2.2.2 Vector Processing and Specific Systems
2.2.3 Execution Model and Programming Approach
2.3 MorphStore — In-Memory Database System
2.4 Comparative Evaluation
2.4.1 Selected Investigated Operations
2.4.2 Experimental Setup and Methodology
2.4.3 Single-Thread Evaluation Results
2.4.4 Multi-Thread Evaluation Results
2.4.5 Summary
2.5 Future Work
2.6 Conclusion
3 Fighting Duplicates in Hashing
3.1 Problem Statement
3.2 Background
3.2.1 Linear Probing
3.2.2 State-of-the-Art Vectorized Implementation of Linear Probing
3.2.3 Novel SIMD Instructions
3.3 CD-aware Vectorized Implementation of Linear Probing
3.3.1 CD-aware Hash Table Data Structures
3.3.2 Handling of Bucket Duplicates
3.3.3 Handling of Key Duplicates
3.4 Experimental Evaluation
3.4.1 Evaluation Result for Hashing without Value Handling
3.4.2 Evaluation Results for Hashing with Value Handling
3.5 Related Work
3.6 Conclusion and Future Work
4 Leveraging SIMD to Optimize OLAP Query Throughput
4.1 Problem Statement
4.2 Background and Related Work
4.2.1 Vectorization in General
4.2.2 Vectorization in Database Systems
4.2.3 Work Sharing in Database Systems
4.3 Sharing Vector Registers
4.3.1 SISQ: Single Instruction Single Query
4.3.2 SIMQ: Single Instruction Multiple Queries
4.4 Evaluation
4.4.1 Single-Threaded Evaluation
4.4.2 Multi-Threaded Evaluation
4.5 Discussion
4.6 Conclusion
5 Program your (custom) SIMD instruction set on FPGA in C++
5.1 Problem Statement
5.2 FPGA Programming in C++
5.2.1 Naïve C++ programming
5.2.2 Data Parallel C++ programming.
5.2.3 Using specialized data types
5.2.4 Analyzing FPGA resources
5.2.5 Summary
5.3 Programming SIMD instruction set
5.3.1 Register Definition
5.3.2 Instruction Definition
5.3.3 Comparing with RTL kernels
5.4 Use Case Studies
5.4.1 FilterCount
5.4.2 Binary Packing
5.5 Custom SIMD instructions
5.6 DPC++ Best practices
5.7 Related Work
5.8 Conclusion
6 Mastering the SIMD Heterogeneity
6.1 Problem Statement
6.2 Background
6.2.1 Applicability
6.2.2 Evolving API
6.3 TSLGen - Generative Framework
6.3.1 General Concepts
6.3.2 Framework Description
6.4 Advanced Features
6.4.1 Test Generation
6.4.2 Build Environment Files Generation
6.4.3 Further Extensions
6.4.4 Toolsupport
6.5 Use-Case Studies
6.5.1 Case Studies Description
6.5.2 Applicability
6.5.3 Extensibility
6.6 Discussion
6.7 Related Work
6.8 Conclusion
7 Tutorial on SIMD - Foundations, Abstraction, and Advanced Techniques
7.1 Problem Statement
7.2 Foundations
7.3 Abstraction
7.4 Advanced Techniques
7.4.1 Wider SIMD Registers
7.4.2 Flexibly-Sized SIMD Registers
7.4.3 Partition-based SIMD Processing
7.4.4 Increasing Heterogeneity
7.5 Summar
Modern data analytics in the cloud era
Cloud Computing ist die dominante Technologie des letzten Jahrzehnts. Die Benutzerfreundlichkeit der verwalteten Umgebung in Kombination mit einer nahezu unbegrenzten Menge an Ressourcen und einem nutzungsabhängigen Preismodell ermöglicht eine schnelle und kosteneffiziente Projektrealisierung für ein breites Nutzerspektrum. Cloud Computing verändert auch die Art und Weise wie Software entwickelt, bereitgestellt und genutzt wird. Diese Arbeit konzentriert sich auf Datenbanksysteme, die in der Cloud-Umgebung eingesetzt werden. Wir identifizieren drei Hauptinteraktionspunkte der Datenbank-Engine mit der Umgebung, die veränderte Anforderungen im Vergleich zu traditionellen On-Premise-Data-Warehouse-Lösungen aufweisen. Der erste Interaktionspunkt ist die Interaktion mit elastischen Ressourcen. Systeme in der Cloud sollten Elastizität unterstützen, um den Lastanforderungen zu entsprechen und dabei kosteneffizient zu sein. Wir stellen einen elastischen Skalierungsmechanismus für verteilte Datenbank-Engines vor, kombiniert mit einem Partitionsmanager, der einen Lastausgleich bietet und gleichzeitig die Neuzuweisung von Partitionen im Falle einer elastischen Skalierung minimiert. Darüber hinaus führen wir eine Strategie zum initialen Befüllen von Puffern ein, die es ermöglicht, skalierte Ressourcen unmittelbar nach der Skalierung auszunutzen. Cloudbasierte Systeme sind von fast überall aus zugänglich und verfügbar. Daten werden häufig von zahlreichen Endpunkten aus eingespeist, was sich von ETL-Pipelines in einer herkömmlichen Data-Warehouse-Lösung unterscheidet. Viele Benutzer verzichten auf die Definition von strikten Schemaanforderungen, um Transaktionsabbrüche aufgrund von Konflikten zu vermeiden oder um den Ladeprozess von Daten zu beschleunigen. Wir führen das Konzept der PatchIndexe ein, die die Definition von unscharfen Constraints ermöglichen. PatchIndexe verwalten Ausnahmen zu diesen Constraints, machen sie für die Optimierung und Ausführung von Anfragen nutzbar und bieten effiziente Unterstützung bei Datenaktualisierungen. Das Konzept kann auf beliebige Constraints angewendet werden und wir geben Beispiele für unscharfe Eindeutigkeits- und Sortierconstraints. Darüber hinaus zeigen wir, wie PatchIndexe genutzt werden können, um fortgeschrittene Constraints wie eine unscharfe Multi-Key-Partitionierung zu definieren, die eine robuste Anfrageperformance bei Workloads mit unterschiedlichen Partitionsanforderungen bietet. Der dritte Interaktionspunkt ist die Nutzerinteraktion. Datengetriebene Anwendungen haben sich in den letzten Jahren verändert. Neben den traditionellen SQL-Anfragen für Business Intelligence sind heute auch datenwissenschaftliche Anwendungen von großer Bedeutung. In diesen Fällen fungiert das Datenbanksystem oft nur als Datenlieferant, während der Rechenaufwand in dedizierten Data-Science- oder Machine-Learning-Umgebungen stattfindet. Wir verfolgen das Ziel, fortgeschrittene Analysen in Richtung der Datenbank-Engine zu verlagern und stellen das Grizzly-Framework als DataFrame-zu-SQL-Transpiler vor. Auf dieser Grundlage identifizieren wir benutzerdefinierte Funktionen (UDFs) und maschinelles Lernen (ML) als wichtige Aufgaben, die von einer tieferen Integration in die Datenbank-Engine profitieren würden. Daher untersuchen und bewerten wir Ansätze für die datenbankinterne Ausführung von Python-UDFs und datenbankinterne ML-Inferenz.Cloud computing has been the groundbreaking technology of the last decade. The ease-of-use of the managed environment in combination with nearly infinite amount of resources and a pay-per-use price model enables fast and cost-efficient project realization for a broad range of users. Cloud computing also changes the way software is designed, deployed and used. This thesis focuses on database systems deployed in the cloud environment. We identify three major interaction points of the database engine with the environment that show changed requirements compared to traditional on-premise data warehouse solutions. First, software is deployed on elastic resources. Consequently, systems should support elasticity in order to match workload requirements and be cost-effective. We present an elastic scaling mechanism for distributed database engines, combined with a partition manager that provides load balancing while minimizing partition reassignments in the case of elastic scaling. Furthermore we introduce a buffer pre-heating strategy that allows to mitigate a cold start after scaling and leads to an immediate performance benefit using scaling. Second, cloud based systems are accessible and available from nearly everywhere. Consequently, data is frequently ingested from numerous endpoints, which differs from bulk loads or ETL pipelines in a traditional data warehouse solution. Many users do not define database constraints in order to avoid transaction aborts due to conflicts or to speed up data ingestion. To mitigate this issue we introduce the concept of PatchIndexes, which allow the definition of approximate constraints. PatchIndexes maintain exceptions to constraints, make them usable in query optimization and execution and offer efficient update support. The concept can be applied to arbitrary constraints and we provide examples of approximate uniqueness and approximate sorting constraints. Moreover, we show how PatchIndexes can be exploited to define advanced constraints like an approximate multi-key partitioning, which offers robust query performance over workloads with different partition key requirements. Third, data-centric workloads changed over the last decade. Besides traditional SQL workloads for business intelligence, data science workloads are of significant importance nowadays. For these cases the database system might only act as data delivery, while the computational effort takes place in data science or machine learning (ML) environments. As this workflow has several drawbacks, we follow the goal of pushing advanced analytics towards the database engine and introduce the Grizzly framework as a DataFrame-to-SQL transpiler. Based on this we identify user-defined functions (UDFs) and machine learning inference as important tasks that would benefit from a deeper engine integration and investigate approaches to push these operations towards the database engine
Going Beyond Counting First Authors in Author Co-citation Analysis
The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation
counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings
are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that
only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into
account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed
- …
