Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

Relevanta dokument
Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Hyper-Threading i Intelprocessorer

What Is Hyper-Threading and How Does It Improve Performance

Multithreading in Intel Pentium 4 - Hyperthreading

Cacheminne i en Intel Core 2 Duo-processor

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Processor pipelining genom historien (Intel i9-intel i7)

MESI i Intel Core 2 Duo

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Cacheminne i en AMD Opteron Processor

Datorarkitekturer med operativsystem ERIK LARSSON

Öka prestanda i Shared-Cache multi-core processorer

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

VI SI CLOSETALK AB SYSTEMKRAV

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Diskprestanda Tester

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

1. Revisionsinformation

Tekis-FB Systemkrav

Hantering av hazards i pipelines

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Systemkrav WinServ II Edition Release 2 (R2)

Datorteknik ERIK LARSSON

Cacheminne Intel Core i7

Toshiba och Intel Centrino Duo mobile teknologi för professionella användare

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Parallellism i CDC 7600, pipelinens ursprung

KUNDCASE. Inovia gjorde sin AI-utveckling 10 gånger snabbare med Power-plattformen

Parallellism i NVIDIAs Fermi GPU

Pipelining i Intel 80486

Jämförelse av skrivtekniker till cacheminne

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Sokigo AB OVK 2.0. Pentium- eller AMD-processor (x64 processor) på 1,6 GHz Dual Core eller motsvarande.

32 Bitar Blir 64 Sammanfattning

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Improved-MOESI Cache koherens Protokoll

Komma över Memory wall med 3D stacked minne LTH Ingenjörshögskolan vid Campus Helsingborg Institutionen för datavetenskap

Arm Cortex-A8 Pipeline

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Minnet från processorns sida Datorteknik

Cache-koherens protokoll MESI och MOSI

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Agenda. Syfte med datorbygge Datorns delar. Datorbygge. Moderkort Processor Minne och hårddisk Instickskort Övrigt

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

VAD GÖR DU / VEM ÄR DU?

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Grundläggande datavetenskap, 4p

Syfte. Praktisk datorkunskap. Personal. Kursinfo. Examination- Krav för godkänt. Agenda idag DVG A06

SIMD i Intel s P5- baserade Pentium MMX

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Datorsystemteknik för E/D

V-Met IaaS VM [3] [6] IDS [2] IDS IDS [8] [7] [15] [12] [13] IDS. V-Met Xen 4.4. IaaS VM VM IDS IDS IDS IDS IDS IDS IDS IDS

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

Pipelining i Intel Pentium II

Föreläsning 6 Databaser och säkerhet

Att köpa ny dator SeniorNet Lidingö Februari-2019

Hantering av hazards i multi-pipelines

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Sokigo AB Ecos Pentium- eller AMD-processor (x64 processor) på 1,6 GHz Dual Core eller motsvarande.

Att uppgradera från Informix 7.31 och kanske lite annat. Johan Backlund

ByggR Systemkrav

Tentamen PC-teknik 5 p

VAD GÖR DU / VEM ÄR DU?

Aktivitetsschemaläggning för flerkärninga processorer

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Capitex dataservertjänst

Systemkrav Tekis-Bilflytt 1.3

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt)

Inledning. Statistisk Programmering. UNIVAC 1107 (sextio- och sjuttiotal) Hålkorten. Att använda dator

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Systemkrav/Rekommendationer

MESI-protokollets funktion i multiprocessorer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Digital IC konstruktion

MESI protokollet och dess derivater

Prestandatest mellan Windows och Linux

Filöverföring i Windowsmiljö

ByggR Systemkrav

Introduktion till hårdvara, mjukvara och operativsystem

Lagringssystem. server. arbetsstationer. Katalog Öppettider: 09:00-17:00 alla vardagar.

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Digital IC konstruktion

Systemrekommendation. Artvise Contact Center

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Mark Systemkrav

Agenda. Val av öppna programvaror inom Polisen. Polisen. Polisen. Rikspolisstyrelsen Bakgrund

Systemkrav Bilflytt 1.3

Mark Systemkrav

Från utredning till implementation av Open Source inom Polisen

Datalager och datautvinning

Databasutveckling Introduktion till SQL och TSQL

Systemkrav. Artvise Kundtjänst

Transkript:

Prestandapåverkan på databashanterare av flertrådiga processorer av

Sammanfattning Behandling av information bli vanligare i dagens samhälle och för att klara denna uppgiften används ofta en databashanterare för olika typer av webbapplikationer mm. Databashanterare har tyvärr vissa problem där t ex. cache-användning är dålig. Med Hyperthreadingteknologi kan pestandan öka mellan 10 % till 26 % och i vissa fall öka antalet instruktioner per sekund med 200 %. Med dessa resultat har hyperthreading visat sig vara en lämplig arkitektur att använda för databashanterare. 2

