Structuur en organisatie van computersystemen: deel 2 - PowerPoint PPT Presentation

About This Presentation
Title:

Structuur en organisatie van computersystemen: deel 2

Description:

Title: computer architecture. a qantitive approach Subject: s voor SOCS2 Author: van steendam Last modified by: Yolande Berbers Created Date – PowerPoint PPT presentation

Number of Views:313
Avg rating:3.0/5.0
Slides: 107
Provided by: vanste8
Category:

less

Transcript and Presenter's Notes

Title: Structuur en organisatie van computersystemen: deel 2


1
Structuur en organisatie van computersystemen
deel 2
  • Yolande Berbers
  • 200A 03.20

2
praktische organisatie
  • lessenschema 14 lessen
  • dinsdag 26 en woensdag 27 maart
  • paas-vakantie
  • dinsdag 16 en woensdag 17 april
  • dinsdag 23 en woensdag 24 april
  • pauze ik zit een week in het buitenland
  • dinsdag 7 en woensdag 8 mei
  • dinsdag 14 en woensdag 15 mei
  • dinsdag 21 en woensdag 22 mei
  • dinsdag 10.35-12u35, S01.03
  • woensdag 10.35-12u35, S01.03

3
doelstellingen van de cursus
  • direct doel
  • inzicht in
  • huidige tendensen in computerarchitectuur
  • achtergrond
  • algemene kenmerken
  • invloed voor de software
  • huidige tendensen in basissoftware
  • besturingssystemen
  • compilers
  • specifieke aandacht voor
  • snelheid
  • parallellisme (op alle niveaus)
  • via case studies kennis maken met belangrijke
    architecturen

4
doelstellingen van de cursus (vervolg)
  • verder doel
  • studenten voorbereiden op een veelvoorkomende
    latere job kiezen van gepaste apparatuur en
    basisprogrammatuur
  • voor een bepaalde omgeving
  • voor een bepaald doel
  • wat voor soort producten zijn er op de markt
  • wat moet je wel en niet geloven van de verkopers
  • materiaal-cursus niet afstuderen met alleen
    theoretische kennis

5
doelstellingen van de cursus (vervolg)
  • verder doel (vervolg)
  • na deze cursus moeten studenten
  • offertes voor computersystemen met kennis van
    zaken kunnen vergelijken
  • technische artikels over computerarchitecturen
    kunnen begrijpen
  • de vooruitgang in computerarchitectuur in de
    komende jaren gemakkelijk kunnen volgen

6
doelstellingen van de cursus (vervolg)
  • verhouding hardware / software
  • de cursus beschrijft de structuur en organisatie
    van computersystemen voor zover die van belang
    is voor een software specialist

7
karakteristieken van de cursus
  • een domein dat in continue en snelle beweging
    is (geen historisch overzicht maar huidige
    state-of-the-art)
  • breed domein
  • moeilijkheidsgraad niet zo hoog
  • de cursus brengt
  • nieuwe methoden, technieken, begrippen, modellen,
    ... analytisch
  • nieuwe terminologie beschrijvend
  • de cursus wil praktisch zijn
  • vergelijkbaar met SOCS1

8
overzicht van de cursus
  • inleiding tot computerarchitectuur (H1)
  • performantie (H1)
  • instructie-set principes, RISC-architecturen (H2)
  • pipelining (H3)
  • parallellisme op het instructieniveau (H4)
  • geheugen-hiërarchie (H5)
  • parallelle machines (slides)
  • niet-traditionele systemen (slides, kopies)
  • een aantal case studies (slides)

9
tekstboeken
  • Computer Architecture. A Quantitive Approach
    (2nd edition)David A. Patterson, John L.
    HennessyMorgan Kaufmann Publishers, 1996, ISBN
    1-55860-329-8
  • boek richt zich in de eerste plaats tot
    ontwerpers van systemen
  • wij zullen die elementen benadrukken die ons
    helpen de huidige systemen te begrijpen en te
    evalueren
  • Advanced Computer Architectures. A Design Space
    Approach Deszo Sima, Terence Fountain, Peter
    KacsukAddison Wesley, 1997, ISBN 0-201-42291-3
  • gebruikt voor het deel over parallelle machines
    en niet-traditionele systemen

10
slides
  • www.cs.kuleuven.ac.be/yolande/slides/socs2.html
  • slides worden continu up to date gehouden

11
plaats van cursus in curriculum
  • directe opvolger van SOCS1
  • steunt nogal op besturingssystemen

12
vorm van het examen
  • mogelijkheid tot alternatief examen (zie verder)
  • gesloten boek examen
  • mondeling met schriftelijke voorbereiding
  • vraag 1
  • peilt naar inzicht in de cursus
  • overzichtsvraag
  • combinatie van 2 of meer (hoofd)stukken
  • vraag 2
  • peilt naar diepte-kennis van een bepaald stuk
    cursus
  • vraag 3
  • peilt naar terminologie-kennis
  • bestaat uit meerdere kleine vragen

13
van belang voor het examen
  • vergelijk x en y betekent niet bespreek achter
    elkaar eerst x en dan y, maar bespreek x en y
    zodat ze vergelijkbaar worden (dus volgens
    hetzelfde stramien) en vergelijk ze dan
  • cijfers orde van grootte zijn van
    belang exacte cijfers niet

