De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Parallelle systemen.

Verwante presentaties


Presentatie over: "Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Parallelle systemen."— Transcript van de presentatie:

1 slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Parallelle systemen

2 slide 2Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers overzicht n inleiding: wat is een parallel systeem, nood, toepassingen n parallelle systemen: architecturen u classificatie van parallelle architecturen u parallelle architecturen die men op de markt aantreft l supercomputers (= vector-computers) l multiprocessoren l multicomputers u geavanceerde multiprocessoren: multi-threaded-architecturen en NUMA-architecturen n parallelle systemen: software n granulariteit n performantie

3 slide 3Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Inleiding

4 slide 4Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Wat is een parallel systeem? n een verzameling van processing elementen die samenwerken om een groot probleem snel op te lossen n belangrijke punten: u Resource allocatie: l hoeveel elementen? l hoe krachtig zijn de elementen? l hoeveel geheugen ? u Data toegang, communicatie en synchronisatie l hoe communiceren en synchroniseren de elementen? l hoe worden gegevens doorgegeven ? l welke abstracties en primitieven worden gebruikt ? u Performantie en schaalbaarheid l hoe vertaalt zich dat in performantie ? l is het schaleerbaar ?

5 slide 5Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Inevitability of Parallel Computing n Applicatievereisten: onverzadigbare nood aan rekenkracht u Scientific computing : CFD, biologie, scheikunde, natuurkunde,... u General-purpose computing : video, graphics, CAD, databases, TP... n technologietendensen u aantal transistoren op een chip stijgt snel u kloksnelheid stijgt minder snel n architectuurtendensen u Instruction-level parallelism is waardevol maar beperkt u grover parallellisme, zoals in MPs, heeft de meeste toekomst n huidige tendensen: u microprocessoren van vandaag ondersteunen multiprocessoren u Servers en werkstations worden MP: Sun, SGI, DEC, COMPAQ! u microprocessoren van (over)morgen zijn multiprocessoren

6 slide 6Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Scientific Computing Demand

7 slide 7Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Engineering Computing Demand n grote parallelle machines steunpilaren in vele industries u Petroleum (reservoir analysis) u Automotive (crash simulation, combustion efficiency) u Luchtvaart (airflow analysis, motor efficiency, structural mechanics, electromagnetism) u Computer-aided design u Farmaceutische industrie (molecular modeling) u visualisatie l in al de domeinen hier boven vernoemd l entertainment (films zoals Toy Story) l architectuur (walk-throughs en weergave) u Financial modeling (yield and derivative analysis) u enz.

8 slide 8Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Applications: Speech and Image Processing Also CAD, Databases, processors gets you 10 years, 1000 gets you 20 !

9 slide 9Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Commercial Computing n steunt ook op parallellisme voor high end u individuele systemen niet zo groot u maar gebruikt op grotere schaal n Databases, online-transaction processing, decision support, data mining, data warehousing... n TPC benchmarks (TPC-C order entry, TPC-D decision support) u systemen kunnen groeien met grootte van bedrijf u doorvoer wordt gebruikt om performantie te meten (transacties per minuut of tpm )

10 slide 10Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers TPC-C resultaten (maart 1996) n Parallellisme is overal aanwezig n vooral klein tot middelgrootte schaal van parallellisme

11 slide 11Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers samenvatting van applicatietendensen n wetenschappelijk en industriële computing is gemigreerd naar parallel computing n in commercial computing is er grote vooruitgang u Database en transacties, en ook financies u meestal kleinere schaal n vraag voor betere throughput op sequentiële workloads u grootste gebruik van kleine multiprocessoren n applicatienoden bestaan en zullen groter worden

12 slide 12Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Technologietendensen The natural building block for multiprocessors is now also the fastest!

13 slide 13Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Phases in VLSI Generation n How good is instruction-level parallelism? n Thread-level needed in microprocessors ?

14 slide 14Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie van parallelle architecturen

15 slide 15Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers waarom een classificatie ? n een classificatie helpt begrijpen wat er reeds verwezenlijkt is n een classificatie toont eventueel nieuwe mogelijkheden n 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

16 slide 16Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers we behandelen hier 4 classificaties: n classificatie van Flynn (1972): meest gekende classificatie, onvoldoende om alle huidige architecturen goed in kaart te brengen n classificatie van Skillicorn (1988): uitbreiding van de classificatie van Flynn n classificatie van Feng: zegt iets over de graad van parallellisme dat bereikt is n classificatie naar sturing van bewerkingen: zegt iets over architecturen die helemaal afstappen van het Von Neumann model