Innehåll 1 Inledning... 4 2 Hassanein, et al., 2008... 5 2.1 Metod... 5 2.2 Resultat... 7 2.2.1 utpc-c... 7 2.2.2 utpc-h... 8 3 Barroso, et al.... 9 3.1 Metod... 9 3.2 Resultat... 10 4 Slutsats... 11 5 Terminologi... 11 6 Referenser... 12 3

1 Inledning Jämlöpande exekvering (SMT) kan förbättra prestandan i CPU genom att använda sig av parallellism på trådnivå i superskalära processorer. En SMT-processor kan från en applikation ses som flera processorer trots att färre processsorkärnor än det som applikationen ser existerar. Med denna teknologi kan flera trådar sammatidigt ge instruktioner till processorn varje cykel och dela processorns resurser. En variant på SMT som Intel har tagit fram kallas Hyper-Threading Technology. Det som skiljer SMT från en multiprocessor med delat minne är att SMT delar även på minnesbuss och cacheminne. Detta innebär i sig själv att en SMT-processor med två logiska kärnor (en fysisk) är långsammare än en processor med två fysiska kärnor (två logiska) eftersom de två fysiska inte delar cacheminne (D. Kim, 2014). Däremot kan två logiska (en fysisk) vara snabbare än en processor med en logisk kärna (en fysisk) när t ex. en tråd är blockerad då den väntar på att hantera en cache-miss. Vad som är vanligt för många webbapplikationer är att kunna hantera stora mänger information genom att t ex. lagra användaruppgifter eller hantera lagersaldon mm. Detta innebär att en databashanterare ofta är en central del i en client/server applikation där hanteringen av information sker på serversidan. Prestandan på databashanterare kan därför ha en påverkan på applikationen som helhet. Tidigare studier har kunnat påvisa att databashanterare ofta har en hög andel cache-missar (Shao, 2005). Denna rapport avser att sammanfatta de resultat ett två andra experiment har genererat där jämlöpande exekverings prestanapåverkan hos databashanterare har studerats. 4

2 Hassanein, et al., 2008 2.1 Metod I experimenten användes en 3.4 GHz pentium 4 Hyperthreading- Processor med en kärna. Processorn hade en L1 tracechache och 64 kb L1 datachache och 2 MB L2 cache-minne och 1 GB 533 MHz DDR2 SDRAM internminne och på denna hårdvara användes Scientific Linux version 4.1 som operativsystem. Experimentet utfördes med en open-source databashanterare kallad PostgreSQL version 8.1.3. och för att mäta prestandan användes belastningar motsvarande standarden TPC-C och TPC-H (TPC-C, 2016), (TPC-H, 2016) (härmed kallad utpc-c och utpc-h). För utpc-c användes en fil som input med en miljon rader med flera kolumner som a1, a2, a3 mm. För detta skapdes en annan fil som output där resultatet uppfyllde predikatet (WHERE Lo < a2 < Hi) och lagrade dessa i en output-fil. Innan resultatet lagrades beräknades genomsnittet över kolumnen a3 för de rader som uppfyllde predikatet. SQL-fråga för utpc-c: INSERT INTO Result SELECT AVG(a3) FROM T1 WHERE lo < a2 < hi 5

Författarna ansåg att experiment med enbart en TPC-C ekvivalent inte var tillräckligt då denna form av benchmarking innebar belastningar med begränsad data-access. Därför genomörde de även ett experiment med en belastning ekvivalent TPC-H. Denna belastning genomförs i två SQL-frågor; uss och unj. uss skapar ett set dvs den innehöll inga dubletter och resultatet var rader som uppfyllde ett visst filter. SQL-fråga för utpc-h: uss INSERT INTO Result SELECT avg (T1.a3) FROM T1, T2 WHERE T1.a1=T2.a1 AND Lo < T1.a2 < Hi unj INSERT INTO Result SELECT distinct (a3) FROM T1 WHERE Lo < a2 < Hi ORDER BY a3 6

2.2 Resultat När Hyperthreading används på en processor med en kärna ser operativsystemet Linux detta som att två logiska kärnor (P0 och P1) och när Hyperthreading är avstängt ses processorn som endast en logisk kärna. 2.2.1 utpc-c För att reducera variation och öka precision genomfördes utpc-c 500 gånger för att få fram ett genomsnitt. För utpc-c var L1 cache miss-rate dubbelt så hög för HT jämfört med utan men det omvända gällde för L2 cache. Trots denna försämring av miss-rate på L1 cache så ökade prestandan med ca 16 % vid 8 jämlöpande trådar för Hyperthreading som Figur 1 visar. Figur 1 (a) Hastighetsökning av Hyperthreading (O=HT-av, HT=HT-på). (b) Instruktionsfördelning mellan de två kärnorna I Hyprethreading (O=HT-av, HT- P0=HT-på logisk processor 0, HT-P1=HT-på logist processor 1) 7