14
mogelijkheid tot alternatief examen
  • bespreking van een hedendaagse architectuur
  • voorstelling van 20 min (indien één student)
  • voorstelling van 40 min (indien twee studenten)
  • redelijke vrijheid bij de keuze van architectuur
    (niet Intel)
  • keuzes kenbaar maken eerste week na pasen
  • zelf zoeken naar documentatie (op het web is er
    veel te vinden)
  • bespreking in het licht van de behandelde topics
    uit de cursus
  • begrippen uit cursus, voor en nadelen van
    bepaalde technieken moeten gekend zijn
  • ik kan hierbij vragen stellen

15
Inleiding
16
overzicht van deze inleiding
  • vooruitgang van computermogelijkheden
  • computerontwerp
  • trends
  • software
  • hardware
  • cpu chips
  • geheugen chips
  • disks
  • kostprijs

17
vooruitgang van computermogelijkheden
  • 2 elementen die spelen bij vooruitgang
  • vooruitgang in de technologie die gebruikt wordt
    in het bouwen van computers (onderwerp van
    elektronica)
  • vooruitgang in computerontwerp (onderwerp van
    deze cursus)
  • vooruitgang niet gelijkmatig
  • in technologie nogal regelmatig
  • in computerontwerp onregelmatig, met sprongen
  • tot eind jaren 70 25 verbetering per jaar
  • vanaf eind jaren 70 microprocessoren
  • kunnen de technologische vooruitgang beter
    uitbuiten
  • 35 verbetering per jaar (zie grafiek verder)
  • massaproductie mogelijk, dus goedkoper

18
vooruitgang van computermogelijkheden (vervolg)
  • wet van Moore uit 1965
  • voorspelde dat de kracht van een chip zou
    verdubbelen elke 18 maanden
  • voorspelling is grotendeels juist gebleken
  • deze vooruitgang zal wellicht nog een tijdje lang
    doorgaan

19
vooruitgang van computermogelijkheden (vervolg)
  • vroegere rem op vernieuwingen in
    computerarchitecturen
  • veel code werd geschreven in assembler
  • heel architectuur afhankelijk
  • grote investering moest nog kunnen draaien op
    volgende machine uit zelfde reeks
  • object-code compatibiliteit is heel belangrijk
  • besturingssystemen
  • merkafhankelijk
  • in assembler geschreven
  • risico en kost van een nieuwe architectuur waren
    heel hoog
  • UNIX bracht hierin verandering

20
vooruitgang van computermogelijkheden (vervolg)
  • RISC architecturen
  • ontworpen begin jaren 80, op de markt sinds ? 85
  • vanaf dan 50 verbetering per jaar

21
vooruitgang van computermogelijkheden
22
vooruitgang van computermogelijkheden (vervolg)
  • gevolgen van deze enorme vooruitgang
  • het krachtigste werkstation in 93 (IBM Power-2)
    vgl. met de krachtigste computer in 88 (Cray
    Y-MP)
  • werkstation is even snel voor floating point
    berekeningen
  • werkstation is sneller voor integerberekeningen
  • werkstation kost minder dan 10 van supercomputer
  • microprocessoren worden gebruikt voor alle maten
    van computers, ook voor mainframes en
    supercomputers

23
vooruitgang van computermogelijkheden (vervolg)
  • gebruikte terminologie
  • personal computers
  • servers voor werkstations
  • mainframes
  • minicomputers worden vervangen door servers
    gemaakt met microprocessoren
  • mainframes worden vervangen door grote
    multiprocessoren gemaakt met microprocessoren
  • supercomputers verzamelingen van microprocessoren
  • werkstations
  • supercomputers

24
Technology Trends
25
intermezzo perspective on Post-PC Era
  • PostPC Era will be driven by 2 technologies
  • 1) GadgetsTiny Embedded or Mobile Devices
  • ubiquitous in everything
  • e.g., successor to PDA, cell phone, wearable
    computers
  • 2) Infrastructure to Support such Devices
  • e.g., successor to Big Fat Web Servers, Database
    Servers

26
New Architecture Directions
  • media processing will become the dominant force
    in computer arch. and microprocessor design.
  • ...new media-rich applications ... involve
    significant real-time processing of continuous
    media streams, and make heavy use of vectors of
    packed 8-, 16-, 32-bit integer and Fl. Pt.
  • Needs include real-time response, continuous
    media data types (no temporal locality), fine
    grain parallelism, coarse grain parallelism,
    memory bandwidth

27
computerontwerp
  • complexe taak
  • functionele eisen bepalen
  • maximaliseren van de performantie
  • maar binnen de kostenbeperkingen
  • aspecten
  • ontwerp van instructieset grens tussen
    software en hardware
  • functionele organisatie
  • logisch ontwerp
  • implementatie
  • ontwerp van geïntegreerd circuit
  • verpakking, koeling, voedingseenheid
  • kennis nodig van o.a. compilers,
    besturingssystemen

28
computerontwerp
  • Architecture is an iterative process
  • Searching the space of possible designs
  • At all levels of computer systems

