von Neumann's bottleneck

Relevanta dokument
Prestanda och skalbarhet

Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002. Los Alamos National Laboratory USA/2002

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)

Datorarkitekturer med operativsystem ERIK LARSSON

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Kursinformation. Tekniska Beräkningar 87vs2K1. Innehåll. Vetenskapliga tillämpningar. Historia på institutionen. Isak Jonsson

Grundläggande datavetenskap, 4p

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Parallellism i CDC 7600, pipelinens ursprung

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

4 grundregler. Minneshantering. Problemet. Windows minkrav

Block 2: Lineära system

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?

HF0010. Introduktionskurs i datateknik 1,5 hp

Föreläsning 5 Innehåll

Datastrukturer och algoritmer

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

Spekulativ exekvering i CPU pipelining

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Strategier för att utnytja parallella system. Peter Kjellström NSC Upplysning

Hantering av hazards i pipelines

What Is Hyper-Threading and How Does It Improve Performance

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Tentamen den 18 mars svar Datorteknik, EIT070

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Linjära ekvationssystem

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Innehåll. EDAA35 Föreläsning 5. Kursinformation: tidigare laborationer som inte är godkända. Kursinformation: Presentation av lab 4

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

Datorsystemteknik för E/D

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

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Hannes Larsson - IDA 2, LTH Campus Helsingborg. NEC V R 4300i. Interlock-handling EDT621

SIMD i Intel s P5- baserade Pentium MMX

BILAGA. till. Kommissionens delegerade förordning

Linjära ekvationssystem

Arm Cortex-A8 Pipeline

Föreläsning 1: Intro till kursen och programmering

6. a) Visa att följande vektorer är egenvektorer till matrisen A = , och ange motsvarande

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

Dagens meny: Niclas Persson, Control and Communication. Gömda villkor i DAE:er. Hur hittar man gömda villkor? Pantelides algoritm

Magnus Nielsen, IDA, Linköpings universitet

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Datorsystemteknik DAV A14 Föreläsning 1

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datorteknik ERIK LARSSON

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Sätt att skriva ut binärträd

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Föreläsning 1: Intro till kursen och programmering

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

Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Datorarkitekturer med operativsystem ERIK LARSSON

Cacheminne Intel Core i7

Tentamen: Numerisk Analys MMG410, GU

Parallellism i NVIDIAs Fermi GPU

Datorteknik ERIK LARSSON

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

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

2 Matrisfaktorisering och lösning till ekvationssystem

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Pipelining i Intel Pentium II

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Introduktion till programmering

PROJECT REPORT. Parallelberakning genom androidtelefoner. Jonas Westman and Anders Hommerberg Project in Computational Science: Report December 2011

Sammanfattninga av kursens block inför tentan

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

HANTERING AV UPS CX

Manhour analys EASA STI #17214

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Datorarkitekturer med operativsystem ERIK LARSSON

Föreläsning Datastrukturer (DAT037)

Datorarkitekturer med operativsystem ERIK LARSSON

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

DESIGN AV SEKVENTIELL LOGIK

Föreläsning Datastrukturer (DAT036)

Uttagning för D21E och H21E

säkerhetsutrustning / SAFETY EQUIPMENT

Digitalteknik och Datorarkitektur

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

CS 475: Parallel Programming Introduction

Beijer Electronics AB 2000, MA00336A,

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

PbD rent konkret. Från en insnöad forskares perspektiv. Tobias Pulls. 7 September Karlstads universitet

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Transkript:

von Neumann's bottleneck Föreläsning 2: Prestandabegränsningar & Prestandamått von Neumann maskin En kontrollenhet som kopplar ihop minne och processor Kopplingen mellan processor och minne flaskhals Memory Flaskhals Instruction/Data Bus Control Unit Processing Unit Non-von dator Uppsnabbning (Speedup) Non von P-processorer, Q-minnen, R-kontrollenheter, ett nätverk Kan utföra PT instruktioner per sekund minus overhead där T är antalet instruktioner per sekund Processor Memory Processor Memory Processor Memory t s, tiden att exekvera den bästa seriella algoritmen på en processor t(1), tiden att exekvera parallella algoritmen på en processor t p t(n), tiden att exekvera parallella algoritmen på n processorer 1 S( n) speedup( n) t p t 1