17 slide 17Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie van Flynn n deze classificatie steunt erop dat parallellisme kan ingevoerd worden zowel op het niveau van de instructie-stroom als van de gegevensstroom n zo krijgt men de volgende architecturen: u SISD: single instruction stream - single data stream l de klassieke monoprocessor u SIMD: single instruction stream - multiple data stream l de array-processor (\(!= vector-processor !!!) u MISD: multiple instruction stream - single data stream l komt niet voor u MIMD: multiple instruction stream - multiple data stream l de multiprocessor en de multicomputer n zie figuren

18 slide 18Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers typische karakteristieken van SIMD en MIMD SIMDMIMD kloksynchroonasynchroon toepassingennumeriekformeel parallellismeimplicietexpliciet controlegecentraliseerdgedecentraliseerd relatiemeester/slaafklant/server

19 slide 19Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie van Skillicorn n deze classificatie brengt niet alleen in kaart het aantal instructie-processoren en data-processoren maar bekijkt ook de verbindingen tussen: u de instructie- en de data-processoren u de instructie-processoren en de geheugenmodules met instructies u de data-processoren en de geheugenmodules met data u de data-processoren onderling

20 slide 20Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie van Skillicorn (vervolg) n deze verbindingen kunnen de volgende vormen aannemen: u geen: er zijn geen verbindingen tussen eenheden van de ene soort en eenheden van de andere soort u 1-1 of n-n: één eenheid van de ene soort is verbonden met één eenheid van de andere soort u 1-n: de enige eenheid van de ene soort is verbonden met elke eenheid van de andere soort u nxn: elke eenheid van de ene soort is verbonden met elke eenheid van de andere soort n zie figuren

21 slide 21Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie van Feng n deze classificatie brengt in kaart de maximale graad van parallellisme die bereikt wordt in computer- architecturen: dit wordt gedefinieerd als het aantal bits dat tegelijk behandeld wordt n dit wordt berekend door middel van twee assen: u op de horizontale as wordt de woordlengte van een architectuur uitgezet u 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 n zie figuur

22 slide 22Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie naar sturing van bewerkingen n deze classificatie bekijkt hoe bepaald wordt welke databewerkingen uitgevoerd worden u Von Neumann architecturen: u een programma, dat duidelijk de volgorde van de bewerkingen beschrijft, bepaalt de databewerkingen u in de architectuur komt hier altijd een programma-teller voor

23 slide 23Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie naar sturing van bewerkingen (vervolg) u data-flow architecturen: l die bewerkingen waarvoor de input-gegevens reeds beschikbaar zijn (van de invoer of van eerdere berekeningen) kunnen uitgevoerd worden l op elk moment zijn er meestal meerdere bewerkingen die uitgevoerd kunnen worden in parallel l het zijn de gegevens die de bewerkingen sturen l aspecten van data-flow komen voor in moderne monoprocessoren (zie hoofdstuk 4: dynamisch schedulen van instructies)

24 slide 24Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Dataflow architecturen n voorstelling van programma als een grafe van afhankelijkheden u Logische processor in elk knooppunt, wordt geactiveerd door beschikbaarheid van operanden u Message (tokens) met tag van volgende instructie wordt verzonden naar volgende processor u Tag wordt vergeleken met andere in matching store; een match vuurt een uitvoering

25 slide 25Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Dataflow Architectures

26 slide 26Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Classificatie naar sturing van bewerkingen (vervolg) u reductie architecturen: l die bewerkingen die nodig zijn om het resultaat te berekenen zullen uitgevoerd worden l op elk moment zijn er zo meestal meerdere bewerkingen l in deze architectuur stuurt het gewenste resultaat de bewerkingen l de beschrijving is zeer functioneel

27 slide 27Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Types parallelle architecturen die men op de markt treft klassieke modellen

28 slide 28Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Supercomputers of vectorcomputers n VOORZICHTIG!!! een vectorcomputer != een array-computer n zeer complexe machines, met een onregelmatige structuur n proberen verhoogd parallellisme te bereiken door het combineren van meerdere methodes: u vectorregisters en vectorinstructies u meerdere functionele eenheden (die elk niet alle instructies kunnen uitvoeren) met een zware pipeline n door hun concentratie op vector-operaties lijken ze voor een gebruiker erg op een array-processor

29 slide 29Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n vector processing: basis principes vervang DO 1 I=1,N 1C(I) = A(I) + B(I) (N scalaire optellingen) l door C(1:N) = A(1:N) + B(1:N) (1 vector optelling) Supercomputers of vectorcomputers (vervolg)

30 slide 30Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers l 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) Supercomputers of vectorcomputers (vervolg)

31 slide 31Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n soorten operaties: u scalair (real, int,...) u rij van N scalairen l unaire operaties: –f1V -> V –f2V -> S l binaire operaties: –f3V x V -> V –f4V x S -> V Supercomputers of vectorcomputers (vervolg)

32 slide 32Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n velden van een vector-operatie u opcode u voor operanden en resultaat: l vector register of basis adres in het geheugen en increment l vector lengte Supercomputers of vectorcomputers (vervolg)