Creativity
Cost / Performance Analysis
Good Ideas
Mediocre Ideas
Bad Ideas
29
computerontwerp
  • vroegere verdeling
  • computer architectuur ontwerp van instructie
    set
  • implementatie
  • organisatie
  • hardware
  • huidige tendens
  • computer architectuur omvat al deze aspecten

30
computerontwerp
  • organisatie
  • geheugensysteem, busstructuur, interne CPU
  • mogelijk gelijke instructieset maar
    verschillende organisatie (vb SPARCstation-2 en
    SPARCstation-20)
  • hardware
  • gedetailleerd logisch ontwerp, klok-snelheid,
    cache, verpakking
  • mogelijk gelijke instructieset en organisatie
    maar verschillende hardware (vb Intel-reeks,
    Silicon Graphics Indy)

31
functionele eisen
  • functionele eisen hangen af van veel factoren
  • voor welke gebruikers is de machine bedoeld
  • voor welke applicaties
  • op welke besturingssystemen mikt men
  • welke standaarden wilt men volgen
  • vaak zijn markt-elementen heel belangrijk
  • figuur 1.2 werkt deze verschillende punten meer
    uit
  • optimiseren van ontwerp
  • meestal kost vs snelheid (ook nadruk in deze
    cursus)
  • ook mogelijk fouttolerantie en betrouwbaarheid

32
software trends
  • programmas gebruiken meer en meer geheugen
  • factor 1.5 tot 2 per jaar
  • adresruimten moeten groter worden, dus adressen
    nemen meer bits in beslag 0.5 tot 1 per jaar
  • komt zowel door programmas als door
    verbeteringen in DRAM technologie (zie verder)

33
software trends
  • rol van compiler wordt steeds groter
  • assembler is ongeveer helemaal verdwenen
  • compilers bepalen mee in grote mate de
    performantie
  • compilers belangrijkste interface gebruiker /
    machine
  • verbeteringen in compiler technologie
  • optimisaties, herschikken van code
    (pipelining, geheugen systeem)
  • ook onderwerp van deze cursus

34
trends in implementatietechnologie
  • integrated circuit technologie
  • densiteit toename van 50 per jaar
    (verviervoudiging in 3 jaar)
  • chip-oppervlakte toenamen van 10 tot 25 per
    jaar
  • gecombineerd effect toename van het aantal
    transistoren per chip van 60 tot 80 per jaar

35
trends in implementatietechnologie
36
trends in implementatietechnologie
  • semiconductor DRAM technologie
  • densiteit toename van 60 per jaar
    (verviervoudiging in 3 jaar)
  • cyclus tijd veel kleinere verbetering
    vermindering van een derde in 10 jaar

Capacity Speed Logic 2x in 3 years 2x in 3
years DRAM 4x in 3 years 1.4x in 10
years Disk 2x in 3 years 1.4x in 10 years
Speed increases of memory and I/O have not kept
pace with processor speed increases.
37
trends in implementatietechnologie
Moores Law for Memory
Transistor capacity increases by 4x every 3 years
38
Memory History/Trends/State of Art
  • DRAM main memory of all computers
  • Commodity chip industry no company gt20 share
  • Packaged in SIMM or DIMM (e.g.,16 DRAMs/SIMM)
  • Capacity 4X/3 yrs (60/yr..)
  • Moores Law
  • MB/ 25/yr.
  • Latency 7/year, Bandwidth 20/yr. (so far)

source www.pricewatch.com, 5/21/98
39
Memory Summary
  • DRAM
  • rapid improvements in capacity, MB/, bandwidth
  • slow improvement in latency
  • Processor-memory interface (cachememory bus)
    bottleneck to bandwidth

40
Processor Limit DRAM Gap
  • Alpha 21264 full cache miss in instructions
    executed 180 ns/1.7 ns 108 clks x 4 or 432
    instructions
  • Caches in Pentium Pro 64 area, 88 transistors

41
trends in implementatie technologie (vervolg)
  • harde schijf technologie
  • densiteit toename van 50 per jaar bijna
    verviervoudiging in 3 jaar
  • cyclus tijd veel kleinere verbetering
    vermindering van een derde in 10 jaar

42
Disk Description / History
Track
Embed. Proc. (ECC, SCSI)
Sector
Track Buffer
Arm
Head
Platter
1973 1. 7 Mbit/sq. in 140 MBytes
1979 7. 7 Mbit/sq. in 2,300 MBytes
Cylinder
43
Disk History
1989 63 Mbit/sq. in 60,000 MBytes
1997 1450 Mbit/sq. in 2300 MBytes
1997 3090 Mbit/sq. in 8100 MBytes
44
Performance Model /Trends
  • Capacity
  • 60/year (2X / 1.5 yrs)
  • Transfer rate (BW)
  • 40/year (2X / 2.0 yrs)
  • Rotation Seek time
  • 8/ year (1/2 in 10 yrs)
  • MB/
  • gt 60/year (2X / lt1.5 yrs)
  • Fewer chips areal density

source Ed Grochowski, 1996, IBM leadership in
disk drive technology
www.storage.ibm.com/storage/technolo/grochows/groc
ho01.htm,
45
Disk Limit I/O Buses
  • Cannot use 100 of bus
  • Queuing Theory (lt 70)
  • Command overhead(Effective size size x 1.2)
  • Multiple copies of data,SW layers