Vad begränsar prestandan? Amdahl's Law S( n) t speedup( n) t 1 < n Tillgänglig parallellitet Lastbalansen vissa processorer gör mer än andra några arbetar medan andra är idle (sysslolös, arbetslös) kö (väntan) till extern resurs Extra arbete hantering av parallellitet kommunikation p The speed of a computer is limited by its serial part ts S( n) fts + (1 f ) ts / n 1 n fn / n + (1 f ) / n 1+ f ( n 1) Givet att f är den seriella delen av koden ft s är tiden att beräkna seriella delen av programmet (1-f) t s /n är tiden att beräkna parallella delen av progr. S(n) 20 16 12 8 4 0 Amdahl's Law - implikationer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 n f 0 f 0,05 f 0,1 f 0,2 Gustavson-Barsis Law The parallel fraction of the problem is scalable - increases with problem size Obervation, Amdahls lag gör antagandet att (1- f) är oberoende av n, vilket det oftast inte är Ny Lag: s + np S s ( n) n + (1 n) s s + p Antag att Parallellism kan användas för att öka parallella delen av problemet Varje processor beräknar både seriell (s) och parallell (p) del 2

S(n) 20 16 12 8 4 0 Gustavson-Barsis Law - implikationer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 n f 0 f 0,2 Parallella programs karaktär Trivialt parallella program (embarrassingly parallel) speedup(p) p matrisaddition, kompilera oberoende subrutiner Divide and Conquer speedup(p) ~ p/log 2 p Binärt träd: addera p tal, merge sort Kommunikationsbunden parallellism cost latency + n/bandwidth - overlap Kan gå saktare på fler processorer Matrisberäkning där hela strukturer måste kommuniceras, parallella program på LAN. Några prestandamått Antal flyttalsoperationer per sekund flop/s, Mflop/s, Gflop/s, Tflop/s Speedupkurvor: x-axel #processorer, y-axel speedup Speedup s t 1 /t(p). I teorin begränsad av antalet processorer. Scaled Speedup ökar problemstorleken linjärt med #processorer Andra mått Tiden, Problemstorlek, Processorutnyttjande Effektivitet Skalbarhet Flera användare på systemet Throughput, (Jobs/sec) Benchmark Performance För att mäta ett systems kapacitet i olika avseenden. Tex flyttalshastghet, I/O-hastighet, speedup för vissa kärnrutiner,... Benchmark suite: En samling av specialkaraktärbenchmarks Syntetic benchmark: Enkel litet benchmark som imiterar en verklig applikation map datastruktur och antal satser. 3

Klassiska Benchmarks Whetstone (syntetiskt, numeriskt) Dhrystone (syntetiskt, testa ADA) Linpack (Löser ett 100x100 system, Mflop/s) Gemm-based Livermore Loops (ett antal loopar) Perfect Club www.netlib.org och www.netlib.org/benchmark/linpackjava Parallella Benchmarks Linpack (LU), Prestandasiffror genom lösande av linjära ekvationssystem NAS Kernels (7 FORTRAN rutiner, fluid dynamics) Livermore Loops (FORTRAN kod) SLALOM (sci. comp., hur mycket kan beräknas på en minut) Benchmark som använder linjära ekvationssystem Resultatet avspeglar Prestanda genom att lösa täta ekvationssystem Aritmetik i full precision Fyra olika värden Linpack benchmark för matriser av storlek 100 TPP: Löser system av ordning 1000 (inga restriktioner på metod eller implementation) Theoretical peak performance HPC: Highly parallel computing LINPACK 100 Matriser av storlek 100 Inga ändringar av FORTRAN-koden tillåten Hög andel flyttalsoperationer rutiner: (SD)GEFA & (SD)GESL LU med partiell pivotering och bakåtsubstitution Kolumnorienterade algoritmer 4