33 slide 33Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n 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 n het parallellisme wordt meestal door de compiler toegevoegd (voor de vector-operaties) n parallellisme wordt ook dynamisch toegevoegd door schedulen van instructies op verschillende functionele eenheden n het gebruikte parallellisme is fijn n vb. : Cray n deze ideeën worden nu gebruikt in monoprocessoren Supercomputers of vectorcomputers (vervolg)

34 slide 34Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Raw Uniprocessor Performance: LINPACK

35 slide 35Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multiprocessoren n multiprocessoren = MIMD-machine met gedeeld geheugen n homogeen van structuur n symmetrisch van structuur (alle knooppunten hebben gelijkaardige rol) n maken gebruik van standaard componenten u zijn daarom ook veel goedkoper dan een supercomputer n granulariteit van parallellisme : middelmatig (niet ontzettend fijn, ook niet grof) interconnectienetwerk M0M1MnP0P1Pn...

36 slide 36Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n lineaire versnelling wordt nooit bereikt u extra kost door synchronisatie u extra kost door niet perfect gespreide belasting u niet elk programma is 100% parallelliseerbaar n 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 u daarom NUMA -architecturen: zie verder u een lokale cache wordt soms voorzien om het bottleneck- probleem gedeeltelijk te verhelpen, maar de caches moeten consistent gehouden worden Multiprocessoren (vervolg)

37 slide 37Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers voor- en nadelen van multiprocessoren n voordelen u geen nieuw programmeringsmodel: gemakkelijk u efficiënte communicatie: kopiëren niet nodig n nadelen u synchronisatie moeilijker dan via boodschappen u is niet uitbreidbaar op grote schaal door onderlinge strijd om het geheugen (memory contention)

38 slide 38Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Architectural Trends: Bus-based MPs No. of processors in fully configured commercial shared-memory systems n microcomputer op een chip maakt het gemakkelijk om vele te verbinden met gedeeld geheugen u domineert de server en de ondernemingsmarkt, er is een tendens naar omlaag, naar de desktop computers (krachtige werkstations) n verzadiging van bus drijft deze technologie vooruit u orde van grote van bus-gebaseerde systemen van desktop tot grote servers: zie volgende twee slides

39 slide 39Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Architectural Trends: Bus-based MPs No. of processors in fully configured commercial shared-memory systems

40 slide 40Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Bus Bandwidth

41 slide 41Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multicomputers n multicomputers = MIMD-machine met gespreid geheugen n zijn ook homogeen van structuur interconnectienetwerk M0 P0 M1 P1 Mn Pn...

42 slide 42Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multicomputers (vervolg) n zijn meestal niet symmetrisch, doordat de interconnectie van de processoren meestal niet volledig is (niet alle processoren zijn met alle processoren verbonden) u processoren kunnen dus "ver" of "dichtbij" zijn, men spreekt ook eventueel van "buren" u de communicatie-kost is dan niet gelijk tussen elk willekeurig paar knooppunten n multicomputers maken gebruik van standaard componenten u ze zijn daarom ook veel goedkoper dan een supercomputer n granulariteit van parallellisme: grof

43 slide 43Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n spreiding van belasting is hier moeilijker dan bij multiprocessoren omdat de code en de hele adresruimten van processen lokaal zijn n de architectuur (afhankelijk van de interconnecties) kan gemakkelijk uitgebreid worden tot zeer veel knooppunten (MPP) n grote machines bieden vaak "space-sharing": meerdere toepassingen kunnen in parallel lopen; elke toepassing krijgt een fysisch afgebakend deel van de machine n door ‘distributed shared memory’ (DSM) kan men op multicomputer werken zoals op multiprocessoren Multicomputers (vervolg)

44 slide 44Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers voor- en nadelen van multicomputers n voordelen u processoren werken meestal met lokaal geheugen l netwerk minder belast l architectuur uitbreidbaar op grote schaal (MPP) u geen ingewikkelde synchronisatie nodig n nadelen u belastingsspreiding is absoluut noodzakelijk u communicatie met boodschappen: deadlock-gevaar

45 slide 45Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Raw Parallel Performance: LINPACK 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)

46 slide 46Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers 500 Fastest Computers Number of systems u u u u n n n s s s s n 11/9311/9411/9511/ n PVP u MPP s SMP

47 slide 47Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Types parallelle architecturen die men op de markt treft geavanceerde modellen

48 slide 48Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers uitdaging n uitdaging: verhogen uitbreidbaarheid multiprocessoren n aangepast interconnectie netwerk n lokale caches voorzien u data in cache aanwezig: geen beroep op netwerk u klassiek gebruik van lokaliteitprincipe u probleem indien zelfde data in meerdere caches aanwezig is: cachecoherentie-probleem n fysische implementatie zoals multicomputers u ‘virtueel gedeeld geheugen’ of ‘gedistribueerd gedeeld geheugen’ (DSM) u lokale geheugens zijn componenten van globale adresruimte

49 slide 49Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers classificatie van DSM n Non-uniform Memory Access machines n Cache-Coherent Non-Uniform Memory Access machines n Cache-Only Memory Access machines