Memory bus
CPU
Internal I/O bus
Memory
External I/O bus
(PCI)
  • Bus rate vs. Disk rate
  • SCSI Ultra2 (40 MHz), Wide (16 bit) 80 MByte/s
  • FC-AL 1 Gbit/s 125 MByte/s (single disk in
    2002)

(SCSI)
(15 disks)
Controllers
46
Disk Limit
  • Continued advance in
  • capacity (60/yr)
  • bandwidth (40/yr.)
  • Slow improvement in seek, rotation (8/yr)
  • Time to read whole disk
  • Year Sequentially Randomly
  • 1990 4 minutes 6 hours
  • 2000 12 minutes 1 week
  • Dynamically change data layout to reduce seek,
    rotation delay? Leverage space vs. spindles?
  • External I/O bus bottleneck to transfer rate,
    cost? gt move to fast serial lines (FC-AL)?
  • how to use speed of embedded processor inside
    disk?

47
trends in implementatie technologie (vervolg)
  • huidige tijdschaal van microprocessoren
  • ontwerp 2 jaar
  • productie 2 jaar
  • levensduur van minimum 5 jaar
  • gevolg wanneer productie op volle toeren draait
    zijn sleuteltechnologieën (DRAM bv.) reeds een
    stap verder
  • technologische veranderingen gebeuren vaak niet
    op een continue manier maar in discrete stappen
  • bv. DRAM groeit steeds met factor 4
  • vanaf een bepaalde grens kan opeens iets heel
    anders (bv. 32-bit, 64-bit)

48
Clock Frequency Growth Rate
  • 30 per year

49
Transistor Count Growth Rate
  • 100 million transistors on chip by early 2000s
    A.D.
  • Transistor count grows much faster than clock
    rate
  • - 40 per year, order of magnitude more
    contribution in 2 decades

50
The future general characteristics
51
The future DRAM
52
The future high performance (mP)
53
The future ASIC
54
trends in kostprijs
  • kost van een product vermindert met de tijd
  • onder de knie krijgen van een technologie
    (leercurve) verlaagt de kost
  • grotere verkochte hoeveelheden verlagen de kost
  • leercurve gaat sneller
  • efficiëntere productiemethoden voor grote
    hoeveelheden
  • ontwerpkosten worden verdeeld over meer producten
  • zie als voorbeeld figuur 1.3
  • standaard randapparaten verlagen sterk in prijs
  • DRAM, kleine disks, schermen, toetsenborden,
    enz.
  • zeer grote competitie, door gespecialiseerde
    firmas
  • hebben zeer groot volume door standaardisatie

55
trends in kostprijs (vervolg)
  • figuur 1.6 geeft de uitsplitsing van kosten voor
    een eenvoudig kleuren werkstation
  • figuren 1.7 en 1.8 en figuren volgende slides
  • component-kosten zijn maar een klein deel van de
    uiteindelijke prijs op een prijslijst
  • bij volumeproducten (bv PCs)
  • is de gross margin lager ( alle kosten die
    niet direkt toe te schrijven zijn aan een bepaald
    product, zoals marketing en reklame, RD,
    gebouwen, directie, winst)
  • is de average discount groter ( winst die de
    eindverkoper heeft)

56
trends in kostprijs (vervolg)
  • Component Costs

List Price
15 to 33
57
trends in kostprijs (vervolg)
  • Component Costs
  • Direct Costs (add 25 to 40) recurring costs
    labor, purchasing, scrap, warranty

List Price
6 to 8
Direct Cost
15 to 33
58
trends in kostprijs (vervolg)
  • Component Costs
  • Direct Costs (add 25 to 40) recurring costs
    labor, purchasing, scrap, warranty
  • Gross Margin (add 82 to 186) nonrecurring
    costs RD, marketing, sales, equipment
    maintenance, rental, financing cost, pretax
    profits, taxes

List Price
34 to 39
6 to 8
Direct Cost
15 to 33
59
trends in kostprijs (vervolg)
  • Component Costs
  • Direct Costs (add 25 to 40) recurring costs
    labor, purchasing, scrap, warranty
  • Gross Margin (add 82 to 186) nonrecurring
    costs RD, marketing, sales, equipment
    maintenance, rental, financing cost, pretax
    profits, taxes
  • Average Discount to get List Price (add 33 to
    66) volume discounts and/or retailer markup

List Price
25 to 40
Avg. Selling Price
34 to 39
6 to 8
Direct Cost
15 to 33
60
trends in kostprijs (vervolg)
61
het meten en rapporteren van performantie
62
performantie overzicht
  • wat verstaat men onder performantie
  • programma's uitvoeren om performantie te meten
  • performantie vergelijken en samenvatten
  • kwantitatieve principes ivm performantie
  • algemeen, formules, toegepast op enkele kleinere
    voorbeelden
  • toegepast op geheugenhiërarchie
  • fouten en valstrikken

63
het definiëren van performantie
  • wat bedoelen we met computer X heeft een betere
    performantie dan computer Y ?
  • vergelijk met vliegtuigen

64
het definiëren van performantie (vervolg)
  • verschillende criteria
  • responsetijd uitvoeringstijd
  • doorvoer
  • klassiek definieert men performantie als
  • als X n keer sneller is dan Y
  • termen zoals verhogen of verlagen zijn
    verwarrendwe zullen spreken over verbeteren en
    verslechteren