2.2.2 utpc-h För att reducera variation och öka precision genomfördes utpc-h (uss och unj) mellan 20 till 30 gånger ( fler tester genomfördes om större variationer upptäcktes) och sedan beräknades medelvärdet av dessa tester. Miss-rate för L1 och L2 cache följde liknande mönster som för utpc-c (dock inte lika stora variationer mellan HT-på och HT-av). För uss ökade prestandan med ca 10 % vid 6 jämlöpande trådar och för unj ökade prestandan med 26 % vid 8 jämlöpande trådar som Figur 2 visar. Figur 2 utpc-h Hastighetsökning av Hyperthreading (O=HT-av, HT=HT-på). (b) Instruktionsfördelning mellan de två kärnorna I Hyprethreading (O=HT-av, HT-P0=HT-på logisk processor 0, HT-P1=HT-på logist processor 1) 8

3 Barroso, et al. 3.1 Metod I experimentet användes Oracle version 7.3.2 databashanterare och operativsystemet Digital UNIX på en 4-processor Digital AlphaServer 4100. On-Line Transaction Processing (OLTP) och Decision Support Systems (DSS) är de mest förekommande belastningar databashanterare utsätts för. För att mäta prestanda användes belastningar enligt standarden TPC-B (TPC-B, 2016) för att testa OLTP och TPC-D (TPC-D, 2016) för att testa DSS. TPC-B är enligt författarna väldigt lik TPC-C och enklare att ställa in och köra. I detta experimentet bestod belastningar av 16 jämlöpande trådar. För belastningen TPC-B (OLTP) utförde varje tråd 315 transaktioner (totalt 5040) och detta är ungefär 900 miljoner instruktioner för en 900 MB databas. Belastningen TPC-D (DSS) utför ca 500 miljoner instruktion för en 500 MB databas. 9

3.2 Resultat Denna studien hade mätningar som var lika de (Hassanein, et al., 2008) kunde se där vissa cache-missar ökade vid Hyperthreading men andra fel minskade vilket ledde totalt sett till en ökning av prestandan. I detta fallet ökade missar i D-cachen men t ex. cykler där inga intruktioner hämtades eller misslyckade tilldelningar av instruktioner minskade kraftigt. Även ökade antalet cykler då 6 instruktioner tilldelades processorn (vilket är maximalt för dessa typer av belastningar) vilket Figur 3 visar. Detta innebar att antalet instruktioner per cykel (IPC) ökade med 200 % och 50 % för belastningarna TPC-B (OLTP) respektive TPC-D (DSS). Figur 3 Mätvärden för superskalär (SS) och 8-context SMT på OLTP och DSS belastningar. 10

4 Slutsats I dessa två studier framgår det tydligt att Hyperthreading kan öka prestandan hos databashanterare vid standardiserade tester genom att öka antalet genomförda instruktioner per cykel trots ökningar av cache-missar. Hyperthreading visar sig vara en väl lämpad arkitektur för databashanterare. 5 Terminologi SMT Simultaneous Multithreading CPU Central Processing Unit TPC Transaction Processing Performance Council 11

6 Referenser Barroso, L. A. o.a., u.d. An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors, u.o.: u.n. D. Kim, S. S. w. L. P. H. W. J. d. C. X. T. X. Z. H. W. D. Y. M. G. a. J. P. S., 2014. Physical experimentation with prefetching helper threads on intels hyperthreaded processors. In Proceedings of In ternational Symposium on Code Generation and Optimization, u.o.: u.n. Hassanein, W. M., Rashid, L. K. & Hammad, M. A., 2008. International Journal of Parallel Programming, 36(2), pp. 206-225. Shao, M. A. A. F. B., 2005. DBmbench: Fast and accurate database workload representation on modern microarchitecture. In: International Centers for Advanced Studies Conference, u.o.: u.n. TPC-B, 2016. TPC-B. [Online] Available at: http://www.tpc.org/tpcb/default.asp [Använd 24 11 2016]. TPC-C, 2016. TPC-C. [Online] Available at: http://www.tpc.org/tpcc/default.asp [Använd 24 11 2016]. TPC-D, 2016. TPC-D. [Online] Available at: http://www.tpc.org/tpcd/default.asp [Använd 24 11 2016]. TPC-H, 2016. TPC-H. [Online] Available at: http://www.tpc.org/tpch/default.asp [Använd 24 11 2016]. 12