Moderna processorer har instruktioner som tillåter grundläggande operationer att utföras på flera dataelement parallellt. Dessa instruktioner kallas SIMD-instruktioner, eftersom de tillämpar en enda instruktion för flera dataelement. SIMD-tekniken byggdes ursprungligen in i råvaruprocessorer för att öka multimediatillämpningarnas prestanda. SIMD-instruktioner ger nya möjligheter för konstruktion och implementering av databasmotorer. Vi studerar olika typer av operationer i ett databassammanhang och visar hur verksamhetens inre slinga kan accelereras med hjälp av SIMD-instruktioner. Användningen av SIMD-instruktioner har två omedelbara prestandafördelar: Det tillåter en grad av parallellism, så att många operander kan behandlas på en gång. Det leder också ofta till eliminering av villkorliga avdelningskontorets anvisningar, vilket minskar avdelningskontorets försumlighet. Vi anser att de viktigaste databasverksamheten, inklusive sekventiella skanningar, aggregering, indexoperationer, och går med. Vi presenterar tekniker för att genomföra dessa med hjälp av SIMD instruktioner. Vi visar att det finns betydande fördelar med att omforma traditionella frågebehandlingsalgoritmer så att de bättre kan använda SIMD-teknik. Vår studie visar att med hjälp av en SIMD parallellism på fyra, CPU-tiden för de nya algoritmerna är från 10% till mer än fyra gånger mindre än för de traditionella algoritmerna. Superlinjära speedups erhålls som ett resultat av elimineringen av gren felprediction effekter.
Använda SIMD-teknik för att vektorisera databasbehandling har fått en betydande uppmärksamhet i databasgemenskapen, särskilt för tillämpligheten av SIMD-instruktioner för databasarbetsbelastningar REF.
Implementing database operations using SIMD instructions
{'venue': "SIGMOD '02", 'journal': None, 'mag_field_of_study': ['Computer Science']}