65
het meten van performantie
  • slechts één echte maat uitvoeringstijd
  • van één taak responstijd
  • van meerdere taken doorvoer
  • responsetijd (latency) bevat ook wachttijden
  • CPU-tijd user CPU-tijd system CPU-tijd
  • vaak gebruikt men enkel user CPU-tijd
  • keuze van programmas om performantie te meten
  • echte programmas
  • kernels
  • spelbenchmarks
  • synthetische benchmarks
  • benchmark suites

66
het meten van performantie (vervolg)
  • echte programma's
  • beste methode
  • voordelen
  • vergelijkt dat wat men in werkelijkheid wil doen
  • nadelen
  • software niet altijd beschikbaar (moet gekocht
    worden)
  • niet altijd eenvoudig uit te voeren (duurt te
    lang)
  • zelfs al is de broncode beschikbaar, overdragen
    van de code is meestal geen evidente zaak
  • vergelijking moet volledig door de klant gebeuren

67
het meten van performantie (vervolg)
  • kernels
  • korte, typische extracten van echte programma's
  • voordelen
  • gemakkelijk te schrijven, ook voor nieuwe
    machines waar nog geen compilers voor zijn (oud
    argument)
  • vergelijkingswaarden zijn voor vele machines
    bekend
  • goed om individuele aspecten van computers te
    vergelijken
  • nadelen
  • geeft niet echt weer wat later als software zal
    draaien
  • voorbeelden
  • Livermore Loops, Linpack

68
het meten van performantie (vervolg)
  • voorbeelden
  • Livermore Loops (eigenlijk Livermore Fortran
    Kernels of LFK)
  • 24 Fortran DO-loops uit code van de Lawrence
    Livermore National Laboratory
  • wordt gebruikt sinds begin jaren 70 (eerst 14,
    later 24 loops)
  • mengeling van lussen die wel/niet gevectoriseerd
    kunnen worden
  • lengte van de lussen wordt gevarieerd
  • heeft geleid tot het gebruik van de term Mflop/s
    (millions of floating point operations per
    second)
  • geeft niet 1 cijfer, maar een groot aantal (zie
    ook SPEC)

69
het meten van performantie (vervolg)
  • voorbeelden
  • Linpack
  • oplossing van 100x100 lineaire vergelijking met
    L/U decompositie
  • klein programma

70
het meten van performantie (vervolg)
  • spel benchmarks
  • bekende algoritmes die men als benchmark gebruikt
  • voordelen
  • korte code om in te tikken
  • voorbeelden gemakkelijk te vinden in artikels
  • vergelijkingswaarden zijn voor vele machines
    bekend
  • nadelen
  • geeft niet echt weer wat later als software zal
    draaien(minder nog dan kernels)
  • voorbeelden
  • zeef van Erastosthenes, quicksort

71
het meten van performantie (vervolg)
  • synthetische benchmarks
  • volgt de idee van de kernels programma's die de
    frequentie van instructiegebruik nabootsen in
    bepaalde toepassingsgebieden
  • voordelen
  • vergelijkingswaarden zijn voor vele machines
    bekend
  • de testen zijn veel uitgebreider dan kernels
  • nadelen
  • geeft niet echt weer wat later als software zal
    draaien
  • problemen indien performantie afhangt van klein
    stukje code geeft vaak aanleiding tot ad hoc
    optimisaties
  • voorbeelden
  • Whetstone (Fortran wetenschappelijk code)
  • Dhrystone (geen wetenschappelijk code)

72
het meten van performantie (vervolg)
  • benchmark suites
  • verzameling van benchmarks
  • voordelen
  • zwakheid van een bepaalde benchmark uit de suite
    wordt gecompenseerd door de andere benchmarks uit
    de suite
  • vergelijkingswaarden zijn voor vele machines
    bekend
  • nadelen
  • methode om de resultaten van de verschillende
    benchmarks samen te brengen is heel belangrijk
  • geeft niet echt weer wat later als software zal
    draaien
  • voorbeelden
  • SPEC92, SPEC95, SPEC CPU2000, TPC

73
het meten van performantie (vervolg)
  • SPEC System Performance Evaluation Corporation
  • opgericht door meer dan 20 computerfirmas in
    1988
  • eerste versie in 1989 standaard machine VAX
    11/780
  • tweede versie in 1992 met uitgebreide
    floating-point tests standaard machine VAX
    11/780
  • derde algemene versie van 1995standaard machine
    Sun SPARCstation 10/450 met 64MB RAM
  • nieuwe versies nodig optimisaties van compilers
    voor benchmarks!
  • nieuwe gespecialiseerde suites
  • SPEChpc96 voor high performance computing
  • SPECweb96 voor web-toepassingen
  • SPECjvm98 voor het testen van java virtual
    machines

74
het meten van performantie (vervolg)
  • SPEC System Performance Evaluation Corporation
  • nieuwste algemene versie SPEC CPU2000
  • bestaat uit CINT2000 en CFP2000
  • CINT2000 suite bevat 12 application-based
    benchmarks in C and C
  • CFP2000 suite bevat 14 CPU-intensieve benchmarks
    in FORTRAN (77 en 90) en C
  • referentiemachine Sun Microsystems Ultra5_10
    werkstation met 300-MHz SPARC processor en 256-MB
    geheugen
  • de waarden van CINT2000 en CFP2000 zijn op de
    referentiemachine per definitie 100
  • methode (zie ook fig. 1.9)
  • meerdere in de praktijk gebruikte
    toepassingsprogrammas