50 slide 50Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers interconnectienetwerk... interconnectienetwerk P0 C0 P1 C1 Pn Cn... interconnectienetwerk... Mn Pn M0 P0 M1 P1 Mn Cn Pn M0 C0 P0 M1 C1 P1

51 slide 51Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers problemen bij uitbreidbare computers n tolereren en verbergen van wachttijd u (a) bij het laden van niet-lokale gegevens u (b) bij het synchroniseren tussen processen n mogelijke oplossingen voor (a) u caches u prefetching n mogelijke oplossingen voor (a) en (b) u gebruik van threads en zeer snelle contextwisselingen

52 slide 52Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multi-Threaded Architecturen n basisprincipes u gebaseerd op uitvoeren van vele threads per node l contextswitch –is logisch gelijk aan de klassieke contextswitch –moet veel sneller zijn dan wachten op niet-lokale gegevens –synchronisatie moet snel herkend worden l threads hebben hele fijne granulariteit l contextswitch is hardware ondersteund

53 slide 53Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers multi-threaded architecturen n alternatieven voor verwezenlijking u bewerkingsmodel l volledig von Neuman (control flow) l hybride von Neuman / dataflow u granulariteit l heel fijn: meerdere threads delen de pipeline –leunt meer aan bij dataflow l minder fijn: slechts 1 thread voert uit –leunt meer aan bij control flow

54 slide 54Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers multi-threaded architecturen n alternatieven voor verwezenlijking (vervolg) u geheugenorganisatie » gedeeld, NUMA, CC-NUMA u aantal threads per processor » klein (4-10), middelmatig (10-100), groot (>100) n voorbeelden u HEP, Tera, MIT Alewife (CC-NUMA): control flow u *T, SAM, MIT Hybrid machine, EM-4: dataflow

55 slide 55Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multicomputer MPP n kenmerken u processoren enkel toegang tot lokaal geheugen u communicatie met boodschappen u uitdaging tov communicatie: l goede opsplitsing van probleem in processen l goede verdeling van processen over knopen l NP-compleet u belastingspreiding is noodzakelijk n machines populair voor problemen die veel parallellisme bevatten (MPP)

56 slide 56Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multicomputer MPP n alternatieven voor verwezenlijking u interconnectienetwerk » topologie, switching techniek, routeringsprotocol » meerdere generaties u knoop-organisatie » processor + comm. co-processor + router » meerdere generaties u type processoren: l bestaande of speciaal ontworpen processoren l gewone of vectorprocessoren

57 slide 57Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Multicomputer MPP n alternatieven voor verwezenlijking (vervolg) u bewerkingsmodel l conventioneel + communicatiebibliotheken l CSP l dataflow n voorbeelden u iPSC/1, iPSC/2, Ametek, Intel Paragon, IBM SP2, Parsytec GC/PowerPlus, Transtech Paramid u nCUBE, Meiko CS-2 u Transputer, Parsys Supernode, Parsytec Gigacube u Caltech Mosaic 2, J-Machine

58 slide 58Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers MIMD met gedeeld geheugen n alternatieven voor verwezenlijking n interconnecties n cache coherence u snoopy u directory-schema u hiërarchisch u software-gebaseerd n synchronisatie n consistentiemodel n UMA, NUMA, CC-NUMA en COMA

59 slide 59Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers alternatieven voor verwezenlijking n fysische organisatie van logisch gedeeld geheugen u fysisch gedeeld geheugen: UMA u virtueel of gedistribueerd gedeeld geheugen (DSM): » NUMA, CC-NUMA, COMA n interconnectienetwerk u gedeeld medium (single bus, multiple bus) u switching netwerken (crossbar, multistage) n cache-coherence protocol u hardware-gebaseerd u software-gebaseerd

60 slide 60Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers interconnectienetwerken: bussen n enkelvoudige bus u elke knoop en elke geheugenmodule aan bus u broadcast is eenvoudig u eenvoudig, goedgekend, goedkoop u gevaar voor verzadiging: daarom niet geschikt voor groot systeem n meervoudige bus: 1-dimensionaal u meerdere bussen in parallel u elke knoop en geheugenmodule aan elke bus

61 slide 61Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers interconnectienetwerken: bussen n meervoudige bus: 2- of 3-dimensionaal u bussen zijn georganiseerd in een rooster u verschillende manieren om knopen en geheugenmodules aan bussen te hangen n hiërarchisch systeem u meerdere enkelvoudige bus-systemen (clusters) u clusters verbonden door enkelvoudige bus u recursief zijn meerdere niveaus mogelijk u goedkoop

62 slide 62Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Voorbeeld van hiërarchisch systeem n Sequent NUMA-Q 2000

