Structuur en organisatie van computersystemen: deel 2 Yolande Berbers 200A 03.20 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 1 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 2 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 3 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 4 doelstellingen van de cursus (vervolg) verder doel (vervolg) na deze cursus moeten studenten Yolande Berbers 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 Structuur en Organisatie van Computersystemen: deel 2 slide 5 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 6 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 7 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) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 8 tekstboeken Computer Architecture. A Quantitive Approach (2nd edition) David A. Patterson, John L. Hennessy Morgan 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 Kacsuk Addison Wesley, 1997, ISBN 0-201-42291-3 gebruikt voor het deel over parallelle machines en niet-traditionele systemen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 9 slides www.cs.kuleuven.ac.be/~yolande/slides/socs2.html slides worden continu up to date gehouden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 10 plaats van cursus in curriculum directe opvolger van SOCS1 steunt nogal op besturingssystemen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 11 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 12 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: Yolande Berbers orde van grootte zijn van belang exacte cijfers niet Structuur en Organisatie van Computersystemen: deel 2 slide 13 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 Yolande Berbers begrippen uit cursus, voor en nadelen van bepaalde technieken … moeten gekend zijn ik kan hierbij vragen stellen Structuur en Organisatie van Computersystemen: deel 2 slide 14 Inleiding Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 15 overzicht van deze inleiding vooruitgang van computermogelijkheden computerontwerp trends software hardware cpu chips geheugen chips disks kostprijs Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 16 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 17 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 18 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 19 vooruitgang van computermogelijkheden (vervolg) RISC architecturen ontworpen begin jaren 80, op de markt sinds 85 vanaf dan: 50% verbetering per jaar 300 Sun UltraSparc P e r f o r m a n c e 1.54X /yr 250 DE C 21064a 200 150 IBM Powe r 2/590 100 DE C AX P 3000 H P 9000/750 50 M IPS M /120 Sun-4/260 M IPS M 2000 IBM RS6000/540 0 1987 1.35X /yr 1988 1989 1990 1991 1992 1993 1994 1995 Ye ar Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 20 vooruitgang van computermogelijkheden 1200 DEC Alpha 21264/600 1.54X/yr 1000 800 600 DEC Alpha 5/500 400 200 0 DEC Alpha 5/300 DEC HP IBM AXP/ Sun MIPSMIPS 9000/ RS/ DEC Alpha 4/266 500 -4/ M M/ 750 6000 IBM POWER 100 260 2000 120 87 88 89 90 91 92 93 94 95 96 97 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 21 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 22 vooruitgang van computermogelijkheden (vervolg) gebruikte terminologie – personal computers – servers voor werkstations – mainframes – werkstations – supercomputers minicomputers: worden vervangen door servers gemaakt met microprocessoren mainframes: worden vervangen door grote multiprocessoren gemaakt met microprocessoren supercomputers: verzamelingen van microprocessoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 23 Technology Trends 1000 Supercomputers 100 Mainframes 10 Minicomputers Microprocessors 1 0.1 1965 1970 1975 1980 1985 1990 1995 2000 Year Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 24 intermezzo: perspective on Post-PC Era PostPC Era will be driven by 2 technologies: 1) “Gadgets”:Tiny 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 25 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 26 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 27 computerontwerp Architecture is an iterative process: • Searching the space of possible designs • At all levels of computer systems Des ign Analysis Creativity Cost / Performance Analysis Good Ideas Bad Ideas Yolande Berbers Mediocre Ideas Structuur en Organisatie van Computersystemen: deel 2 slide 28 computerontwerp vroegere verdeling computer architectuur = ontwerp van instructie set implementatie organisatie hardware huidige tendens computer architectuur omvat al deze aspecten Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 29 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) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 30 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 31 software trends programma’s 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 programma’s als door verbeteringen in DRAM technologie (zie verder) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 32 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 33 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 34 trends in implementatietechnologie 100000000 Alpha 21264: 15 million Pentium Pro: 5.5 million PowerPC 620: 6.9 million Alpha 21164: 9.3 million Sparc Ultra: 5.2 million 10000000 Moore’s Law Pentium i80486 Tra nsisto rs 1000000 i80386 i80286 100000 CMOS improvements: • Die size: 2X every 3 yrs • Line width: halve / 7 yrs i8086 10000 i8080 i4004 1000 1970 1975 1980 1985 1990 1995 2000 Year Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 35 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. Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 36 trends in implementatietechnologie s ize 1000000000 100000000 year 1980 1983 1986 1989 1992 1996 2000 Bits 10000000 1000000 100000 10000 size(Mb) cyc time 0.0625 250 ns 0.25 220 ns 1 190 ns 4 165 ns 16 145 ns 64 120 ns 256 100 ns 1000 1970 1975 1980 1985 1990 1995 2000 Year Moore’s Law for Memory: Transistor capacity increases by 4x every 3 years Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 37 Memory History/Trends/State of Art DRAM: main memory of all computers Commodity chip industry: no company >20% share Packaged in SIMM or DIMM (e.g.,16 DRAMs/SIMM) Capacity: 4X/3 yrs (60%/yr..) Moore’s Law MB/$: + 25%/yr. Latency: – 7%/year, Bandwidth: + 20%/yr. (so far) Yolande Berbers source: www.pricewatch.com, 5/21/98 slide 38 Structuur en Organisatie van Computersystemen: deel 2 Memory Summary DRAM rapid improvements in capacity, MB/$, bandwidth slow improvement in latency Processor-memory interface (cache+memory bus): bottleneck to bandwidth Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 39 Processor Limit: DRAM Gap CPU “Moore’s Law” 100 10 µProc 60%/yr.. Processor-Memory Performance Gap: (grows 50% / year) DRAM 1 DRAM 7%/yr.. 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Performance 1000 • 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 40 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 41 Disk Description / History Embed. Proc.Track (ECC, SCSI) Sector Track Arm Buffer Head Platter Cylinder Yolande Berbers 1973: 1. 7 Mbit/sq. in 140 MBytes 1979: 7. 7 Mbit/sq. in 2,300 MBytes Structuur en Organisatie van Computersystemen: deel 2 slide 42 Disk History Areal Density 10000 1000 100 10 1 1970 1980 1990 2000 Year 1989: 63 Mbit/sq. in 60,000 MBytes Yolande Berbers 1997: 1450 Mbit/sq. in 2300 MBytes 1997: 3090 Mbit/sq. in 8100 MBytes Structuur en Organisatie van Computersystemen: deel 2 slide 43 Performance Model /Trends Capacity + 60%/year (2X / 1.5 yrs) Latency = Transfer rate (BW) Queuing Time + + 40%/year (2X / 2.0 yrs) Controller time + per access Seek Time + Rotation + Seek time Rotation Time + – 8%/ year (1/2 in 10 yrs) + Size / Bandwidth per byte { MB/$ > 60%/year (2X / <1.5 yrs) Fewer chips + areal density source: Ed Grochowski, 1996, “IBM leadership in disk drive technology”; www.storage.ibm.com/storage/technolo/grochows/grocho01.htm, Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 44 Disk Limit: I/O Buses Multiple copies of data, SW layers CPU Memory bus Memory C C Bus rate vs. Disk rate Cannot use 100% of bus Queuing Theory (< 70%) Command overhead (Effective size = size x 1.2) Internal I/O bus (PCI) SCSI: Ultra2 (40 MHz), Wide (16 bit): 80 MByte/s FC-AL: 1 Gbit/s = 125 MByte/s (single disk in 2002) External I/O bus C (SCSI) C Controllers (15 disks) 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 2000 4 minutes 12 minutes 6 hours 1 week Dynamically change data layout to reduce seek, rotation delay? Leverage space vs. spindles? External I/O bus bottleneck to transfer rate, cost? => move to fast serial lines (FC-AL)? how to use speed of embedded processor inside disk? Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 46 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) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 47 Clock Frequency Growth Rate Clock rate (MHz) 1,000 100 10 R10000 Pentium100 i80386 i80286 i8086 1 i8080 i8008 i4004 0.1 1970 1980 1990 2000 1975 1985 1995 2005 • 30% per year Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 48 Transistor Count Growth Rate 100,000,000 Transistors 10,000,000 1,000,000 i80286 100,000 R10000 Pentium i80386 R3000 R2000 i8086 10,000 i8080 i8008 i4004 1,000 1970 1980 1990 2000 1975 1985 1995 2005 • 100 million transistors on chip by early 2000’s A.D. • Transistor count grows much faster than clock rate - 40% per year, order of magnitude more contribution in 2 decades Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 49 The future: general characteristics Description 1995 1998 2001 2004 2007 2010 Line width (mm) 0.35 0.25 0.18 0.13 0.10 0.07 Number of masks 18 20 20 22 22 24 Wafer size (mm) 200 200 300 300 400 400 Number of wiring levels 4-5 5 5-6 6 6-7 7-8 Power supply V: desktop 3.3 2.5 1.8 1.5 1.2 0.9 Power supply V: battery 2.5 1.8-2.5 0.9-1.8 0.9 0.9 0.9 Max. power dissipation/chip 80 100 120 140 160 180 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 50 The future: DRAM Description 1995 1998 2001 2004 2007 2010 Number of bits per chip 64M 256M 1G 4G 16G 64G Chip size (mm2) 190 280 420 640 960 1400 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 51 The future: high performance (mP) Description 1995 1998 2001 2004 2007 2010 Number of transistors 10M 21M 47M 108M 260M 560M Number of I/O pads 900 1350 2000 2600 3600 4800 Number of package pins 512 512 512 512 800 1024 On chip clock freq. (MHz) 300 450 600 800 1000 1100 PCB frequency (Mhz) 150 200 250 300 375 475 Chip size (mm2) 250 300 360 430 520 620 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 52 The future: ASIC Description 1995 1998 2001 2004 2007 2010 Number of transistors 9M 26M 52M 108M 275M 560M Number of I/O pads 900 1350 2000 2600 3600 4800 Number of package pins 750 1100 1700 2200 3000 4000 On chip clock freq. (MHz) 150 200 300 400 500 625 Chip size (mm2) 450 660 750 900 1100 1400 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 53 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 firma’s hebben zeer groot volume door standaardisatie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 54 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 PC’s) is de ‘gross margin’ lager (= alle kosten die niet direkt toe te schrijven zijn aan een bepaald product, zoals marketing en reklame, R&D, gebouwen, directie, winst) is de ‘average discount’ groter (= winst die de eindverkoper heeft) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 55 trends in kostprijs (vervolg) Component Costs List Price Component Cost Yolande Berbers 15% to 33% Structuur en Organisatie van Computersystemen: deel 2 slide 56 trends in kostprijs (vervolg) Component Costs Direct Costs (add 25% to 40%) recurring costs: labor, purchasing, scrap, warranty List Price Direct Cost Component Cost Yolande Berbers 6% to 8% 15% to 33% Structuur en Organisatie van Computersystemen: deel 2 slide 57 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: R&D, marketing, sales, equipment maintenance, rental, financing cost, pretax profits, taxes List Price Gross Margin Direct Cost Component Cost Yolande Berbers 34% to 39% 6% to 8% 15% to 33% Structuur en Organisatie van Computersystemen: deel 2 slide 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: R&D, 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 Avg. Selling Price Average Discount Gross Margin Direct Cost Component Cost Yolande Berbers 25% to 40% 34% to 39% 6% to 8% 15% to 33% Structuur en Organisatie van Computersystemen: deel 2 slide 59 trends in kostprijs (vervolg) 100% 80% Average Discount 60% Gross Margin 40% Direct Costs 20% Component Costs 0% Mini 5 4 W/S PC 4.7 3.5 3.8 Average Dis count 2.5 3 Gross Margin 1.8 2 Direct Cos ts 1.5 1 Component Cos ts 0 Mini Yolande Berbers W/S PC Structuur en Organisatie van Computersystemen: deel 2 slide 60 het meten en rapporteren van performantie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 61 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 62 het definiëren van performantie wat bedoelen we met ‘computer X heeft een betere performantie dan computer Y’ ? vergelijk met vliegtuigen vliegtuig passagiersdoorvoer passagierscapaciteit vliegbereik (km) vliegsnelheid (km / u) Boeing 737-100 101 1000 957 96.657 Boeing 747 470 6640 976 458.720 Concorde 132 6400 2160 285.120 DC-8-50 146 13950 870 127.020 Yolande Berbers (passagiers X km/u) Structuur en Organisatie van Computersystemen: deel 2 slide 63 het definiëren van performantie (vervolg) verschillende criteria responsetijd = uitvoeringstijd doorvoer klassiek definieert men performantie als 1 performantie_ X uitvoeringstijd _ X als X n keer sneller is dan Y: uitvoeringstijd _ Y performantie_ X n uitvoeringstijd _ X performantie_ Y termen zoals verhogen of verlagen zijn verwarrend: we zullen spreken over verbeteren en verslechteren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 64 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 programma’s om performantie te meten echte programma’s kernels spelbenchmarks synthetische benchmarks benchmark suites Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 65 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 66 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 67 het meten van performantie (vervolg) voorbeelden: Livermore Loops (eigenlijk Livermore Fortran Kernels of LFK) Yolande Berbers 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) Structuur en Organisatie van Computersystemen: deel 2 slide 68 het meten van performantie (vervolg) voorbeelden: Linpack Yolande Berbers oplossing van 100x100 lineaire vergelijking met L/U decompositie klein programma Structuur en Organisatie van Computersystemen: deel 2 slide 69 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 70 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) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 71 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 72 het meten van performantie (vervolg) SPEC: System Performance Evaluation Corporation opgericht door meer dan 20 computerfirma’s 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 1995 standaard 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 73 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 toepassingsprogramma’s Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 74 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 opgestart; gemeten wordt hoeveel processen binnen bepaalde tijd volledig uitgevoerd zijn ook geschikt voor multiprocessoren een tape met de testen kost 800 $ Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 75 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 76 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 77 verslag uitbrengen over performantie (vervolg) vergelijken van performantie: hoe combineer je informatie ? niet zo eenvoudig ! Computer A Computer B Computer C Program P1 (secs) 1 10 20 Program P2 (secs) 1000 100 20 Total time (secs) 1001 110 40 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 78 verslag uitbrengen over performantie (vervolg) totale uitvoeringstijd n Timei i 1 1 n Timei n i 1 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 100.00 20.00 0.50 0.091 0.001 gem: W(1) (secs) 500.50 55.00 20.00 gem: W(2) (secs) 91.82 18.18 20.00 gem: W(3) (secs) 2.00 10.09 20.00 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 79 verslag uitbrengen over performantie (vervolg) genormaliseerde uitvoeringstijd tov een referentiemachine: uitvoeringstijd van referentiemachine is dan 1 (per def.) gemiddelde van genormaliseerde uitvoeringstijden rekenkundig meetkundig (SPEC) n n Execution_ time_ ratioi i 1 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 0.1 1.0 2.0 0.05 0.5 1.0 P2 (secs) 1.0 0.1 0.02 10.0 1.0 0.2 50.0 5.0 1.0 Rek Gem 1.0 5.05 10.01 5.05 1.0 1.1 25.03 2.75 1.0 Geo Gem 1.0 1.0 0.63 1.0 1.0 0.63 1.58 1.58 1.0 Tot Tijd 1.0 0.11 0.04 9.1 1.0 0.36 25.03 2.75 1.0 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 80 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 81 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 82 kwantitatieve principes (vervolg) Amdahl’s 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 83 kwantitatieve principes (vervolg) performantie met gebruik van verbetering speedup performantie zonder gebruik van verbetering uitvoeringstijd zonder gebruik van verbetering speedup uitvoeringstijd met gebruik van verbetering ex. timenew = ex. timeold speeupoverall ex. timeold = ex. timenew Yolande Berbers fract. enhanced 1 fract. enhanced speedupenhanced 1 fract. enhanced 1 fract. enhanced speedupenhanced Structuur en Organisatie van Computersystemen: deel 2 slide 84 kwantitatieve principes (vervolg) voorbeeld 1 verandering = verbetering met een factor 10 wordt gebruikt 40% van de tijd speeupoveral 1 fract. enhanced 1 fract. enhanced speedupenhanced 1 1.56 0.4 1 0.4 10 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 85 kwantitatieve principes (vervolg) voorbeeld 2 FP = 50% van uitvoeringstijd van een bepaalde benchmark FPSQR = 20% van uitvoeringstijd van deze benchmark alternatief 1: extra hardware: FPSQR is 10 keer sneller alternatief 2: alle FP berekeningen 2 maal sneller 1 speedupoveral fract. enhanced 1 fract. enhanced speedupenhanced 1 speedupFPSQR 1.22 0.2 1 0.2 10 1 speedupFP 1.33 0.5 1 0.5 2.0 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 86 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 CPI = gemiddelde duur van een instructie = gemiddeld aantal klokcycli per instructie IC = aantal instructies in een prog. = Instruction Count Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 87 kwantitatieve principes (vervolg) CPU time = CPU klokcycli voor een prog. klokcyclustijd CPU klokcycli voor een prog. = klokfrequentie CPU klokcycli voor een programma CPI = IC CPU time = IC CPI klokcyclustijd IC CPI = klokfrequentie CPU performantie is dus afhankelijk van 3 factoren: aantal instructies, klokcycli per instructie, klokfrequentie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 88 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 n CPIi ICi ICi CPI = CPIi Instr. Count Instr. count i 1 vb van berekening: zie boek blz 33 i 1 Yolande Berbers n Structuur en Organisatie van Computersystemen: deel 2 slide 89 kwantitatieve principes CPU time = Seconds = Instructions x Program Program Program (X) Inst. Set. X X Yolande Berbers Cycle Inst Count CPI Clock Rate X X Technology x Seconds Instruction Compiler Organization Cycles X X X Structuur en Organisatie van Computersystemen: deel 2 slide 90 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 91 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 ? Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 92 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 instructies CPIB = 0.25 x 2 + 0.75 X 1 = 1.25 alt B heeft in totaal minder instructies uit te voeren: ICB = 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 93 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 94 geheugenhiërarchie Capacity Access Time Cost CPU Registers 100s Bytes <1 ns Cache 10s-100s K Bytes 1-10 ns $10/ MByte Main Memory M Bytes 100ns- 300ns $1/ MByte Disk 10s G Bytes, 10 ms (10,000,000 ns) $0.0031/ MByte Tape infinite sec-min $0.0014/ MByte Yolande Berbers Staging Xfer Unit Upper Level faster Registers Instr. Operands prog./compiler 1-8 bytes Cache Blocks cache cntl 8-128 bytes Memory Pages OS 512-4K bytes Files user/operator Mbytes Disk Larger Tape Lower Level Structuur en Organisatie van Computersystemen: deel 2 slide 95 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 Processor Control Speed (ns): 1s Size (bytes): 100s Yolande Berbers On-Chip Cache Registers Datapath Second Level Cache (SRAM) Main Memory (DRAM) 10s 100s Ks Ms Secondary Storage (Disk) Tertiary Storage (Disk/Tape) 10,000,000s 10,000,000,000s (10s ms) (10s sec) Gs Ts Structuur en Organisatie van Computersystemen: deel 2 slide 96 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 97 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 speedup 1 fract. enhanced 1 fract. enhanced speedupenhanced 1 5.3 0.9 1 0.9 10 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 98 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 99 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 CPUaltijd hit = CPU klokcylic + geh - stall - cycli klokcyclus = IC CPI + 0 klokcyclus = IC 2.0 klokcyclus Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 100 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) geh.-stall - cycli = IC aantal geheugenreferenties per instr. mis - frequentie kost van missing = IC 1 + 0.4 0.02 25 IC 0.7 CPUtime = (CPU klokcycli + geheugen-stall-cycli) x klokcyclus = (IC x 2.0 + IC x 0.7) x klokcyclus = 2.7 x IC x klokcyclus 2.7 IC klokcyclus performantieverbetering = 2.0 IC klokcyclus 1.35 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 101 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 Marketing’s Invention to Promote Sales IC klokfrequentie MIPS = 6 uitvoeringstijd 10 CPI 106 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) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 102 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 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 103 fouten en valstrikken (vervolg) fout: synthetische benchmarks voorspellen performantie compilers worden vaak aangepast expliciet aan veelgebruikte benchmarks eenvoudige programma’s 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 Yolande Berbers één van de programma’s van SPEC89 (matrix300) werd vaak heel specifiek geoptimiseerd andere concrete voorbeelden in het boek Structuur en Organisatie van Computersystemen: deel 2 slide 104 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 ? uitvoerings tijd na verbetering 80 sec (100 80 sec) n 80 sec 20 sec 20 sec n 80 sec 0 n Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 105 fouten en valstrikken (vervolg) fout: hardware-onafhankelijke maten voorspellen performantie vb: gebruik van grootte van programma’s 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 performantiematen: kloksnelheid, CPI, instructie-aantallen valstrik: piek-performantie gebruiken om machines te vergelijken Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 106