75
het meten van performantie (vervolg)
  • 2 manieren om er mee te werken
  • SPECint en SPECfp meest gebruikt
  • enkel die tests gebruiken die het meest lijken op
    de software die men wil draaien
  • maar meestal wordt alleen het gemiddelde
    resultaat gepubliceerd (zie figuur uit
    tijdschrift)
  • SPECrate_int, SPECrate_fp
  • testen de verwerkingscapaciteit van een systeem
  • meerdere kopieën van dezelfde test worden
    opgestartgemeten wordt hoeveel processen binnen
    bepaalde tijd volledig uitgevoerd zijn
  • ook geschikt voor multiprocessoren
  • een tape met de testen kost 800

76
het meten van performantie (vervolg)
  • TPC Transaction Processing Performance Council
  • tps transactions per second of tpm transactions
    per minute
  • /tps geeft prijs/performantie
  • gebruikt in de database wereld
  • test de van combinatie database software en
    onderliggende hardware
  • TPC-A, TPC-B, TPC-C bestaan
  • niet zo gekend als SPEC, resultaten minder
    publiek
  • het kost een firma initieel tot 500.000 om
    TPC-C audit op te bouwen, te optimiseren en te
    tunen

77
verslag uitbrengen over performantie
  • reproduceerbaarheid
  • cijfers over benchmarks hebben slechts betekenis
    als alle omstandigheden meting vermeld zijn (wat
    weinig gebeurd)
  • exacte versie van processor
  • versie van compiler
  • gebruikte optimisaties (zie ook bij fouten en
    valstrikken)
  • hoeveelheid RAM
  • hoeveelheid cache (primair, secundair)
  • welke input
  • enz.
  • bij auto-tests wel gewoonte om alle
    omstandigheden te geven
  • bij SPEC baseline performance naast optimized
    performance

78
verslag uitbrengen over performantie (vervolg)
  • vergelijken van performantie hoe combineer je
    informatie ?
  • niet zo eenvoudig !

79
verslag uitbrengen over performantie (vervolg)
  • totale uitvoeringstijd
  • rekenkundig gemiddelde
  • gewogen rekenkundig gemiddelde

A
B
C
W(1)
W(2)
W(3)
P1 (secs)
1.00
10.00
20.00
0.50
0.909
0.999
P2 (secs)
1000.00
20.00
0.50
0.091
0.001
100.00
gem W(1) (secs)
500.50
20.00
55.00
91.82
20.00
18.18
gem W(2) (secs)
2.00
20.00
10.09
gem W(3) (secs)
80
verslag uitbrengen over performantie (vervolg)
  • genormaliseerde uitvoeringstijd tov een
    referentiemachineuitvoeringstijd van
    referentiemachine is dan 1 (per def.)
  • gemiddelde van genormaliseerde uitvoeringstijden
  • rekenkundig
  • meetkundig (SPEC)

Normalized to A
Normalized to B
Normalized to C
A
B
C
A
B
C
A
B
C
P1 (secs)
1.0
10.0
20.0
1.0
1.0
0.1
2.0
0.05
0.5
1.0
0.1
1.0
1.0
0.02
10.0
0.2
50.0
5.0
P2 (secs)
Rek Gem
1.0
5.05
1.0
1.0
10.01
5.05
1.1
25.03
2.75
Geo Gem
1.0
1.0
1.0
1.0
0.63
1.0
0.63
1.58
1.58
Tot Tijd
1.0
0.11
1.0
1.0
0.04
9.1
0.36
25.03
2.75
81
verslag uitbrengen over performantie (vervolg)
  • voordelen van meetkundig gemiddelde van
    genormaliseerde uitvoeringstijden
  • onafhankelijk van uitvoeringstijden van
    individuele progr.
  • onafhankelijk van referentiemachine
  • nadelen van meetkundig gemiddelde van
    genormaliseerde uitvoeringstijden
  • ze voorspellen niet de uitvoeringstijden
  • de constructeurs worden aangemoedigd om korte
    programma's te optimizeren (gaat gemakkelijker
    dan langere en heeft hetzelfde effect)
  • ideaal
  • eerst juiste gewichten (afhankelijk van
    voorspelde gebruik)
  • en dan normalisatie

82
kwantitatieve principes
  • belangrijkste principe
  • zorg ervoor dat wat vaak voorkomt snel is
  • uitgangspunt van RISC (zie later)
  • extra voordeel wat vaak voorkomt is meestal ook
    simpel
  • vb overflow
  • komt niet zo vaak voor
  • versnel dus het normale geval (geen overflow)
  • eventueel is dan overflow trager, maar dat is
    minder erg
  • dit kan gekwantificeerd worden met behulp van de
    wet van Amdahl