63 slide 63Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers interconnectienetwerken: switching n crossbar u gelijktijdige toegang mogelijk van elke processor met een geheugenmodule (hoge bandbreedte) u gebruikt zeer vele switchen, is dus zeer duur n multistage u compromis tussen enkelvoudige bus en crossbar l variaties in kost, complexiteit, bandbreedte u zeer veel verschillende soorten

64 slide 64Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Cache coherence n oorsprong van probleem u delen van wijzigbare gegevens (belangrijkst) u procesmigratie u in- en uitvoer n verschillende hardware protocols afhankelijk van u memory update policy u cache coherence policy u interconnectieschema

65 slide 65Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers cache coherence: algemeen n memory update policy u write-through policy (gulzig) l bij write op cache wordt geheugen aangepast l gebruikt veel bandbreedte l erg nadelig bij geheugen dat niet gedeeld wordt u write-back policy (lui) l geheugenaanpassing later l andere aanvraag voor zelfde blok: blok moet uit aangepaste cache komen l maakt cache controllers ingewikkelder

66 slide 66Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers cache coherence: algemeen n cache coherence policy u write-update policy (gulzig) l bij write worden alle copies aangepast l gebruikt veel bandbreedte u write-invalidate policy (lui) l bij write worden de andere copies ongeldig

67 slide 67Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers cache coherence: algemeen n interconnectieschema u broadcast mogelijk (enkelvoudige bus) » snoopy cache protocol u hiërarchisch bussysteem » hiërarchisch cache coherence protocol u multistage » directory-schema’s –volledige tabellen (full-map) –beperkte tabellen (limited directories) –gelinkte tabellen (chained directories)

68 slide 68Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers snoopy cache protocol n basisprincipes (voor write-update) u mogelijke toestanden per blok in een cache l exclusief en geldig l gedeeld l exclusief en vuil u alle consistentiecommando’s worden ge-broadcast l Read-Blk, Write-Blk, Update-Blk l iedere processor ziet deze (snoops) u eindige toestandsmachine beschrijft veranderingen in toestand (zie volgende slide)

69 slide 69Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers snoopy cache protocol (vervolg) exclusief geldig gedeeld exclusief vuil Read-Blk/Write-Blk Read-Blk Write-Blk Update-Blk P-Read P-Write P-Read P-Write P-Read P-Write P-Read, P-Write: opdrachten gegeven vanuit eigen processor Read-Blk, Write-Blk, Update-Blk: consistentiecommando’s die op de bus verschijnen

70 slide 70Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers directory schema’s n basisprincipes u consistentie commando’s enkel gestuurd naar caches waar een copie van blok zit u bijhouden per blok hoofdgeheugen waar gecached is u afhankelijk van organisatie van directory l volledige tabel l beperkte tabel l gelinkte tabel u maakt een verschil in l geheugen nodig om directory bij het houden l aantal consistentie commando’s nodig

71 slide 71Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers directory schema’s (vervolg) n volledige tabel u directory wordt bijgehouden in gedeeld geheugen u per blok: boolean per cache (blok in cache of niet) u in elke cache: twee bits per blok l geldig l write-toelating n beperkte tabel u gebruikt minder geheugen u logisch gezien gelijkaardig aan volledige tabel u ipv bits: volledige pointers u maximum aantal pointers voorzien

72 slide 72Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers directory schema’s (vervolg) n gelinkte tabel u compromis tussen vorige twee: l minder geheugen als volledige tabel l heeft geen last als teveel pointers u pointer maakt deel uit van blok in cache u voorbeeld uitwerking: l Scalable Coherent Interface (SCI) IEEE standard 1992 l meer dan 30 verschillende toestanden !

73 slide 73Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers hiërarchisch CC-protocol n bij hiërarchische meervoudige bussen n basisprincipe: u elke processor in een cluster heeft een cache u elke cluster heeft een supercache u een blok dat in minstens 1 cache van een cluster zit moet ook in de supercache zitten u op elk niveau wordt een variante van het snoopy protocol gebruikt

74 slide 74Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers hiërarchisch CC-protocol (vervolg) C3C3 P3 C4C4 P4 C5C5 P5 C7C7 P7 C6C6 P6 C9C9 P8 C0C0 P0 C1C1 P1 C2C2 P2 C20 C21C22 Main Memory

75 slide 75Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers software-gebaseerde protocols n geen hardware-ondersteuning nodig n wel compiler-ondersteuning nodig u classificatie van variabelen in 4 klassen l read-only l read-only voor meerdere processen maar write-only voor slechts 1 proces l read-write voor slechts 1 proces l read-write voor meerdere processen u verdeling in klassen per programmaonderdeel l bv per lus l na elke lus wordt cache ongeldig (kan selectief)

76 slide 76Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers synchronisatie n hardware-ondersteuning voor synchronisatie-routines n probleem: u synchronisatie komt veel voor u synchronisatie op een lock-variabele door meerdere processen: hot-spot u klassieke test&set zeer inefficiënt while (exchange(lock, CLOSED) == CLOSED);

