Parallelle systemen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 1 overzicht inleiding: wat is een parallel systeem, nood, toepassingen parallelle systemen: architecturen classificatie van parallelle architecturen parallelle architecturen die men op de markt aantreft supercomputers (= vector-computers) multiprocessoren multicomputers geavanceerde multiprocessoren: multi-threaded-architecturen en NUMA-architecturen parallelle systemen: software granulariteit performantie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 2 Inleiding Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 3 Wat is een parallel systeem? een verzameling van processing elementen die samenwerken om een groot probleem snel op te lossen belangrijke punten: Resource allocatie: hoeveel elementen? hoe krachtig zijn de elementen? hoeveel geheugen ? Data toegang, communicatie en synchronisatie hoe communiceren en synchroniseren de elementen? hoe worden gegevens doorgegeven ? welke abstracties en primitieven worden gebruikt ? Performantie en schaalbaarheid hoe vertaalt zich dat in performantie ? is het schaleerbaar ? Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 4 Inevitability of Parallel Computing Applicatievereisten: onverzadigbare nood aan rekenkracht technologietendensen aantal transistoren op een chip stijgt snel kloksnelheid stijgt minder snel architectuurtendensen Scientific computing: CFD, biologie, scheikunde, natuurkunde, ... General-purpose computing: video, graphics, CAD, databases, TP... Instruction-level parallelism is waardevol maar beperkt grover parallellisme, zoals in MPs, heeft de meeste toekomst huidige tendensen: microprocessoren van vandaag ondersteunen multiprocessoren Servers en werkstations worden MP: Sun, SGI, DEC, COMPAQ! microprocessoren van (over)morgen zijn multiprocessoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 5 Scientific Computing Demand Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 6 Engineering Computing Demand grote parallelle machines steunpilaren in vele industries Petroleum (reservoir analysis) Automotive (crash simulation, combustion efficiency) Luchtvaart (airflow analysis, motor efficiency, structural mechanics, electromagnetism) Computer-aided design Farmaceutische industrie (molecular modeling) visualisatie in al de domeinen hier boven vernoemd entertainment (films zoals Toy Story) architectuur (walk-throughs en weergave) Financial modeling (yield and derivative analysis) enz. Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 7 Applications: Speech and Image Processing 10 GIPS 1 GIPS Telephone Number Recognition 100 M IPS 10 M IP S 1 M IPS 1980 200 Words Isolated Sp eech Recognition Sub-Band Speech Coding 1985 1,000 Words Continuous Speech Recognition ISDN-CD Stereo Receiver 5,000 Words Continuous Speech Recognition HDTVReceiver CIF Video CELP Speech Coding Speaker Veri¼cation 1990 1995 • Also CAD, Databases, . . . • 100 processors gets you 10 years, 1000 gets you 20 ! Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 8 Commercial Computing steunt ook op parallellisme voor high end individuele systemen niet zo groot maar gebruikt op grotere schaal Databases, online-transaction processing, decision support, data mining, data warehousing ... TPC benchmarks (TPC-C order entry, TPC-D decision support) systemen kunnen groeien met grootte van bedrijf doorvoer wordt gebruikt om performantie te meten (transacties per minuut of tpm) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 9 TPC-C resultaten (maart 1996) 25,000 Throughput (tpmC) 20,000 Tandem Himalaya DEC Alpha SGI Pow erChallenge HP P A IBM Pow erPC Other 15,000 10,000 5,000 0 0 20 40 60 80 100 120 Number of processors Parallellisme is overal aanwezig vooral klein tot middelgrootte schaal van parallellisme Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 10 samenvatting van applicatietendensen wetenschappelijk en industriële computing is gemigreerd naar parallel computing in commercial computing is er grote vooruitgang Database en transacties, en ook financies meestal kleinere schaal vraag voor betere throughput op sequentiële workloads grootste gebruik van kleine multiprocessoren applicatienoden bestaan en zullen groter worden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 11 Technologietendensen Performance 100 Supercomputers 10 Mainframes Microprocessors Minicomputers 1 0.1 1965 1970 1975 1980 1985 1990 1995 The natural building block for multiprocessors is now also the fastest! Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 12 Phases in VLSI Generation Bit-level parallelism Instruction-level Thread-level (?) 100,000,000 How good is instruction-level parallelism? Thread-level needed in microprocessors ? 10,000,000 1,000,000 R10000 Pentium Transistors i80386 i80286 100,000 R3000 R2000 i8086 10,000 i8080 i8008 i4004 1,000 1970 Yolande Berbers 1975 1980 1985 1990 1995 Structuur en Organisatie van Computersystemen: deel 2 2000 2005 slide 13 Classificatie van parallelle architecturen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 14 waarom een classificatie ? een classificatie helpt begrijpen wat er reeds verwezenlijkt is een classificatie toont eventueel nieuwe mogelijkheden een classificatie helpt bij het formuleren van modellen van eigenschappen bv. het modelleren van performantie: een classificatie kan ons helpen begrijpen waarom bepaalde architecturen performanter zijn dan andere Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 15 we behandelen hier 4 classificaties: classificatie van Flynn (1972): meest gekende classificatie, onvoldoende om alle huidige architecturen goed in kaart te brengen classificatie van Skillicorn (1988): uitbreiding van de classificatie van Flynn classificatie van Feng: zegt iets over de graad van parallellisme dat bereikt is classificatie naar sturing van bewerkingen: zegt iets over architecturen die helemaal afstappen van het Von Neumann model Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 16 Classificatie van Flynn deze classificatie steunt erop dat parallellisme kan ingevoerd worden zowel op het niveau van de instructie-stroom als van de gegevensstroom zo krijgt men de volgende architecturen: SISD: single instruction stream - single data stream de klassieke monoprocessor SIMD: single instruction stream - multiple data stream de array-processor (\(!= vector-processor !!!) MISD: multiple instruction stream - single data stream komt niet voor MIMD: multiple instruction stream - multiple data stream de multiprocessor en de multicomputer zie figuren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 17 typische karakteristieken van SIMD en MIMD klok toepassingen parallellisme controle relatie Yolande Berbers SIMD MIMD synchroon numeriek impliciet gecentraliseerd meester/slaaf asynchroon formeel expliciet gedecentraliseerd klant/server Structuur en Organisatie van Computersystemen: deel 2 slide 18 Classificatie van Skillicorn deze classificatie brengt niet alleen in kaart het aantal instructie-processoren en data-processoren maar bekijkt ook de verbindingen tussen: de instructie- en de data-processoren de instructie-processoren en de geheugenmodules met instructies de data-processoren en de geheugenmodules met data de data-processoren onderling Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 19 Classificatie van Skillicorn (vervolg) deze verbindingen kunnen de volgende vormen aannemen: geen: er zijn geen verbindingen tussen eenheden van de ene soort en eenheden van de andere soort 1-1 of n-n: één eenheid van de ene soort is verbonden met één eenheid van de andere soort 1-n: de enige eenheid van de ene soort is verbonden met elke eenheid van de andere soort nxn: elke eenheid van de ene soort is verbonden met elke eenheid van de andere soort zie figuren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 20 Classificatie van Feng deze classificatie brengt in kaart de maximale graad van parallellisme die bereikt wordt in computerarchitecturen: dit wordt gedefinieerd als het aantal bits dat tegelijk behandeld wordt dit wordt berekend door middel van twee assen: op de horizontale as wordt de woordlengte van een architectuur uitgezet de verticale as geeft aan hoeveel bits van een zelfde positie in een woord in parallel behandeld worden – dit parallellisme kan bereikt worden – zowel via pipelining – als door middel van meerdere data-processoren zie figuur Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 21 Classificatie naar sturing van bewerkingen deze classificatie bekijkt hoe bepaald wordt welke databewerkingen uitgevoerd worden Von Neumann architecturen: een programma, dat duidelijk de volgorde van de bewerkingen beschrijft, bepaalt de databewerkingen in de architectuur komt hier altijd een programma-teller voor Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 22 Classificatie naar sturing van bewerkingen (vervolg) data-flow architecturen: die bewerkingen waarvoor de input-gegevens reeds beschikbaar zijn (van de invoer of van eerdere berekeningen) kunnen uitgevoerd worden op elk moment zijn er meestal meerdere bewerkingen die uitgevoerd kunnen worden in parallel het zijn de gegevens die de bewerkingen sturen aspecten van data-flow komen voor in moderne monoprocessoren (zie hoofdstuk 4: dynamisch schedulen van instructies) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 23 Dataflow architecturen voorstelling van programma als een grafe van afhankelijkheden Logische processor in elk knooppunt, wordt geactiveerd door beschikbaarheid van operanden Message (tokens) met tag van volgende instructie wordt verzonden naar volgende processor Tag wordt vergeleken met andere in matching store; een match vuurt een uitvoering Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 24 Dataflow Architectures 1 a = (b +1) (b c) d=ce f = a d b c e + d Dataflow graph a Netw ork f Token store Program store Waiting Matching Instruction fetch Execute Form token Netw ork Token queue Netw ork Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 25 Classificatie naar sturing van bewerkingen (vervolg) reductie architecturen: die bewerkingen die nodig zijn om het resultaat te berekenen zullen uitgevoerd worden op elk moment zijn er zo meestal meerdere bewerkingen in deze architectuur stuurt het gewenste resultaat de bewerkingen de beschrijving is zeer functioneel Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 26 Types parallelle architecturen die men op de markt treft klassieke modellen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 27 Supercomputers of vectorcomputers VOORZICHTIG!!! een vectorcomputer != een array-computer zeer complexe machines, met een onregelmatige structuur proberen verhoogd parallellisme te bereiken door het combineren van meerdere methodes: vectorregisters en vectorinstructies meerdere functionele eenheden (die elk niet alle instructies kunnen uitvoeren) met een zware pipeline door hun concentratie op vector-operaties lijken ze voor een gebruiker erg op een array-processor Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 28 Supercomputers of vectorcomputers (vervolg) vector processing: basis principes vervang DO 1 I=1,N 1 C(I) = A(I) + B(I) (N scalaire optellingen) door C(1:N) = A(1:N) + B(1:N) (1 vector optelling) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 29 Supercomputers of vectorcomputers (vervolg) Yolande Berbers uitvoeringstijd: – eenvoudige kijk op de zaak – Ts = N * t(+) – Tv = N * (t(+)/r) + setup (voor r stages) – ook rekening houden met – aantal in te lezen instructies – aantal te decoderen instructies – overhead van het beheren van de lus (nog eens N integer optellingen, N vergelijkingen en N sprongen) – inlezen van 1 vector gaat veel sneller dan N aparte getallen inlezen (er zijn vector-registers) Structuur en Organisatie van Computersystemen: deel 2 slide 30 Supercomputers of vectorcomputers (vervolg) soorten operaties: scalair (real, int, ...) rij van N scalairen unaire operaties: – f1 V -> V – f2 V -> S binaire operaties: – f3 V x V -> V – f4 V x S -> V Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 31 Supercomputers of vectorcomputers (vervolg) velden van een vector-operatie opcode voor operanden en resultaat: vector register of basis adres in het geheugen en increment vector lengte Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 32 Supercomputers of vectorcomputers (vervolg) chaining doorsturen van een resultaat van een vector-operatie naar een andere vector-pipeline die op het resultaat een tweede bewerking uitvoert voordeel: tweede maal is geen opstart tijd nodig; verder een store en load minder het parallellisme wordt meestal door de compiler toegevoegd (voor de vector-operaties) parallellisme wordt ook dynamisch toegevoegd door schedulen van instructies op verschillende functionele eenheden het gebruikte parallellisme is fijn vb. : Cray deze ideeën worden nu gebruikt in monoprocessoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 33 Raw Uniprocessor Performance: LINPACK 10,000 CRAY CRAY Micro Micro n = 1,000 n = 100 n = 1,000 n = 100 1,000 T94 LINPACK (MFLOPS) C90 100 DEC 8200 Ymp Xmp/416 IBM Pow er2/990 MIPS R4400 Xmp/14se DEC Alpha HP9000/735 DEC Alpha AXP HP 9000/750 CRAY 1s IBM RS6000/540 10 MIPS M/2000 MIPS M/120 Sun 4/260 1 1975 Yolande Berbers 1980 1985 1990 1995 Structuur en Organisatie van Computersystemen: deel 2 2000 slide 34 Multiprocessoren multiprocessoren = MIMD-machine met gedeeld geheugen M1 ... M0 Mn interconnectienetwerk homogeen van structuur P0 symmetrisch van structuur P1 (alle knooppunten hebben gelijkaardige rol) maken gebruik van standaard componenten ... Pn zijn daarom ook veel goedkoper dan een supercomputer granulariteit van parallellisme : middelmatig (niet ontzettend fijn, ook niet grof) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 35 Multiprocessoren (vervolg) lineaire versnelling wordt nooit bereikt extra kost door synchronisatie extra kost door niet perfect gespreide belasting niet elk programma is 100% parallelliseerbaar de architectuur kan niet zomaar uitgebreid worden naar meer processoren: de bereikbaarheid van het geheugen door alle processoren (via een bus bv.) is altijd een bottleneck daarom NUMA -architecturen: zie verder een lokale cache wordt soms voorzien om het bottleneckprobleem gedeeltelijk te verhelpen, maar de caches moeten consistent gehouden worden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 36 voor- en nadelen van multiprocessoren voordelen geen nieuw programmeringsmodel: gemakkelijk efficiënte communicatie: kopiëren niet nodig nadelen synchronisatie moeilijker dan via boodschappen is niet uitbreidbaar op grote schaal door onderlinge strijd om het geheugen (memory contention) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 37 Architectural Trends: Bus-based MPs microcomputer op een chip maakt het gemakkelijk om vele te verbinden met gedeeld geheugen domineert de server en de ondernemingsmarkt, er is een tendens naar omlaag, naar de desktop computers (krachtige werkstations) verzadiging van bus drijft deze technologie vooruit orde van grote van bus-gebaseerde systemen van desktop tot grote servers: zie volgende twee slides Yolande Berbers No. of processors in fully configured Structuur en Organisatie van Computersystemen: commercial shared-memory systems deel 2 slide 38 Architectural Trends: Bus-based MPs 70 CRAY CS6400 Sun E10000 60 Number of processors 50 40 SGI Challenge 30 Sequent B2100 Symmetry81 SE60 Sun E6000 SE70 Sun SC2000 20 AS8400 Sequent B8000 Symmetry21 SE10 10 Pow er SGI Pow erSeries 0 1984 1986 SC2000E SGI Pow erChallenge/XL 1988 SS690MP 140 SS690MP 120 1990 1992 SS1000 SE30 SS1000E AS2100 HP K400 SS20 SS10 1994 1996 P-Pro 1998 Yolande Berbers No. of processors in fully configured Structuur en Organisatie van Computersystemen: commercial shared-memory systems deel 2 slide 39 Bus Bandwidth 100,000 Sun E10000 Shared bus bandwidth (MB/s) 10,000 SGI Sun E6000 Pow erCh AS8400 XL CS6400 SGI Challenge HPK400 SC2000E AS2100 SC2000 P-Pro SS1000E SS1000 SS20 SS690MP 120 SE70/SE30 SS10/ SS690MP 140 SE10/ 1,000 SE60 Symmetry81/21 100 SGI Pow erSeries Pow er Sequent B2100 Sequent B8000 10 1984 Yolande Berbers 1986 1988 1990 1992 1994 1996 Structuur en Organisatie van Computersystemen: deel 2 1998 slide 40 Multicomputers multicomputers = MIMD-machine met gespreid geheugen zijn ook homogeen van structuur M0 P0 M1 P1 ... Mn Pn interconnectienetwerk Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 41 Multicomputers (vervolg) zijn meestal niet symmetrisch, doordat de interconnectie van de processoren meestal niet volledig is (niet alle processoren zijn met alle processoren verbonden) multicomputers maken gebruik van standaard componenten processoren kunnen dus "ver" of "dichtbij" zijn, men spreekt ook eventueel van "buren" de communicatie-kost is dan niet gelijk tussen elk willekeurig paar knooppunten ze zijn daarom ook veel goedkoper dan een supercomputer granulariteit van parallellisme: grof Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 42 Multicomputers (vervolg) spreiding van belasting is hier moeilijker dan bij multiprocessoren omdat de code en de hele adresruimten van processen lokaal zijn de architectuur (afhankelijk van de interconnecties) kan gemakkelijk uitgebreid worden tot zeer veel knooppunten (MPP) grote machines bieden vaak "space-sharing": meerdere toepassingen kunnen in parallel lopen; elke toepassing krijgt een fysisch afgebakend deel van de machine door ‘distributed shared memory’ (DSM) kan men op multicomputer werken zoals op multiprocessoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 43 voor- en nadelen van multicomputers voordelen processoren werken meestal met lokaal geheugen netwerk minder belast architectuur uitbreidbaar op grote schaal (MPP) geen ingewikkelde synchronisatie nodig nadelen belastingsspreiding is absoluut noodzakelijk communicatie met boodschappen: deadlock-gevaar Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 44 Raw Parallel Performance: LINPACK 10,000 MPP peak CRAY peak ASCI Red LINPACK (GFLOPS) 1,000 Paragon XP/S MP (6768) Paragon XP/S MP (1024) T3D CM-5 100 T932(32) Paragon XP/S CM-200 CM-2 Ymp/832(8) 1 C90(16) Delta 10 iPSC/860 nCUBE/2(1024) Xmp /416(4) 0.1 1985 1987 1989 1991 1993 1995 1996 • Even vector Crays became parallel: X-MP (2-4) Y-MP (8), C-90 (16), T94 (32) • Since 1993, Cray produces MPPs too (T3D, T3E) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 45 500 Fastest Computers 350 Number of systems 300 187 110 106 100 0 11/93 63 11/94 MPP PVP SMP 198 150 50 Yolande Berbers 284 239 250 200 319 313 11/95 106 73 11/96 Structuur en Organisatie van Computersystemen: deel 2 slide 46 Types parallelle architecturen die men op de markt treft geavanceerde modellen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 47 uitdaging uitdaging: verhogen uitbreidbaarheid multiprocessoren aangepast interconnectie netwerk lokale caches voorzien data in cache aanwezig: geen beroep op netwerk klassiek gebruik van lokaliteitprincipe probleem indien zelfde data in meerdere caches aanwezig is: cachecoherentie-probleem fysische implementatie zoals multicomputers ‘virtueel gedeeld geheugen’ of ‘gedistribueerd gedeeld geheugen’ (DSM) lokale geheugens zijn componenten van globale adresruimte Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 48 classificatie van DSM Non-uniform Memory Access machines Cache-Coherent Non-Uniform Memory Access machines Cache-Only Memory Access machines Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 49 P1 P0 ... M1 M0 Pn Mn interconnectienetwerk P0 C0 P1 P0 C0 M0 ... M1 C1 ... Pn Cn interconnectienetwerk Pn C1 P1 Cn Mn interconnectienetwerk Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 50 problemen bij uitbreidbare computers tolereren en verbergen van wachttijd (a) bij het laden van niet-lokale gegevens (b) bij het synchroniseren tussen processen mogelijke oplossingen voor (a) caches prefetching mogelijke oplossingen voor (a) en (b) gebruik van threads en zeer snelle contextwisselingen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 51 Multi-Threaded Architecturen basisprincipes gebaseerd op uitvoeren van vele threads per node contextswitch – is logisch gelijk aan de klassieke contextswitch – moet veel sneller zijn dan wachten op niet-lokale gegevens – synchronisatie moet snel herkend worden threads hebben hele fijne granulariteit contextswitch is hardware ondersteund Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 52 multi-threaded architecturen alternatieven voor verwezenlijking bewerkingsmodel volledig von Neuman (control flow) hybride von Neuman / dataflow granulariteit heel fijn: meerdere threads delen de pipeline – leunt meer aan bij dataflow minder fijn: slechts 1 thread voert uit – leunt meer aan bij control flow Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 53 multi-threaded architecturen alternatieven voor verwezenlijking (vervolg) geheugenorganisatie » gedeeld, NUMA, CC-NUMA aantal threads per processor » klein (4-10), middelmatig (10-100), groot (>100) voorbeelden HEP, Tera, MIT Alewife (CC-NUMA): control flow *T, SAM, MIT Hybrid machine, EM-4: dataflow Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 54 Multicomputer MPP kenmerken processoren enkel toegang tot lokaal geheugen communicatie met boodschappen uitdaging tov communicatie: goede opsplitsing van probleem in processen goede verdeling van processen over knopen NP-compleet belastingspreiding is noodzakelijk machines populair voor problemen die veel parallellisme bevatten (MPP) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 55 Multicomputer MPP alternatieven voor verwezenlijking interconnectienetwerk » topologie, switching techniek, routeringsprotocol » meerdere generaties knoop-organisatie » processor + comm. co-processor + router » meerdere generaties type processoren: bestaande of speciaal ontworpen processoren gewone of vectorprocessoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 56 Multicomputer MPP alternatieven voor verwezenlijking (vervolg) bewerkingsmodel conventioneel + communicatiebibliotheken CSP dataflow voorbeelden iPSC/1, iPSC/2, Ametek, Intel Paragon, IBM SP2, Parsytec GC/PowerPlus, Transtech Paramid nCUBE, Meiko CS-2 Transputer, Parsys Supernode, Parsytec Gigacube Caltech Mosaic 2, J-Machine Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 57 MIMD met gedeeld geheugen alternatieven voor verwezenlijking interconnecties cache coherence snoopy directory-schema hiërarchisch software-gebaseerd synchronisatie consistentiemodel UMA, NUMA, CC-NUMA en COMA Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 58 alternatieven voor verwezenlijking fysische organisatie van logisch gedeeld geheugen fysisch gedeeld geheugen: UMA virtueel of gedistribueerd gedeeld geheugen (DSM): » NUMA, CC-NUMA, COMA interconnectienetwerk gedeeld medium (single bus, multiple bus) switching netwerken (crossbar, multistage) cache-coherence protocol hardware-gebaseerd software-gebaseerd Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 59 interconnectienetwerken: bussen enkelvoudige bus elke knoop en elke geheugenmodule aan bus broadcast is eenvoudig eenvoudig, goedgekend, goedkoop gevaar voor verzadiging: daarom niet geschikt voor groot systeem meervoudige bus: 1-dimensionaal meerdere bussen in parallel elke knoop en geheugenmodule aan elke bus Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 60 interconnectienetwerken: bussen meervoudige bus: 2- of 3-dimensionaal bussen zijn georganiseerd in een rooster verschillende manieren om knopen en geheugenmodules aan bussen te hangen hiërarchisch systeem meerdere enkelvoudige bus-systemen (clusters) clusters verbonden door enkelvoudige bus recursief zijn meerdere niveaus mogelijk goedkoop Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 61 Voorbeeld van hiërarchisch systeem Yolande Berbers Sequent NUMA-Q 2000 Structuur en Organisatie van Computersystemen: deel 2 slide 62 interconnectienetwerken: switching crossbar gelijktijdige toegang mogelijk van elke processor met een geheugenmodule (hoge bandbreedte) gebruikt zeer vele switchen, is dus zeer duur multistage compromis tussen enkelvoudige bus en crossbar variaties in kost, complexiteit, bandbreedte zeer veel verschillende soorten Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 63 Cache coherence oorsprong van probleem delen van wijzigbare gegevens (belangrijkst) procesmigratie in- en uitvoer verschillende hardware protocols afhankelijk van memory update policy cache coherence policy interconnectieschema Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 64 cache coherence: algemeen memory update policy write-through policy (gulzig) bij write op cache wordt geheugen aangepast gebruikt veel bandbreedte erg nadelig bij geheugen dat niet gedeeld wordt write-back policy (lui) geheugenaanpassing later andere aanvraag voor zelfde blok: blok moet uit aangepaste cache komen maakt cache controllers ingewikkelder Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 65 cache coherence: algemeen cache coherence policy write-update policy (gulzig) bij write worden alle copies aangepast gebruikt veel bandbreedte write-invalidate policy (lui) bij write worden de andere copies ongeldig Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 66 cache coherence: algemeen interconnectieschema broadcast mogelijk (enkelvoudige bus) » snoopy cache protocol hiërarchisch bussysteem » hiërarchisch cache coherence protocol multistage » directory-schema’s – volledige tabellen (full-map) – beperkte tabellen (limited directories) – gelinkte tabellen (chained directories) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 67 snoopy cache protocol basisprincipes (voor write-update) mogelijke toestanden per blok in een cache exclusief en geldig gedeeld exclusief en vuil alle consistentiecommando’s worden ge-broadcast Read-Blk, Write-Blk, Update-Blk iedere processor ziet deze (snoops) eindige toestandsmachine beschrijft veranderingen in toestand (zie volgende slide) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 68 snoopy cache protocol (vervolg) P-Read P-Write P-Read P-Read P-Read P-Write Read-Blk/Write-Blk exclusief gedeeld Read-Blk Write-Blk Update-Blk geldig P-Write Read-Blk/Write-Blk P-Read, P-Write: opdrachten gegeven vanuit eigen processor exclusief Read-Blk, Write-Blk, Update-Blk: consistentiecommando’s die op de bus verschijnen Yolande Berbers vuil P-Read P-Write Structuur en Organisatie van Computersystemen: deel 2 slide 69 directory schema’s basisprincipes consistentie commando’s enkel gestuurd naar caches waar een copie van blok zit bijhouden per blok hoofdgeheugen waar gecached is afhankelijk van organisatie van directory volledige tabel beperkte tabel gelinkte tabel maakt een verschil in geheugen nodig om directory bij het houden aantal consistentie commando’s nodig Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 70 directory schema’s (vervolg) volledige tabel directory wordt bijgehouden in gedeeld geheugen per blok: boolean per cache (blok in cache of niet) in elke cache: twee bits per blok geldig write-toelating beperkte tabel gebruikt minder geheugen logisch gezien gelijkaardig aan volledige tabel ipv bits: volledige pointers maximum aantal pointers voorzien Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 71 directory schema’s (vervolg) gelinkte tabel compromis tussen vorige twee: minder geheugen als volledige tabel heeft geen last als teveel pointers pointer maakt deel uit van blok in cache voorbeeld uitwerking: Scalable Coherent Interface (SCI) IEEE standard 1992 meer dan 30 verschillende toestanden ! Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 72 hiërarchisch CC-protocol bij hiërarchische meervoudige bussen basisprincipe: elke processor in een cluster heeft een cache elke cluster heeft een supercache een blok dat in minstens 1 cache van een cluster zit moet ook in de supercache zitten op elk niveau wordt een variante van het snoopy protocol gebruikt Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 73 hiërarchisch CC-protocol (vervolg) Main Memory C20 C 0 P0 Yolande Berbers C 1 P1 C21 C 2 P2 C 3 P3 C 4 P4 C22 C 5 P5 C 6 P6 Structuur en Organisatie van Computersystemen: deel 2 C 7 P7 C 9 P8 slide 74 software-gebaseerde protocols geen hardware-ondersteuning nodig wel compiler-ondersteuning nodig classificatie van variabelen in 4 klassen read-only read-only voor meerdere processen maar write-only voor slechts 1 proces read-write voor slechts 1 proces read-write voor meerdere processen verdeling in klassen per programmaonderdeel bv per lus na elke lus wordt cache ongeldig (kan selectief) Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 75 synchronisatie hardware-ondersteuning voor synchronisatie-routines probleem: synchronisatie komt veel voor synchronisatie op een lock-variabele door meerdere processen: hot-spot klassieke test&set zeer inefficiënt while (exchange(lock, CLOSED) == CLOSED); Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 76 synchronisatie (vervolg) oplossingen bij bus-gebaseerde systemen snooping lock while (exchange(lock, CLOSED) == CLOSED) while (*lock == CLOSED) test-and-test&set volgorde omdraaien: eerst lezen eventueel een random delay toevoegen queue lock: een lijst van wachtenden slechts 1 wordt verwittigd als lock vrij komt Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 77 synchronisatie (vervolg) oplossingen bij grote systemen fetch&add (x, a) telt a bij x op en geeft oude waarde van x terug optelling gebeurt in geheugenmodule eventueel zelfs in switchen van multistage lijst-gebaseerde lock Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 78 consistentiemodellen consistentiemodel: interface programmeur/systeem sequentiële consistentie meest intuïtieve niet evident in NUMA-machines niet-atomaire geheugentoegangen invalideren van caches niet overal tegelijk laat een aantal optimisaties niet toe (bv prefetching, later wegschrijven) zwakkere vormen van consistentie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 79 consistentiemodellen (vervolg) zwakkere vormen van consistentie uitgangspunt sequentiële consistentie niet echt nodig meeste programma’s synchroniseren expliciet meerdere modellen weak consistency model – datatoegang tussen synchronisatie mag uit volgorde gebeuren release consistency model – laat nog meer overlapping toe Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 80 consistentiemodellen (vervolg) implementatie van consistentiemodellen gebruik van ‘hekken’ (fences) in verschillende vormen hek zorgt ervoor dat alle writes werkelijk overal gebeurt zijn werkt met gebruik van tellers SCI ondersteunt zowel weak consistency als release consistency Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 81 -systemen zeer geschikt voor het bouwen van kleine performante multiprocessoren met enkelvoudige bus kostprijs is heel redelijk niet uitbreidbaar tot grote aantallen voorbeelden Encore Multimax, SGI Challenge Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 82 -systemen goed uitbreidbaar kwetsbaar tov plaatsing van gegevens geen caches ondersteunen vaak zowel programmeren met gedeeld geheugen communicatie via boodschappen voorbeelden BBN TC2000, IBM RP3, Cray T3D Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 83 -systemen goed uitbreidbaar momenteel interessantste architectuur voor grote algemeen bruikbare parallelle systemen verschillen in interconnectienetwerk cachecoherentieprotocol voorbeelden Dash, Flash, Convex Exemplar, Sequent Numa-Q 2000, Silicon Graphics Origin2000 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 84 CC-NUMA Quad = 4 Pentium Pro 180 Mhz, 512KB L2 512MB-4GB memory 7 PCI I/O slots (133MB/s) IQ-link= 1 Gbyte/sec ring, 32MB-128MB Fast Cache CC-NUMA P6 P6 P6 P6 1-4 GB Mem 0-7 I/O Adapters IQ-Link 500 MB/s P6 P6 P6 P6 1-4 GB Mem 0-7 I/O Adapters IQ-Link 500 MB/s P6 P6 P6 P6 1-4 GB Mem 0-7 I/O Adapters IQ-Link 500 MB/s 1GB/s link 1GB/s link 1GB/s link Zes adres-bits begrenzen aantal Quads op 63 (252 processoren) IQ-Link is geen bus. Over de ring kunnen gelijktijdig meerdere transfers plaatsvinden CC-NUMA CPU CPU CPU CPU Memory Data Pump IQ-LINK PCI I/O PCI Bus PCI I/O PCI Bus SCLIC Remote Cache and Cache State/Tags Memory Directory 4 x SMP System Bus OBIC PCI Bridge EISABus EISA P6 Bus PCI/EISA Bridge PCI I/O PCI I/O PCI I/O PCI I/O PCI I/O MDC -systemen goed uitbreidbaar allocatie van gegevens is statisch niet nodig gebeurt dynamisch, vraag-gestuurd analoge cachecoherentieprotocols als bij CC-NUMA voorbeelden Data Diffusion Machine, KSR1 Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 88 trends naar de toekomst toe convergentie van de drie trends binnen MIMD multi-threaded architecturen systemen met gedistribueerd geheugen systemen met gedeeld geheugen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 89 Applicatiesoftware voor parallelle systemen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 90 typische problemen simuleren van de stromingen in de oceanen simuleren van de evolutie van de sterren-galaxies onregelmatige structuur, scientific computing weergeven van scènes door middel van ray tracing regelmatige structuur, scientific computing onregelmatige structuur, computer graphics data mining onregelmatige structuur, information processing wordt hier niet besproken Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 91 simulatie van oceaanstromen (a) doorsneden (b) ruimtelijke discretisatie van een doorsnede modelleren als twee-dimensionale roosters discretiseren in ruimte en in tijd hoe fijner ruimtelijke en temporele resolutie: hoe accurater veel verschillende berekeningen per tijdsstap het opzetten en het oplossen van vergelijkingen concurrency over en in de rooster berekeningen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 92 simulatie van galaxy-evolutie simulatie van de interacties tussen miljoenen sterren die evolueren m1m2 het berekenen van de krachten is duur 2 r O(n2) met brute kracht aanpak hiërarchische methode gebaseerd op wet van krachten: G Star on w hich forc es are being computed Star too close to approximate veel Yolande Berbers Large group far enough aw ay to approximate Small gr oup far enough aw ay to approximate to center of mass tijdsstappen, veel concurrency over de sterren bij elke tijdsstap Structuur en Organisatie van Computersystemen: deel 2 slide 93 weergave van scènes door Ray Tracing stuur stralen in de scène door de pixels in het beeldvlak volg hun paden de stralen weerkaatsen als ze objecten tegenkomen ze genereren nieuwe stralen: een stralenboom per invoerstraal dit resulteert in kleur en “opacity” voor dat pixel er is parallellisme tussen de stralen al deze voorbeelden hebben overvloedige concurrency Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 94 creëren van een parallel programma veronderstelling: een sequentieel algoritme is gegeven soms is een erg verschillend algoritme nodig, hier niet ter sprake creëren van een parallel programma bestaat uit: identificatie van het werk dat in parallel kan gebeuren partitionering van werk en van gegevens over processen beheer van toegang tot gegevens, communicatie en synchronisatie Note: werk = zowel berekeningen als toegang tot gegevens als I/O hoofddoel: Speedup, kleine programmeringsinspanning, Performance(p) laag middelengebruik Performance(1) Speedup (p) = voor een vast probleem: Yolande Berbers Time(1) Time(p) Speedup (p)en=Organisatie van Computersystemen: deel 2 Structuur slide 95 stappen bij creëren van // programma Partitioning D e c o m p o s i t i o n Sequential computation A s s i g n m e n t Tasks p0 p1 p2 p3 Processes O r c h e s t r a t i o n p0 p1 p2 p3 M a p p i n g P0 P1 P2 P3 Parallel program Processors 4 stappen: decompositie, toekenning, orkestratie, mapping door programmeur of door systeemsoftware (compiler, runtime, ...) issues zijn dezelfde, dus veronderstellen we door de programmeur Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 96 enkele belangrijke concepten taak: arbitrair deel van het werk van een parallelle berekening taak sequentieel uitgevoerd: enkel concurrency tussen taken vb: cel in Barnes-Hut, straal of groep van stralen bij ray tracing taken kunnen een fijne of een grovere granulariteit hebben proces (thread): abstracte entiteit die de toegekende taken uitvoert communiceert en synchroniseert om toegekende taken uit te voeren processor: fysische entiteit op dewelke processen uitvoeren processen virtualiseren een machine voor de programmeur eerst schrijft men een programma in termen van processen daarna worden de processen toegekend aan processoren Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 97 decompositie splits de bewerkingen op in taken die toegekend kunnen worden aan processen taken kunnen statisch en/of dynamisch gecreëerd worden aantal taken kan variëren in de tijd identificeer de concurrency en bepaal op welk niveau je deze wil gebruiken doelstelling: genoeg taken om de processen bezig te houden, maar ook niet te veel aantal taken op een bepaald tijdstip is een bovenlimiet voor de te bereiken speedup Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 98 beperkte concurrency: wet van Amdahl fundamentele limiet op parallelle speedup stel fractie s van seq uitvoering is inherent serieel, speedup <= 1/s voorbeeld: berekening in 2 fasen ga over nxn rooster en doe een onafhankelijke berekening ga nogmaals over rooster en vorm som met berekende waarden tijd voor fase één = n2/p fase twee is geserialiseerd door globale variabele, tijd = n2 2n2 speedup <= of maximaal 2 n2 + n2 p methode om speedup te krijgen: verdeel fase 2 in 2 kleinere stappen accumuleer som in deelsommen in elke processor 2pn2 tel alle deelsommen op 2n2 + p2 parallelle tijd is n2/p + n2/p + p, en speedup maximaal Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 99 illustratie van voorbeeld (a) 1 work done concurrently n2 n2 p (b) 1 n2/p n2 p (c) 1 Time n2/p n2/p p Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 100 concurrency profiles niet eenvoudig om programma te verdelen in serieel en parallel deel 1,400 vb: 1,200 Concurrency 1,000 800 600 400 733 702 662 633 589 564 526 504 483 444 415 380 343 313 286 247 219 0 150 200 Clock cycle number opp onder curve is totaal werk, of tijd op 1 processor horizontale as geeft minimum tijd die nodig is wet van Amdahl is geldig op elke overhead, niet alleen op concurrency Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 101 toekenning bepaal mechanisme om werk te verdelen over de processen vb. welke processen berekenen welke krachten op welke sterren dit wordt samen met decompositie ook wel partitionering genoemd spreid de belasting, minimaliseer de communicatie en het beheer gestructureerde aanpakken werken meestal goed code inspectie (parallelle lussen) of inzicht in toepassing gekende heuristieken statische versus dynamische toekenning voor programmeurs is partitionering belangrijke taak meestal onafhankelijk van onderliggende architectuur of programmeringsmodel kost en complexiteit van primitieven hebben soms invloed Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 102 orkestratie belangrijke elementen die meespelen bij orkestratie naamgeving van gegevens structurering van communicatie synchronisatie organisatie gegevensstructuren en scheduling tijdelijke taken doelstellingen minimaliseer communicatie- en synchronisatiekosten in processoren kies gegevensstructuur ifv lokaliteit van gegevenstoegang schedule de taken zodat afhankelijkheden eerst aan bod komen minimaliseer overhead van beheer van parallellisme staat dicht bij architectuur, programmeringsmodel en taal keuzes hangen af van communicatieabstracties en efficiëntie van primitieven architecten moeten de gepaste primitieven efficiënt aanbieden Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 103 mapping na de orkestratie heb je al een parallel programma twee aspecten bij mapping: welke processen voeren uit op zelfde processor welk proces voert uit op welke processor mapping op een bepaalde netwerk topologie één extreem: space-sharing machine verdeeld in subsets, één toepassing per subset processen worden toegekend aan processors, of gelaten voor OS ander extreem: volledige resource management door OS meestal ergens tussen de twee OS doet aan dynamische belastingsspreiding gebruiker kan directieven geven, OS kan deze negeren normaal gezien: proces <-> processor Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 104 parallellisering van bewerkingen vs. Data vorige slides concentreren zich op bewerkingen en niet op data bewerkingen worden gedecomposeerd en toegekend (partitioneerd) Partitionering van data is vaak ook een natuurlijke manier bewerkingen volgen de data: eigenaar berekent rooster voorbeeld, data mining, High Performance Fortran (HPF) dit heet “data-parallellisme” data-parallellisme is niet algemeen genoeg datatoegang en communicatie maakt deel uit van orkestratie Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 105 doelstellingen High performance (speedup over sequential program) Table 2.1 Steps in the Parallelization Process and Their Goals ArchitectureDependent? Major Performance Goals Decomposition Mostly no Expose enough concurrency but not too much Assignment Mostly no Balance workload Reduce communication volume Orchestration Yes Reduce noninherent communication via data locality Reduce communication and synchr onization cost as seen by the processor Reduce serialization at shared resources Schedule tasks to satisfy dependences early Mapping Yes Put related processes on the same pr ocessor if necessary Exploit locality in network topology Step Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 106 Granulariteit van parallellisme en uitwerking Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 107 Transparante vormen van parallellisme Soort parallellisme granulariteit elektrische signalen uiterst fijn interregister-transfers, uiterst fijn lezen uit het geheugen, prefetch van instructies verantwoordelijkheid en uitvoering hardware hardware pipelining gevectoriseerde instr. uiterst fijn zeer fijn meerdere pipelines (in superscalaire processoren) zeer fijn compiler en hardware hardware, parallelliserende compiler en ev. toepassingsprogrammeur (op supercomputers) compiler en hardware Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 108 Niet-transparante vormen van parallellisme Soort parallellisme granulariteit threads fijn (subprocessen, taken) (vaak op multiprocessoren) verantwoordelijkheid en uitvoering besturingssysteem en toepassingsprogrammeur nauw-samenwerkende grof processen (op multicomputers en op multiprocessoren) besturingssysteem en toepassingsprogrammeur los-samenwerkende zeer grof (middleware) processen (in wide area networks) Yolande Berbers laag boven besturingssysteem en toepassingsprogrammeur Structuur en Organisatie van Computersystemen: deel 2 slide 109 Performantie van parallelle systemen Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 110 Performantie van parallelle systemen vaak interesse in hoeveel sneller is een bepaalde parallelle machine vergeleken met een sequentiële machine dit is afhankelijk van het programma dat men draait ! de versnelling (speedup) wordt gedefinieerd als speedup = uitvoeringstijd op 1 processor / uitvoeringstijd op n processoren s = T(1) / T(n) de ideale versnelling die men kan bekomen met n processoren is n Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 111 Performantie (vervolg) een speedup van n wordt nooit bekomen omdat niet alle code parallelliseerbaar is de code die parallelliseerbaar is kan niet altijd continu alle middelen bezig houdt (belastingspreiding !) bij de code die wel parallelliseerbaar is men extra overhead moet rekenen voor synchronisatie sommige hulpmiddelen in het systeem toch schaars zijn t.o.v. andere I/O vaak niet parallel verloopt er vaak vertrokken wordt van de sequentiële code die niet herdacht is Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 112 Performantie (vervolg) de efficiëntie wordt gedefinieerd als als de efficiëntie dicht bij 1 ligt dan gebruik je de hardware zeer goed regel van Minsky (zou gelden voor grote n): e = T(1) / n*T(n) = s / n s <= log2 n (zonder bewijs) zie grafiek met verschillende versnellings-curve Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 113 Performantie (vervolg) wet van Amdahl: T(n) = Ts + Tn / n Ts is de tijd die besteed wordt aan code die intrinsiek serieel Tn is de tijd die parallelliseerbaar is T(1) = Ts + Tn de wet van Amdahl zegt dat er altijd een deel van de code niet parallelliseerbaar is andere regel, afgeleid uit de wet van Amdahl – s <= n / ln n Yolande Berbers Structuur en Organisatie van Computersystemen: deel 2 slide 114