83
kwantitatieve principes (vervolg)
  • Amdahls wet een verbetering is beperkt tot de
    fractie die baat heeft bij de verbetering
  • factoren die een rol spelen
  • fractie waarop verbetering een invloed heeft
  • vb een programma duurt 60 sec. de verbetering
    heeft betrekking op 20 sec de fractie is 20/60
  • verbetering die bekomen kan worden
  • vb zonder verbetering duurt een stuk 20 sec.
    met verbetering duurt het 8 sec. verbetering
    (speedup) is 20/8
  • wet van Amdahl is interessant om verschillende
    mogelijke verbetering te vergelijken
  • in formules zie volgende slide

84
kwantitatieve principes (vervolg)
85
kwantitatieve principes (vervolg)
  • voorbeeld 1
  • verandering verbetering met een factor 10
  • wordt gebruikt 40 van de tijd

86
kwantitatieve principes (vervolg)
  • voorbeeld 2
  • FP 50 van uitvoeringstijd van een bepaalde
    benchmarkFPSQR 20 van uitvoeringstijd van
    deze benchmark
  • alternatief 1 extra hardware FPSQR is 10 keer
    sneller
  • alternatief 2 alle FP berekeningen 2 maal sneller

87
kwantitatieve principes (vervolg)
  • berekenen van CPU-performantie
  • vorige berekeningen gingen ervan uit dat we
    precies weten wat het effect zal zijn van een
    verbetering
  • in de praktijk moet je dit voorspellen, je kunt
    het niet meten (want de verbeteringen zijn nog
    niet doorgevoerd)
  • een aantal formules kunnen hierbij gebruikt worden

88
kwantitatieve principes (vervolg)
  • CPU performantie is dus afhankelijk van 3
    factoren aantal instructies, klokcycli per
    instructie, klokfrequentie

89
kwantitatieve principes (vervolg)
  • deze drie factoren zijn niet onafhankelijk
  • een verbetering van één factor kan een invloed
    hebben op de andere (bv een verslechtering)
  • basistechnologieën die invloed hebben op de 3
    factoren
  • klokfrequentie hardware technologie en
    organisatie
  • CPI organisatie en instructieset
  • aantal instructies instructieset en
    compilertechnologie
  • formules die helpen bij CPU-ontwerpbeslissingen
  • vb van berekening zie boek blz 33

90
kwantitatieve principes
Inst Count CPI Clock Rate Program
X Compiler X (X) Inst.
Set. X X Organization
X X Technology X
91
kwantitatieve principes (vervolg)
  • meten (of schatten) van de 3 factoren
  • klokfrequentie
  • heel moeilijk, is meestal een schatting
  • aantal instructies
  • nodig compiler te hebben (wordt heel vroeg
    ontwikkeld)
  • totaal aantal instructies is van belang
  • ook frequentiegebruik van verschillende (klassen
    van) instructies is van belang (instructiemix)
  • CPI
  • vaak werkt men met CPIi (per instructie (klasse))
  • moeilijk want afhankelijk van de toestand van
    processor (dus pipeline en cache)
  • vaak zal men die twee factoren opsplitsen

92
kwantitatieve principes (vervolg)
  • voorbeeld 3 2 alternatieven voor conditionele
    sprong
  • alt A een compare instructie die een
    conditiecode zet,gevolgd door een branch die
    de conditiecode test
  • alt B slechts 1 instructie, een branch die
    direct vergelijkt
  • voor beide
  • conditionele branch instructie duurt 2
    klokcycli
  • alle andere instructies duren 1 klokcyclus
  • alt A 20 zijn sprongen en er zijn dus ook 20
    compare
  • alt A snellere klok omdat korte sprong 1.25
    maal sneller dan B
  • vraag welke CPU is sneller ?

93
kwantitatieve principes (vervolg)
  • CPIA 0.20 x 2 0.80 X 1 1.2
  • CPU time A ICA x CPIA x klokcyclustijdA
    ICA x 1.2 x klokcyclustijdA
  • alt B heeft geen extra compare, dus 20/80 of
    25 zijn sprongen en de rest (75) zijn andere
    instructiesCPIB 0.25 x 2 0.75 X 1 1.25
  • alt B heeft in totaal minder instructies uit te
    voerenICB 0.8 ICA
  • CPU time B ICB x CPIB x klokcyclustijdB
    0.8 x ICA x 1.25 x (1.25 x kl.cyclustijdA)
    1.25 x ICA x klokcyclustijdA
  • alternatief A is dus sneller

94
geheugenhiërarchie
  • axioma van hardware ontwerp klein is snel
  • klein signalen moeten minder ver gaan
  • meer voeding mogelijk per cel
  • wel veel duurder
  • van groot belang bij geheugens
  • grote bandbreedte (in MB/sec.)
  • kleine toegangstijden
  • data toegang
  • meest recent gebruikt komt vaak terug (temporele
    lokaliteit)
  • wat in de buurt ligt is vaak ook nodig
    (ruimtelijke lokaliteit)
  • combinatie van deze elementen met de wet van
    Amdahl geheugen hiërarchie is de oplossing