77 slide 77Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers synchronisatie (vervolg) n oplossingen bij bus-gebaseerde systemen u snooping lock while (exchange(lock, CLOSED) == CLOSED) while (*lock == CLOSED) u test-and-test&set l volgorde omdraaien: eerst lezen u eventueel een random delay toevoegen u queue lock: l een lijst van wachtenden l slechts 1 wordt verwittigd als lock vrij komt

78 slide 78Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers synchronisatie (vervolg) n oplossingen bij grote systemen u fetch&add (x, a) l telt a bij x op en geeft oude waarde van x terug l optelling gebeurt in geheugenmodule l eventueel zelfs in switchen van multistage u lijst-gebaseerde lock

79 slide 79Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers consistentiemodellen n consistentiemodel: interface programmeur/systeem n sequentiële consistentie u meest intuïtieve u niet evident in NUMA-machines l niet-atomaire geheugentoegangen l invalideren van caches niet overal tegelijk u laat een aantal optimisaties niet toe (bv prefetching, later wegschrijven) n zwakkere vormen van consistentie

80 slide 80Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers consistentiemodellen (vervolg) n zwakkere vormen van consistentie u uitgangspunt l sequentiële consistentie niet echt nodig l meeste programma’s synchroniseren expliciet u meerdere modellen l weak consistency model –datatoegang tussen synchronisatie mag uit volgorde gebeuren l release consistency model –laat nog meer overlapping toe

81 slide 81Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers consistentiemodellen (vervolg) n implementatie van consistentiemodellen u gebruik van ‘hekken’ (fences) in verschillende vormen u hek zorgt ervoor dat alle writes werkelijk overal gebeurt zijn u werkt met gebruik van tellers u SCI ondersteunt zowel weak consistency als release consistency

82 slide 82Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers -systemen n zeer geschikt voor het bouwen van kleine performante multiprocessoren met enkelvoudige bus n kostprijs is heel redelijk n niet uitbreidbaar tot grote aantallen n voorbeelden u Encore Multimax, SGI Challenge

83 slide 83Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers -systemen n goed uitbreidbaar n kwetsbaar tov plaatsing van gegevens n geen caches n ondersteunen vaak zowel u programmeren met gedeeld geheugen u communicatie via boodschappen n voorbeelden u BBN TC2000, IBM RP3, Cray T3D

84 slide 84Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers -systemen n goed uitbreidbaar n momenteel interessantste architectuur voor grote algemeen bruikbare parallelle systemen n verschillen in u interconnectienetwerk u cachecoherentieprotocol n voorbeelden u Dash, Flash, Convex Exemplar, Sequent Numa-Q 2000, Silicon Graphics Origin2000

85 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

86 CC-NUMA 1GB/s link 1-4 GB Mem P6 0-7 I/O Adapters 500 MB/s 1-4 GB Mem P6 0-7 I/O Adapters 500 MB/s 1-4 GB Mem P6 0-7 I/O Adapters 500 MB/s 1GB/s link IQ-Link n Zes adres-bits begrenzen aantal Quads op 63 (252 processoren) n IQ-Link is geen bus. Over de ring kunnen gelijktijdig meerdere transfers plaatsvinden 1GB/s link

87 CC-NUMA PCI Bridge PCI Bus EISA P6 Bus EISA Bus PCI Bus PCI I/O PCI/EISABridgePCI/EISABridge MDCMDC MemoryMemory CPUCPUCPUCPUCPUCPUCPUCPU 4 x SMP System Bus OBIC Memory Directory Remote Cache and Cache State/Tags SCLIC Data Pump IQ-LINK

88 slide 88Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers -systemen n goed uitbreidbaar n allocatie van gegevens u is statisch niet nodig u gebeurt dynamisch, vraag-gestuurd n analoge cachecoherentieprotocols als bij CC-NUMA n voorbeelden u Data Diffusion Machine, KSR1

89 slide 89Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers trends naar de toekomst toe n convergentie van de drie trends binnen MIMD u multi-threaded architecturen u systemen met gedistribueerd geheugen u systemen met gedeeld geheugen

90 slide 90Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Applicatiesoftware voor parallelle systemen

91 slide 91Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers typische problemen n simuleren van de stromingen in de oceanen u regelmatige structuur, scientific computing n simuleren van de evolutie van de sterren-galaxies u onregelmatige structuur, scientific computing n weergeven van scènes door middel van ray tracing u onregelmatige structuur, computer graphics n data mining u onregelmatige structuur, information processing u wordt hier niet besproken

92 slide 92Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers simulatie van oceaanstromen u modelleren als twee-dimensionale roosters u discretiseren in ruimte en in tijd l hoe fijner ruimtelijke en temporele resolutie: hoe accurater u veel verschillende berekeningen per tijdsstap l het opzetten en het oplossen van vergelijkingen u concurrency over en in de rooster berekeningen (a) doorsneden(b) ruimtelijke discretisatie van een doorsnede