LINPACK 1000 (TovardsPeakPerformace) Matriser av storlek 1000 Tillåtet att ändra och byta ut algoritm och mjukvara Måste använda samma drivprogram och ha samma resultat och noggrannhet 2n 3 /3 + O(2n 2 ) operationer Ger en övre gräns på prestandan tillverkaren garanterar att program inte kommer att överskrida denna hastighet Theoretical peak performance Antal flops som kan beräknas under en tidsperiod Baserat på maskinens cykeltid Example: Cray Y-MP/8, cycle time 6ns m (2 operations/1 cycle) * (1 cycle/6ns) 333 Mflop/s Example: POWER3-200, cycle time 5ns m (2x2 operationer/1 cycle) * (1 cycle/5ns) 800 Mflop/s Highly Parallel Computing Resultatet avspeglar problemstorleken Regler Lös system av linjära ekvationer Tillåt problemstorleken att variera Använd 2n 3 /3 + O(2n 2 ) operationer (oberoende av metod) Resultat R max : maximal uppmätt prestanda i Gflops N max : storleken för detta problem N 1/2 : storleken där halva R max uppnås R peak : theoretical peak performance www.netlib.org/benchmark/hpl/ Top 500 Supercomputer sites En lista med de 500 kraftfullaste datorsystemen Datorerna rankas efter deras LINPACK benchmark prestanda Listan visar R max, N max, N 1/2, R peak, # processorer m Top 500 Supercomputer sites 5

NAS parallel benchmark Efterliknar beräkningar och dataförflyttningar i Computational fluid dynamics (CFD) Fem parallella kärnor & tre simulerade applikationsbenchmark Problemen är algoritmiskt specificerade Tre klasser av problem (största skillnaden är problemstorlek) Sample code, Class A och Class B (i ökande storlek) Resultat Tid i sekunder Jämfört med Cray Y-MP/1 NAS, The kernel benchmarks Embarrassingly parallel Prestanda utan kommunikation Multigrid Strukturerande lång-distans-kommunikation Konjugerad gradient Icke strukturerad lång-distans-kommunikation, ostrukturerade matris-vektor-operationer 3d fft lång-distans-kommunikation integer sort Heltalsberäkningar och kommunikation NAS, Simulated kernals Pseudo-applicationer utan de svårigheter som finns i riktig CFD LU lösare Pentadiagonal lösare Block-triangulär lösare Twelve Ways to Fool the Masses Quote 32-bit performance results and compare it with others 64-bit results Present inner kernel performance figures as the performance of entire application Quietly employ assembly code and compare your results with others C or Fortran implementations Scale up the problem size with the number of processors but fail to disclose this fact Quote performance results linearly projected to a full system Compare with an old code on an obsolete system Compare your results against scalar, un-optimized code on Cray 6

Twelve Ways to Fool the Masses (2) Base Mflop operation counts on the parallel implementation, not on the best sequential algorithm Quote performance in terms of processor utilization, parallel speedup or Mflops/dollar (Peak not sustained) Measure parallel run time on a dedicated system but measure conventional run times in a busy environment If all these fails, show pretty pictures and animated videos, and don t talk about performance D. H. Bailey, "Twelve Ways to Fool the Masses When Giving Performance Results on Parallel Computers," in Proceedings of Supercomputing '91, Nov. 1991, pp. 4-7. (finns bl a på www.pdc.kth.se/training/twelve-ways.html) Mflops/s 700 600 500 400 300 200 100 Exempel på prestandagraf Factorization on IBM POWER3 BC, without data transformation BC, including time for data transformation LAPACK DPOTRF LAPACK DPPTRF 0 0 100 200 300 400 500 600 700 800 900 1000 N Mflops/s 450 400 350 300 250 200 150 100 50 Exempel på prestandagraf Factorization on IBM POWER2 BPC, without data transformation BPC, including time for data transformation LAPACK DPOTRF LAPACK DPPTRF 0 0 100 200 300 400 500 600 700 800 900 1000 N Räkneuppgifter Hur mycket speedup kan man få enligt Amdahl s lag när n->stort? Applicera slutsatsen på ett program med 5% seriell del! Vid en testkörning på en CPU tog ett program 30 sek för storlek n. För fyra CPU tog det 20 sek. Hur lång tid kräver samma program på 10 CPU enl. Amdahl s lag? Vad blir speedup? Hur lång tid enl. Gustafson- Barsis lag för 10 n och 10 CPU? Vad blir speedup? En parallelldator består av 16 CPU med vardera 800 MIPS topprestanda. Vad blir prestandan (i MIPS) om de instruktioner som skall utföras är 10% seriell kod, 20% parallell för 2 CPU och 70% fullt parallelliserbar? 7

Tentamen 040116, uppgift 1. Vad är parallella beräkningar? Vid design av parallella program är följande begrepp viktiga: datapartitionering, kornighet och lastbalans. Förklara dessa begrepp! Beskriv Flynn s klassindelning. Ge exempel på maskiner som hör till varje klass! 8