95
geheugenhiërarchie
Capacity Access Time Cost
Staging Xfer Unit
Upper Level
CPU Registers 100s Bytes lt1 ns
faster
Registers
prog./compiler 1-8 bytes
Instr. Operands
Cache 10s-100s K Bytes 1-10 ns 10/ MByte
Cache
cache cntl 8-128 bytes
Blocks
Main Memory M Bytes 100ns- 300ns 1/ MByte
Memory
OS 512-4K bytes
Pages
Disk 10s G Bytes, 10 ms (10,000,000 ns) 0.0031/
MByte
Disk
user/operator Mbytes
Files
Tape infinite sec-min 0.0014/ MByte
Larger
Tape
Lower Level
96
geheugenhiërarchie
  • By taking advantage of the principle of locality
  • give user as much memory as is available in
    cheapest technology
  • provide access at the speed offered by the
    fastest technology

97
geheugenhiërarchie (vervolg)
  • cache terminologie cache hit, cache miss, cache
    block
  • vergelijking cache en virtueel geheugen
  • bij cache miss blokkeert de CPU totdat gegevens
    aanwezig zijn
  • bij page fault krijgen we een proceswisseling

98
performantie van cachegeheugen
  • voorbeeld speedup na toevoeging van een cache
  • cache is 10 maal sneller dan het hoofdgeheugen
  • cache wordt gebruikt 90 van de keren

99
performantie van cachegeheugen (vervolg)
  • meestal is er al een geheugenhiërarchie
  • vraag hoe kan ik die verbeteren
  • nodig in rekening brengen van wachten van CPU op
    cache
  • CPUtime (CPU klokcycli geheugen-stall-cycli)
    x klokcyclus
  • geheugen-stall-cycli aantal missingen x kost
    van een missing
  • IC x aantal missingen per instructie x kost van
    een missing
  • IC x aantal geh. ref. per instr. x mis-frequ. x
    kost van missing
  • de elementen uit de laatste formule zijn
    gemakkelijk te bepalen, o.a. door simulatie

100
performantie van cachegeheugen (vervolg)
  • voorbeeld
  • machine met CPI 2.0 als data in de cache
  • geheugentoegang enkel via load en store (40 van
    instr.)
  • kost van missing 25 klokcycli
  • mis-frequentie 2
  • vraag hoeveel sneller zou de machine zijn met
    alleen cache hits

101
performantie van cachegeheugen (vervolg)
  • voor machine met cache (elke instructie vraagt
    een instructiefetch uit het geheugen, en 40 van
    de instructies vragen nog een geheugentoegang
    extra) CPUtime (CPU klokcycli
    geheugen-stall-cycli) x klokcyclus (IC x 2.0
    IC x 0.7) x klokcyclus 2.7 x IC x klokcyclus

102
fouten en valstrikken
  • valstrik MIPS is een goede maat om performanties
    van computersystemen te vergelijken
  • Million Instructions per Second
  • Meaningless Indicator of Performance of System
  • Marketings Invention to Promote Sales
  • hoe groter de MIPS, hoe performanter het systeem
    (gemakkelijk te begrijpen)
  • 3-voudig probleem
  • MIPS is afhankelijk van instructieset
  • MIPS kan variëren op 1 systeem (afh. van
    programma)
  • MIPS kan variëren omgekeerd als performantie (vb
    FP)

103
fouten en valstrikken (vervolg)
  • valstrik MFLOPS is een consistente en handige
    maat voor performantie
  • Million FP Operations Per Second
  • is afhankelijk van de machine en van het
    programma (compilers hebben een MFLOP van 0)
  • als zelfde programma vergeleken wordt tussen
    verschillende systemen, dan nog is het geen goede
    vergelijking
  • soort hardware ondersteunde FP operaties niet
    overal gelijk
  • maakt geen verschil tussen snelle FP operaties
    (bv optelling) en trage FP operaties (bv deling)
  • zoals bij MIPS men geeft maar 1 cijfer en zegt
    niets over de omstandigheden van dat cijfer

104
fouten en valstrikken (vervolg)
  • fout synthetische benchmarks voorspellen
    performantie
  • compilers worden vaak aangepast expliciet aan
    veelgebruikte benchmarks
  • eenvoudige programmas waar alle procedures
    kunnen uitgeschakeld worden
  • door kennis van bepaalde formules uit Whetstone
    vertalen sommige compilers dit in veel
    eenvoudigere code
  • valstrik benchmarks blijven altijd geldig
  • één van de programmas van SPEC89 (matrix300)
    werd vaak heel specifiek geoptimiseerd
  • andere concrete voorbeelden in het boek

105
fouten en valstrikken (vervolg)
  • valstrik verwachten dat de verbetering van één
    aspect de performantie van een machine zal doen
    toenemen met een hoeveelheid die evenredig is met
    de grootte van de verbetering
  • vb de uitvoering van een programma duurt 100
    sec., waarvan 80 sec. vermenigvuldigingen zijn.
    Met hoeveel moet ik de vermenigvuldiging
    verbeteren opdat mijn programma 5 maal sneller
    zou uitvoeren ?

106
fouten en valstrikken (vervolg)
  • fout hardware-onafhankelijke maten voorspellen
    performantie
  • vb gebruik van grootte van programmas als maat
    voor programma-uitvoeringstijd (dat werd vroeger
    wel eens gedaan)
  • valstrik vergelijken van computers, waarbij men
    alleen rekening houdt met één van de drie
    performantie-maten kloksnelheid, CPI,
    instructie-aantallen
  • valstrik piek-performantie gebruiken om machines
    te vergelijken
Write a Comment
User Comments (0)
About PowerShow.com