93 slide 93Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers simulatie van galaxy-evolutie u simulatie van de interacties tussen miljoenen sterren die evolueren u het berekenen van de krachten is duur l O(n 2 ) met brute kracht aanpak u hiërarchische methode gebaseerd op wet van krachten: G m1m2m1m2 r2r2 u veel tijdsstappen, veel concurrency over de sterren bij elke tijdsstap

94 slide 94Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers weergave van scènes door Ray Tracing u stuur stralen in de scène door de pixels in het beeldvlak u volg hun paden l de stralen weerkaatsen als ze objecten tegenkomen l ze genereren nieuwe stralen: een stralenboom per invoerstraal u dit resulteert in kleur en “opacity” voor dat pixel u er is parallellisme tussen de stralen n al deze voorbeelden hebben overvloedige concurrency

95 slide 95Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers creëren van een parallel programma n veronderstelling: een sequentieel algoritme is gegeven u soms is een erg verschillend algoritme nodig, hier niet ter sprake n creëren van een parallel programma bestaat uit: u identificatie van het werk dat in parallel kan gebeuren u partitionering van werk en van gegevens over processen u beheer van toegang tot gegevens, communicatie en synchronisatie u Note : werk = zowel berekeningen als toegang tot gegevens als I/O n hoofddoel: Speedup, kleine programmeringsinspanning, laag middelengebruik Speedup (p) = n voor een vast probleem: Speedup (p) = Performance(p) Performance(1) Time(1) Time(p)

96 slide 96Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers stappen bij creëren van // programma n 4 stappen: decompositie, toekenning, orkestratie, mapping u door programmeur of door systeemsoftware (compiler, runtime,...) u issues zijn dezelfde, dus veronderstellen we door de programmeur

97 slide 97Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers enkele belangrijke concepten n taak : u arbitrair deel van het werk van een parallelle berekening u taak sequentieel uitgevoerd: enkel concurrency tussen taken u vb: cel in Barnes-Hut, straal of groep van stralen bij ray tracing u taken kunnen een fijne of een grovere granulariteit hebben n proces (thread) : u abstracte entiteit die de toegekende taken uitvoert u communiceert en synchroniseert om toegekende taken uit te voeren n processor : u fysische entiteit op dewelke processen uitvoeren u processen virtualiseren een machine voor de programmeur l eerst schrijft men een programma in termen van processen l daarna worden de processen toegekend aan processoren

98 slide 98Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers decompositie n splits de bewerkingen op in taken die toegekend kunnen worden aan processen u taken kunnen statisch en/of dynamisch gecreëerd worden u aantal taken kan variëren in de tijd n identificeer de concurrency en bepaal op welk niveau je deze wil gebruiken n doelstelling: genoeg taken om de processen bezig te houden, maar ook niet te veel u aantal taken op een bepaald tijdstip is een bovenlimiet voor de te bereiken speedup

99 slide 99Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers beperkte concurrency: wet van Amdahl n fundamentele limiet op parallelle speedup u stel fractie s van seq uitvoering is inherent serieel, speedup <= 1/s n voorbeeld: berekening in 2 fasen l ga over n x n rooster en doe een onafhankelijke berekening l ga nogmaals over rooster en vorm som met berekende waarden u tijd voor fase één = n 2 /p u fase twee is geserialiseerd door globale variabele, tijd = n 2 u speedup <= of maximaal 2 u methode om speedup te krijgen: verdeel fase 2 in 2 kleinere stappen l accumuleer som in deelsommen in elke processor l tel alle deelsommen op u parallelle tijd is n 2 /p + n 2 /p + p, en speedup maximaal 2n 2 n2n2 p + n 2 2pn22pn2 2n 2 + p 2

100 slide 100Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers illustratie van voorbeeld 1 p 1 p 1 n 2 /p n2n2 p work done concurrently n2n2 n2n2 Time n 2 /p (c) (b) (a)

101 slide 101Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers concurrency profiles u opp onder curve is totaal werk, of tijd op 1 processor u horizontale as geeft minimum tijd die nodig is u wet van Amdahl is geldig op elke overhead, niet alleen op concurrency u niet eenvoudig om programma te verdelen in serieel en parallel deel u vb:

102 slide 102Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers toekenning n bepaal mechanisme om werk te verdelen over de processen u vb. welke processen berekenen welke krachten op welke sterren u dit wordt samen met decompositie ook wel partitionering genoemd u spreid de belasting, minimaliseer de communicatie en het beheer n gestructureerde aanpakken werken meestal goed u code inspectie (parallelle lussen) of inzicht in toepassing u gekende heuristieken u statische versus dynamische toekenning n voor programmeurs is partitionering belangrijke taak u meestal onafhankelijk van onderliggende architectuur of programmeringsmodel u kost en complexiteit van primitieven hebben soms invloed

103 slide 103Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers orkestratie n belangrijke elementen die meespelen bij orkestratie u naamgeving van gegevens u structurering van communicatie u synchronisatie u organisatie gegevensstructuren en scheduling tijdelijke taken n doelstellingen u minimaliseer communicatie- en synchronisatiekosten in processoren u kies gegevensstructuur ifv lokaliteit van gegevenstoegang u schedule de taken zodat afhankelijkheden eerst aan bod komen u minimaliseer overhead van beheer van parallellisme n staat dicht bij architectuur, programmeringsmodel en taal u keuzes hangen af van communicatieabstracties en efficiëntie van primitieven u architecten moeten de gepaste primitieven efficiënt aanbieden

104 slide 104Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers mapping n na de orkestratie heb je al een parallel programma n twee aspecten bij mapping: u welke processen voeren uit op zelfde processor u welk proces voert uit op welke processor l mapping op een bepaalde netwerk topologie n één extreem: space-sharing u machine verdeeld in subsets, één toepassing per subset u processen worden toegekend aan processors, of gelaten voor OS n ander extreem: volledige resource management door OS u OS doet aan dynamische belastingsspreiding n meestal ergens tussen de twee u gebruiker kan directieven geven, OS kan deze negeren n normaal gezien: proces processor

105 slide 105Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers parallellisering van bewerkingen vs. Data n vorige slides concentreren zich op bewerkingen en niet op data u bewerkingen worden gedecomposeerd en toegekend (partitioneerd) n Partitionering van data is vaak ook een natuurlijke manier u bewerkingen volgen de data: eigenaar berekent u rooster voorbeeld, data mining, High Performance Fortran (HPF) u dit heet “data-parallellisme” n data-parallellisme is niet algemeen genoeg u datatoegang en communicatie maakt deel uit van orkestratie

106 slide 106Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers doelstellingen High performance (speedup over sequential program)

107 slide 107Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Granulariteit van parallellisme en uitwerking

108 slide 108Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Transparante vormen van parallellisme Soort parallellismegranulariteit verantwoordelijkheid en uitvoering elektrische signalenuiterst fijnhardware interregister-transfers,uiterst fijnhardware lezen uit het geheugen, prefetch van instructies pipelininguiterst fijncompiler en hardware gevectoriseerde instr.zeer fijnhardware, parallelliserende compiler en ev. toepassingsprogrammeur (op supercomputers) meerdere pipelineszeer fijncompiler en hardware (in superscalaire processoren)

109 slide 109Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Soort parallellismegranulariteit verantwoordelijkheid en uitvoering threadsfijnbesturingssysteem en ( subprocessen, taken )toepassingsprogrammeur ( vaak op multiprocessoren ) nauw-samenwerkendegrofbesturingssysteem en processen toepassingsprogrammeur ( op multicomputers en op multiprocessoren ) los-samenwerkendezeer groflaag boven besturingssysteem (middleware) processen en toepassingsprogrammeur ( in wide area networks) Niet-transparante vormen van parallellisme

110 slide 110Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Performantie van parallelle systemen

111 slide 111Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Performantie van parallelle systemen n vaak interesse in hoeveel sneller is een bepaalde parallelle machine vergeleken met een sequentiële machine n dit is afhankelijk van het programma dat men draait ! n de versnelling (speedup) wordt gedefinieerd als u speedup = uitvoeringstijd op 1 processor / uitvoeringstijd op n processoren u s = T(1) / T(n) n de ideale versnelling die men kan bekomen met n processoren is n

112 slide 112Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Performantie (vervolg) n een speedup van n wordt nooit bekomen omdat u niet alle code parallelliseerbaar is u de code die parallelliseerbaar is kan niet altijd continu alle middelen bezig houdt (belastingspreiding !) u bij de code die wel parallelliseerbaar is men extra overhead moet rekenen voor synchronisatie u sommige hulpmiddelen in het systeem toch schaars zijn t.o.v. andere u I/O vaak niet parallel verloopt u er vaak vertrokken wordt van de sequentiële code die niet herdacht is

113 slide 113Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n de efficiëntie wordt gedefinieerd als l e = T(1) / n*T(n) = s / n n als de efficiëntie dicht bij 1 ligt dan gebruik je de hardware zeer goed n regel van Minsky (zou gelden voor grote n): u s <= log2 n (zonder bewijs) n zie grafiek met verschillende versnellings-curve Performantie (vervolg)

114 slide 114Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n wet van Amdahl: u T(n) = Ts + Tn / n l Ts is de tijd die besteed wordt aan code die intrinsiek serieel l Tn is de tijd die parallelliseerbaar is l T(1) = Ts + Tn n de wet van Amdahl zegt dat er altijd een deel van de code niet parallelliseerbaar is n andere regel, afgeleid uit de wet van Amdahl –s <= n / ln n Performantie (vervolg)


Download ppt "Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Parallelle systemen."

Verwante presentaties


Ads door Google